| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Выполнить скрипт, как из браузера... |
| Автор: Borland_Delphi_6 23.6.2004, 23:29 |
| Проблема в следующем: есть два скрипта, оба юзают mysql, один после работы записывает данные в текстовый файл. Один скрипт основной (движок сайта), второй дополнительный. При попытке инклюдить в основной скрипт дополнительный, чтобы он выполнился и обновил данные в текстовом файле, выдается какая-то ошибка с базой. Вопрос: можно ли выполнить дополнительный скрипт вместе с основным так, чтобы они не видели друг друга, т.е. как будто дополнительный скрипт запускается из браузера. |
| Автор: Nobody 24.6.2004, 00:45 |
| UNIX: fetch "http://your.site.com/path/to/script2.php" Windows: 1)установить cygwin 2)fetch "http://your.site.com/path/to/script2.php" |
| Автор: Borland_Delphi_6 24.6.2004, 01:05 | ||
Пардон, что это такое и где его взять? |
| Автор: yUAC 24.6.2004, 01:14 |
| Тут Вам такое наговорят... Используйте функцию virtual ( http://www.php.net/virtual ) |
| Автор: Borland_Delphi_6 24.6.2004, 01:17 |
| yUAC Хм, вроде похоже на то, что нужно. Если заработает, обещаю плюсик! |
| Автор: IZ@TOP 24.6.2004, 09:11 | ||
А не проще через фрейм загрузить его?
|
| Автор: MuToGeN 24.6.2004, 09:17 | ||
Нормальные люди IFRAME отключают.
|
| Автор: Sufius 24.6.2004, 10:38 |
| 2 MuToGeN А зачем они его отключают-то? =) |
| Автор: MuToGeN 24.6.2004, 10:54 | ||
|
| Автор: Borland_Delphi_6 24.6.2004, 11:50 |
| IZ@TOP IFRAME не покатит, я думал над этим. Тут такое дело: этот движок очень не любит внешних php скриптов, особенно тех, которые с другой базой mysql работают. Поэтому когда я сделал для него простенький плагин, юзающий virtual() он работать отказался |
| Автор: Юрик 24.6.2004, 11:59 |
| Пиши что за ошибка и версия PHP |
| Автор: Borland_Delphi_6 24.6.2004, 12:10 |
| Ошибка не из-за скрипта, ошибка из-за движка сайта. Сам скрипт рабочий. |
| Автор: Юрик 24.6.2004, 12:12 |
| Твой движок сайта - тоже скрипт, не правда ли? Поэтому если хочешь чтобы тебе помогли - дай ошибку |
| Автор: MuToGeN 24.6.2004, 12:57 | ||
2Юрик
|
| Автор: Borland_Delphi_6 24.6.2004, 17:29 |
| Юрик Ну вот, пожалуйста: MySQL error : Unknown column 'news_expire' in 'where clause' Наверное многое прояснилось, да? |
| Автор: Secandr 24.6.2004, 17:37 |
| Borland_Delphi_6 Есть предложение: закрывать соединение в основном скрипте include, инклудить второй скрипт, после этого заного конектится к серверу. |
| Автор: Ignat 24.6.2004, 17:42 |
| Secandr, а зачем? Просто использовать один коннект. |
| Автор: Secandr 24.6.2004, 18:00 |
| Ignat по крайней мере стоит попробовать. У меня просто предчуствие, объяснить логически не могу |
| Автор: Ignat 24.6.2004, 18:07 |
| Borland_Delphi_6, покажи запрос на котором эта ошибка выскакивает, может там баг? Код хотелось бы посмотреть. оффтоп: Secandr, интуиция программиста называется ж...пное чувство |
| Автор: Borland_Delphi_6 24.6.2004, 19:18 |
| Ignat нет, багов нет, это точно. Код? Хрен его знает, где именно, там штук 20 файлов и в каждом штук по 20 запросов... Проблема в том, что когда инлюдишь второй скрипт, первый перестает понимать, как коннектиться к базе... Secandr То же самое. Я не смогу найти то место, где надо коннект закрывать, а если и смогу, то их очень много получится. |
| Автор: MuToGeN 24.6.2004, 19:20 | ||
Добавлено @ 19:20 Короче, лучше ищи, где у тебя глючный запрос. |
| Автор: Borland_Delphi_6 24.6.2004, 22:09 |
| Но проблема-то в том, что в бд все таблицы в порядке... Вот мне надо просто вызвать из одного скрипта другой, чтобы первый не подозревал о существовании второго |
| Автор: Secandr 24.6.2004, 22:25 | ||
| Borland_Delphi_6 ты вызываешь скрипт:
Вот тут и закрываешь соединение с бд:[code]//закрываешь соединение include('second.php'); //открываешь заного |
| Автор: Borland_Delphi_6 24.6.2004, 23:37 |
| Secandr Можно конечно попробовать, но неужели нельзя сделать так, как я хочу? |
| Автор: MuToGeN 25.6.2004, 00:21 | ||
| Borland_Delphi_6 Если все это из-за MySQLной ошибки, то такое решение - как гильотина от перхоти. Разбираться надо с MySQLем. Если выдает ошибку, значит что-то где-то не так.
|
| Автор: Borland_Delphi_6 25.6.2004, 01:19 | ||||
Второй скрипт устанавливает свой коннект к своей базе.
Проще мне так. Просто второй скрипт записывает инфу в текстовый файл, а уж он инклюдится без проблемю |
| Автор: Ignat 25.6.2004, 10:54 |
| Подожди, у тебя используются две базы? Тогда разберись с идентификаторами ресурсов. Просто один скрипт использует идентификатор дроугой базы и ессесно не находит колонку. |
| Автор: MuToGeN 25.6.2004, 11:53 |
| ЗЫ Это то, что возвращает mysql_connect() и что является вторым параметром для mysql_query() |
| Автор: Borland_Delphi_6 25.6.2004, 13:17 |
| блин, как все сложно... Конечно, правильно было бы сидеть и ковыряться с базой, но мне этого не хочется, если честно и тема по сути дела не о том... Мне надо всего лишь, чтобы один скрипт запускал второй и ради этого я должен пересмотреть 20-30 файлов? Сомнительное удовольствие... Спасибо за советы, но может быть у кого-нибудь есть идеи по сабжу? |
| Автор: Ignat 25.6.2004, 13:28 |
| Ну если, совсем по сабжу, не используя iframe - используй javascript:window.open, хотя лучше разобраться с мускулем. |
| Автор: yUAC 25.6.2004, 14:24 |
| Запустите второй скрипт отдельно. Посмотрите, что он выдает. Если все нормально, значит его можно легко с помощью virtual заинклюдить. Если нет, значит надо разбираться со вторым скриптом. Других путей нет. |
| Автор: Borland_Delphi_6 25.6.2004, 15:10 |
| нет, мне всякие клиентские скрипты не нужны. Я ж говорю, нужно серверу запрос послать, но только так, чтобы он думал, что запрос из браузера, а не из скрипта... Но хотя я попробую с базами похимичить... Добавлено @ 15:11 yUAC Второй скрипт прекрасно работает. дело явно в первом, он не любит, когда в плагины внешние скрипты суют... |
| Автор: yUAC 25.6.2004, 21:50 |
| Хм. Приведите пожалуйста тот код, которым Вы запрашиваете страницу. Я так понимаю, это должно быть что-то вроде virtual('/something/script.php'); |