Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » PHP

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71

Открыть новую тему     Написать ответ в эту тему

ManderX



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
поставил PHP и APACHE.  
написал index.html:  
<html><body> <form action=test.php> Name: <input type=text name="name"><br>  
Year: <input type=text name="year"><br> <input type=submit value="ГОТОВО"> </form>  
</body></html>  
И test.php в том же каталоге:  
echo "$name i $year";  
выполняю, говорит, что переменыее undefined  
в чём трабла??? и ещё гдя взять extensions???




Цитата:
 
Внимание!
 
Эта тема будет закрыта, поэтому по конкретным вопросам по PHP
создаём новые темы, либо используем существующие (один вопрос — одна тема)

Кто-нибудь пытался что-то в этих сeмидесяти страницах найти?
 
В этой теме только отвечаем на оставшиеся без ответа вопросы...

 
 

Всего записей: 84 | Зарегистр. 11-06-2002 | Отправлено: 05:36 11-06-2002 | Исправлено: Svarga, 04:17 23-07-2003
Dark_3df



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
WebDi
С БД не связывался, но есть другое предположение: точка с запятой после каждой функции...

Цитата:
<td><?=odbc_result($result,2);?></td>

Всего записей: 54 | Зарегистр. 21-08-2002 | Отправлено: 05:35 27-09-2002
WebDi



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dark_3df
Пробовал как ты говоришь - не помогло. Пришёл специалист - оказалось дело в ODBC-настройках.
 
Сейчас другая проблема:

Код:
 
$query="SELECT Firma FROM main WHERE Firma Like 'а%'";
 

Не выдаёт все записи в поле на букву "А", а только одну (возможно первую найденую). Но если задать один произвольный символ впереди (Like '_а%'), выдаёт кучу (сколько надо). Почему так?

Всего записей: 2228 | Зарегистр. 05-04-2002 | Отправлено: 12:38 27-09-2002
VolxV

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
"a_%" попробуй. Вдруг получится. :)

Всего записей: 898 | Зарегистр. 01-06-2001 | Отправлено: 12:42 27-09-2002
WebDi



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VolxV
Спасибо за "попробуй".
Оказалось что регистр буквы не тот. "А ларчик просто открывался" (с)

Всего записей: 2228 | Зарегистр. 05-04-2002 | Отправлено: 15:01 27-09-2002
ENVA

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопрос про шаблоны!
Народ, уже неделю эксперементирую, а все никак!
Проблема вот в чем:
Возмем для примера скрипт с этого форума:
<?  
$charset="windows-1251";// русская кодировка  
//$de="iso-8859-1";// немецкая кодировка  
// требуются для автоматической подстановки если выдаваемый файл отличен от 1251 (по началу был стандарт)  
$file="dat.txt";// задание дескрипторов к файлам для меню  
$errorf="error.txt";// сообщение об ошибке, если дескриптор не соответствует файлу  
$indexf="index.txt";// начальное содержание, если дескриптор не определен  
$tmp = file($file);// загоняем в массив содержание файла  
reset($tmp);// обнуляем элементы массива  
foreach ($tmp as $line){// начинаем цикл и загоняем в $line "дескриптор:имя.файла"  
list($handle,$fn) = split(':', $line);// разделяем дескриптор и имя файла и загоняем в переменные  
//$handle - дескриптор $fn - имя файла  
$fn=rtrim($fn);// убираем в конце имени файла знак переноса на след. строку \n  
if ($id==""){ //если $id ничему не равно  
$index= join("\n",file($indexf));// то загоняем в переменную $index содержания файла  
$out=$index;  
// присваиваем $out содержимое ($out используется при выводе текста )  
}else{ // или  
if ($id==$handle ){// если дескриптор совпадает с указанными в dat.txt  
$fp= @join("\n",file($fn)); // то загоняем содержимое файла, которому соответствует дескриптор в $fp  знак @ перед функцией указывает интерпретатору не выводить системные сообщени об ошибке  
// вместо этого выводим свое сообщение если файл не будет найден  
$title = $id; // присваиваем $title имя дескриптора и выводим в качестве заголовка в хтмл  
if ($lang=="de"){// если документ на немецком то кодировка сменится  
$charset="iso-8859-1";}  
if ($fp){$out=$fp;}// проверяем на существование этого файла, если есть - присваиваем значение $fp переменой $out и выводим содержимое  
else //если файл открыть нельзя  
{$err= join("\n",file($errorf));  
$out=$err;} // выводим содержимое файла с описанием ошибки  
}// конец проверки входа  
}// конец цикла  
}// конец проверки на пустоту  
?>  
 
Существуют (например) три файла: dat.txt; index.txt; error.txt
В dat.txt прописывается:
index:index.txt - То есть будет выводится информация в index.php из index.txt
 
Так вот, например мы index.txt меняем на (например) indx.php. Как заставить скрипт в index.php обрабатывать php в indx.php?
То есть не просто, что бы index.php выводил текст из indx.php, а заставлял работать php код в indx.php!

Всего записей: 5 | Зарегистр. 24-02-2002 | Отправлено: 19:09 27-09-2002
sailor



Advanced sailor
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Повторю свой вопрос:

Цитата:
Вопрос. Как из одного скрипта (файла) перенаправить (переместить) в другой какую-нибудь переменную? Т.е. у меня в одном скрипте получается значение, которое я должен использовать в другом.

Мне тут посоветовали сделать include, но боюсь в моём случае это не поможет. Мне необходимо использовать гиперссылки. Т.е. в скрипте№1 я получаю какое-то значение переменной, затем нажимаю на одну из гиперссылок в этом скрипте и открывается другой скрипт№2.. Как сделать так, чтобы та переменная (например номер файла, который нужно открыть) была видна в скрипте№2. Т.е. как бы её сделать глобальной? Самый простой метод, который пока напрашивается - создавать временный файл и потом из этого же файла считывать эту переменну. Но это слишком глупо (ведь можно хранить эту переменную и в оперативке... надо только как-то к ней обратиться). Как?
 
Добавлено
Кстати, ещё вопрос. Что значит ошибка  
Parse error:  parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting ']' in

----------
Microphotostocker

Всего записей: 6229 | Зарегистр. 31-05-2001 | Отправлено: 19:31 28-09-2002
VolxV

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
Повторю свой вопрос

sailor, тут существует всего два варианта.
1. Передавай в GET-запросе: script2.php?some_var=some_val
2. Используй сессии или cookies.
 

Цитата:
expecting ']' in

Есть подозрение, что ты юзаешь preg_replace или чего-нибудь подобное. Одна из кавычек, перечисленных в конструкции "[...]" не была заслешена. Просто поставь перед ней символ "\".
 
Добавлено
ENVA, используй include или require.

Всего записей: 898 | Зарегистр. 01-06-2001 | Отправлено: 07:49 30-09-2002
sailor



Advanced sailor
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VolxV
спасибо за ответы. А как это "1. Передавай в GET-запросе: script2.php?some_var=some_val"?.. чуть чуть подробнее... если так сделать, то переменная передастся в URL?

----------
Microphotostocker

Всего записей: 6229 | Зарегистр. 31-05-2001 | Отправлено: 20:40 30-09-2002
Privetik



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пожалуйста, подскажите, как получить адрес текущего PHP ?
$_SERVER["PHP_SELF"] - не подходит, так как выводит что-то типа:
d:\www\test\test.php
Вместо
localhost\test\test.php
Таким образом, я получаю Forbidden.

----------
Privetik

Всего записей: 215 | Зарегистр. 06-01-2002 | Отправлено: 22:00 30-09-2002
Sergeant

Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sailor,

Цитата:
если так сделать, то переменная передастся в URL?
Ага, именно так.
 
Privetik,
Тебе что на выходе получить-то надо? Просто имя файла? Дык, я вот у себя запустил пхпинфо на сервере и показывает всё одно:
Цитата:
_SERVER["REQUEST_URI"] = /phpinfo.php  
_SERVER["SCRIPT_NAME"] = /phpinfo.php  
_SERVER["PHP_SELF"] = /phpinfo.php
А вообще попробуй без массива $_SERVER обойтись. К примеру просто $REQUEST_URI, $SCRIPT_NAME, $PHP_SELF.

----------
Если вы спорите с идиотом,
Наверняка, он занимается тем же самым.

Всего записей: 1553 | Зарегистр. 06-08-2001 | Отправлено: 01:08 01-10-2002
VolxV

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
sailor, ну куды уж подробнее.
В GET-методе переменные передаются в строке с путем к файлу.
 
http://тыры-пыры.com/тарам.парам?имя=значение&имя2=значение2
... и дальше пока не надоест через амперсанд (&).
 
Ограничения на размер запроса, конечно, надо учитывать.
 
Добавлено
А! Ну и обращаться потом к этим переменным через какой-нибудь $HTTP_GET_VARS['имя'] и $HTTP_GET_VARS['имя2'].
 
Ну или как там у тебя в настройках.

Всего записей: 898 | Зарегистр. 01-06-2001 | Отправлено: 07:01 01-10-2002
Privetik



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Privetik,  
Тебе что на выходе получить-то надо? Просто имя файла?

 
Нет, на самом деле, мне нужно получить полный путь к php скрипту, то есть адрес в Internet - ну или в случае лок. компьютера - localhost/abc/def/test.php. (а в случае PHP_SELF выдается полный локальный путь - т.е. вместо localhost подставляетя локальная корневая директория WWW- документов Apach-а)
 
Может как-нибудь из поля document.location в браузере выдирать?

----------
Privetik

Всего записей: 215 | Зарегистр. 06-01-2002 | Отправлено: 21:44 01-10-2002
VolxV

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Privetik
$this_script_full_path="http://".$SERVER_NAME.$PHP_SELF;
 
Добавлено
А вообще, вызови php_info и посмотри, чего тебе надо-то.

Всего записей: 898 | Зарегистр. 01-06-2001 | Отправлено: 09:06 02-10-2002
sailor



Advanced sailor
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ладно... а такой вопрос: если мне нужно чтобы 1 и тот же документ (скрипт, php-файл) с одним и тем же урл работал по разному в зависимости от различных условий? Поясню: у меня есть документ с N ссылками. По сути они вызывают один и тот же файл только с разным текстом (текст хранится в отдельных txt'шках). Так вот, как сделать так, чтобы нажав на ссылку у меня грузился 1 и тот же html (*.php) но текст туда подгружался из того тхт'шника, который мне нужен (в зависимости от гиперссылки на которую я жал)? А то получается очень неэкономично и неудобно - N файлов txt и N же файлов *.php (для каждого txt - свой файл). А если таких файлов планируется тысячи? Вобщем как решить такую проблему? И вообще возможно ли это сделать средствами PHP?

----------
Microphotostocker

Всего записей: 6229 | Зарегистр. 31-05-2001 | Отправлено: 09:23 02-10-2002
VolxV

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
sailor, дык инклюдь.
Допустим, это новости, вызываются через GET с параметром id в папке /news/: somesite.com/news/?id=id
txt-шники лежат в /news/data/ по номерам: 1.txt, 2.txt, etc.
 
Вот и получаешь:

Код:
тыры-пыры...
<? include ("data/{$HTTP_GET_VARS['id']}.txt") ?>
...тыры-пыры

Не забыв при этом проверить - существует ли файл.
 
Но я бы эту проблему решал вообще не так.
Если у тебя планируется достаточно большая нагрузка на сервер и/или большое количество документов, удобнее будет сделать страницы полностью статичными, а не обращаться к ним через script.php?id. Любая динамика загружает сервер еще больше.
 
Добавление-удаление-изменение документов выполнять через back-office или собственную CMS. Потому как все неудобство работы с десятками тысяч html-файлов основано только на том, что работают с ними через ftp.
 
Минимально необходимые данные для работы CMS хранить, конечно, удобнее в БД, точно также как и индексы для поиска по сайту.

Всего записей: 898 | Зарегистр. 01-06-2001 | Отправлено: 09:42 02-10-2002
nafania



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет всем,
Я пытаюсь написать website который бы объщался с MySQL. Это ценник магазина. Проблема в следуюшем. Очень долгое время обработки запроса. Когда я подключаюць к MySQL через терминал все ОК , а когда посылаю тот же запрос через PHP берет около 5 секунд на обработку.
 
Запрос идет из обыкновенной формы методом POST
Код скрипта следуюший:
 
<?
$price=$_POST['price'];
$item=$_POST['item'];
$index=$_POST['index'];
 
if(!$item || !$price || !$index)
{
echo "wrong input";
}
 
$item=addslashes($item);
$price=doubleval($price);
$query="insert into main set Name=\" ".$item." \" , Price=\" ".$price." \" , ItemId=\" ".$index." \" ";
 
$db=mysql_pconnect("localhost","user","password");
 
mysql_select_db("website_db");
 
mysql_query($query);
?>
 
Работаю я на win xp, p3 450 Mhz, 320Mb памяти.
Судя по taskmanager во время обработки запроса CPU почти не загружен. Я не понимаю в чем  проблема.

Всего записей: 59 | Зарегистр. 29-03-2002 | Отправлено: 17:57 20-10-2002 | Исправлено: nafania, 17:58 20-10-2002
VolxV

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
nafania, индексы при работе с БД используются?

Всего записей: 898 | Зарегистр. 01-06-2001 | Отправлено: 08:22 21-10-2002
WebDi



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте!
Извините - вопрос.

Код:
-------File1
function flyfox ($qb) {
  $qc=$qb+1;
  return $qc; }
echo flyfox(5);
 
-------File2
include('File1');
 
-------Output
6
Fatal error: Cannot redeclare flyfox()

Если функция прописана в File2, то всё выводится нормально, но надо бы именно так, в разных файлах.
Помогите, пожалуйста!
 
Добавлено
Попробовал сделать как написал, и всё заработало.
Но там ещё столько всего...
Из-за чего может не работать?

Всего записей: 2228 | Зарегистр. 05-04-2002 | Отправлено: 14:24 21-10-2002
ivank



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
WebDi
Это крик типа "памагите мине, программа не раотает!" ? Самый простой способ: обратиться к врачу с просьбой о рспрямлении рук...

Всего записей: 553 | Зарегистр. 24-01-2002 | Отправлено: 17:29 21-10-2002
wmtrader



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Такая проблема:
 Допустим я написл скрипт который выполняется 3-4 часа. При этом он постоянно должен что-то выводить в окно браузера, в т.ч. и ВСЕ WARNING'и генерируемые php. Но понятно что 4 часа никакой IE не будет ждать, а просто скажет что страница не доступна.
 
Теперь вопрос: Как перенеправить весь поток предназначеный для браузера в локальный файл, чтобы можно было потом изучить что он там намудрил. Еще раз повторю: ДОЛЖНЫ ВЫВОДИТЬСЯ ВСЕ СООБЩЕНИЯ, ГЕНЕРИРУЕМЫЕ PHP, такие как warning, parse error и т.д.
 
Мож кто подскажет, pls.

Всего записей: 4 | Зарегистр. 17-07-2002 | Отправлено: 23:42 21-10-2002 | Исправлено: wmtrader, 23:44 21-10-2002
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71

Компьютерный форум Ru.Board » Интернет » Web-программирование » PHP


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru