PHP: вопросы и ответы

Nonick

Старожил
поневич":kfcgkei5 сказал(а):
НАрод, подскажите как данные из формы передать в сам скрипт PHP?
указываешь а свойтстве action формы адрес скрипта. И в самом скрипте данные с формы будут присвоены переменным вида $name, где name - имя элемента формы.

зы. возможно в конфиге пхп прийдёться поменять сторочку register_globals=off на register_globals=on
 

поневич

Старожил
Nonick":3l06u6tp сказал(а):
поневич":3l06u6tp сказал(а):
НАрод, подскажите как данные из формы передать в сам скрипт PHP?
указываешь а свойтстве action формы адрес скрипта. И в самом скрипте данные с формы будут присвоены переменным вида $name, где name - имя элемента формы. зы. возможно в конфиге пхп прийдёться поменять сторочку register_globals=off на register_globals=on
Спасибо,я так уже делал, но вот про конфиг тока узнал, наверное в этом вся проблема и заключается, т.к иначе скрипт не работает.
 

Majik13

Старожил
при отключенном register_globals нужно в таких случаях вместо $переменная писать $HTTP_GET_VARS[$переменная]
ну или $HTTP_POST_VARS[$переменная], смотря чё и как передаёте

это так, на всякий, просто не на всех серверах php.ini разрешают менять ;)
 

p0r0x

Бывалый
Druid":1h2fx2vu сказал(а):
Что за интерпритатор?

на http://www.php.net заходишь и скачиваешь php 4.3.0 ,например. Потом устанавливаешь и наслаждаешься.
А интерпретатор - это переводчик php-скрипта в понятный браузеру html. Короче, все скрипты, благодаря, php.exe :) выполняются на стороне сервера.
 

поневич

Старожил
ТОварищи, у меня такой вопрос.
Мне нужно организовать запись из формы в текстовую базу данных(db.txt) в виде
Код:
Имя|адресс
, да еще чтобы каждая новая запись была новой строкой в базе, как это сделать не знаю, подскажите пожалуйста.
 

Nonick

Старожил
Делаешь форму с полями name и adress и кнопкой send, в свойство action формы пихаешь ссылку на следующий скрипт:
Код:
$inp = "$name|$adress\n"
$file = fopen("db.txt", "r+t");
$content = fread($file, filesize("db.txt"));
$content=$content.$inp;
fwrite($file, $content);
fclose($file);
print('Запись добавлена!');
P.S. Это будет работать только с включенный REGISTER_GLOBALS
 

поневич

Старожил
Ага, спасибо, тока тут ошибка есть, точки с запятой в первой строке нету, без них естественно ни чего не работает.
 

Кекс

Старожил
Fandango":bkdnadxx сказал(а):
Спасибо меджик, с сессиями разобрался, но теперь ещё вопрос, почему выскакивает эта ошибка: Warning: mail(): Failed to connect to mailserver at "mail.gtn.ru" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in c:\apache\htdocs\magaz\catalog\includes\classes\email.php on line 500 Текст php.ini [mail function] ; For Win32 only. SMTP = mail.gtn.ru ; for Win32 only sendmail_from= [email protected] ; for Win32 only smtp_port = 25 ; for Win32 only ; For Win32 only. ;sendmail_from = [email protected] ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). ;sendmail_path = O.S. Windows XP
 

Кекс

Старожил
Что нужно сделать, чтобы страница, генерируемая на PHP, не кэшировалась у пользователя?
Что нужно сделать, чтобы данные из формы не передавались обработчику еще раз после нажатия кнопки "Обновить"?
 

Незнайка

Старожил
Кекс":1ddeewxf сказал(а):
Что нужно сделать, чтобы страница, генерируемая на PHP, не кэшировалась у пользователя?
Код:
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
 

поневич

Старожил
Речь пойдет о баз данных MySQL.
Мне нужно создать таблицу для этого я делаю следующее:
Код:
CREATE TABLE `activestats` (
  `id` int(10) NOT NULL default '0',
  `mapid` int(50) NOT NULL default '0',
  `score` int(8) NOT NULL default '0',
  `statusofaircraft` varchar(20) NOT NULL default '0',
  `country` varchar(50) NOT NULL default '0',
  `currentarmy` varchar(10) NOT NULL default '0',
  `ping` int(8) NOT NULL default '0',
  `aircraft` int(5) NOT NULL default '0',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM;
Но после запуска файла ни чего не происходит. Вчем ошибка?
И то ли я вообще делаю?
 

поневич

Старожил
Прохожий":9d2iypzi сказал(а):
а база-то где? к ней сначала не худо бы приконнектится.
Код:
$link = mysql_connect ("localhost" , "юзер" , "пароль");
$database = "имя базы";
Я вот так подрубался только результат был нулевым.
 
A

Anonymous

Насколько я знаю, не надо заключать в ковычки имена таблицы и столбцов. Это раз. а теперь смотри как делается запрос MySQL.
Код:
$sql="CREATE TABLE bla-bla bla...";
$res=mysql_query($sql);
if (!$res) echo "Error while creating table";
примерно так, за синтаксис не ручаюсь.
 

Nonick

Старожил
Вопрос такой: Есть 2 функции, первая - извлекает данные из бд и помещает их в переменные; вторая подставляет значения этих переменных в шаблон. Как сделать, чтобы переменные объявленные в первой функции были видны внутри второй функции.
 

Кекс

Старожил
Возможно, так:

function First(){ global $a; $a = bla-bla; } function Second(){ global $a; print($a); }
 

Nonick

Старожил
Нет, так не получится, т.к. функция global работает только для переменных, объявленных в глобальной зоне видимости(т.е. вне функций). Задача усложняется тем, что я не знаю какие именно переменные будут задействованы во второй функции, поэтому нужно сделать видимыми все.
 
Верх