![]() |
Страницы (2): [1] 2 » Показаны 19 сообщений на этой странице |
Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- PHP (http://netadmin.ws/forum/forumdisplay.php?forumid=6)
-- провлема (http://netadmin.ws/forum/showthread.php?threadid=2325)
провлема
Проблема иакая, при нажатие на копку,почемуто вводяца все данные кро admin_id хотя его значенме естьвезде. помогитн...
<?
function print_form() {
print("Enter Your Interview into the Datebase:<br><br>\n");
$db = mysql_connect("localhost", "root");
mysql_select_db("esrael", $db);
$sql = "select * from admins limit 1";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
echo "You Name: $row[admin_name]<br>\n";
echo "ID: $row[admin_id]\n";
$admin_id=$row[admin_id];
?>
<form action="intvpost.php?<?$admin_id?>" method="post">
Who Was Interviewed:<input type="text" name="topic"><p>
<textarea cols=40 rows=20 name="body"></textarea><p>
<input type="submit" name="submit" value="Submit Interview">
</form>
<?
}
if(isset($submit)):
if(!$topic || !$body):
print("<b>You forgot to fill some of the required fields</b>");
else:
$db2 = mysql_connect("localhost", "root");
mysql_select_db("esrael", $db2);
$sql2 = "INSERT INTO interview VALUES('$admin_id','$topic','$body', NOW())";
echo $sql2;
$result2 = mysql_query($sql2);
echo "Все OK";
endif;
else:
print_form();
endif;
?>
<form action="intvpost.php?<?$admin_id?>" method="post">
самое простое вместо post написать get
а лучше добавить скрытое поле с <?$admin_id?> и убрать id из action
__________________
FAQ OFF
да проблема не в этом. он не определяет значение admin_id
=)
ну что еще сказать?..
жди, щас распишу в чем проблема...
__________________
FAQ OFF
итак, что мы видим?
quote:
<form action="intvpost.php?<?$admin_id?>" method="post">
__________________
FAQ OFF
<?
function print_form() {
print("Enter Your Interview into the Datebase:<br><br>\n");
$db = mysql_connect("localhost", "root");
mysql_select_db("esrael", $db);
$sql = "select * from admins limit 1";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
echo "You Name: $row[admin_name]<br>\n";
echo "ID: $row[admin_id]\n";
?>
<form action="intvpost.php<?php echo $admin_id; ?>" method="post">
Who Was Interviewed:<input type="text" name="topic"><p>
<textarea cols=40 rows=20 name="body"></textarea><p>
<input type="hidden" name="admin_id" value="<?php echo $admin_id; ?>">
<input type="submit" name="submit" value="Submit Interview">
</form>
<?
}
if(isset($submit)):
if(!$topic || !$body):
print("<b>You forgot to fill some of the required fields</b>");
else:
$admin_id=$row[admin_id];
$date = date("H:i,d/M/y");
$db2 = mysql_connect("localhost", "root");
mysql_select_db("esrael", $db2);
$sql2 = "INSERT INTO interview VALUES('$admin_id','$topic','$body', $date)";
echo $sql2;
$result2 = mysql_query($sql2);
echo "Все OK";
endif;
else:
print_form();
endif;
?>
action="intvpost.php<?php echo $admin_id; ?>"
- убери кусок выделеный жирным(он вообще никакой роли не играет)
- в начале скрипта напиши error_reporting(E_ALL); (все что вывалит после этого изменения будет ошибками)
- хотелось бы взглянуть на дамп структуры таблицы
SCHIZO добавил 27-07-2002 в 22:53:56:
чем больше изучаю этот код тем больше удивляюсь тому как же я далек от такого стиля программирования, ну ладно хватит лирики, перейдем к делу (сам таким был.. =)
у тебя там функция которая выводит форму, так?
и в этой функции я не увидел место где определяется значение переменной $admin_id после выборки из базы...
echo "ID: $row[admin_id]\n";
вместо этого попробуй так:
$admin_id = $row[admin_id];
echo "ID: ".$admin_id."\n";
__________________
FAQ OFF
Warning: Use of undefined constant admin_id - assumed 'admin_id' in c:\program files\apache group\apache\htdocs\esrael\admsec\intvpost.php on line 85
Warning: Undefined variable: row in c:\program files\apache group\apache\htdocs\esrael\admsec\intvpost.php on line 85
вот ошыбка которую он выдает. вот зип с самим скриптом и дампом.
ты не в то место изменения добавил....
в функцию надо, где то строка 70-я, он не вносится потому что не отправляется, глянь исходник HTML и посмотри что у тебя скрипт в поле которое hidden написал
SCHIZO добавил 27-07-2002 в 23:29:03:
...и заимей на будущее полезную привычку заключать элемент массива в кавычки.
вот так будет правильно: $array['element']
а вот так неправильно $array[element]
P.S.
это вроде просто, но позволяет значительно упростить жизнь
__________________
FAQ OFF
<?
function print_form() {
print("Enter Your Interview into the Datebase:<br><br>\n");
$db = mysql_connect("localhost", "root");
mysql_select_db("esrael", $db);
$sql = "select * from admins limit 1";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
echo "You Name: $row[admin_name]<br>\n";
$admin_id = $row[admin_id];
echo "ID: ".$admin_id."\n";
?>
<form action="intvpost.php" method="post">
Who Was Interviewed:<input type="text" name="topic"><p>
<textarea cols=40 rows=20 name="body"></textarea><p>
<input type="hidden" name="admin_id" value="<?php echo "$admin_id"; ?>">
<input type="submit" name="submit" value="Submit Interview">
</form>
<?
}
if(isset($submit)):
if(!$topic || !$body):
print("<b>You forgot to fill some of the required fields</b>");
else:
$date = date("H:i,d/M/y");
$db2 = mysql_connect("localhost", "root");
mysql_select_db("esrael", $db2);
$sql2 = "INSERT INTO interview VALUES('$admin_id','$topic','$body', $date)";
echo $sql2;
$result2 = mysql_query($sql2);
echo "Все OK";
endif;
else:
print_form();
endif;
?>
главное спокойствие =)
обрати внимание на строчку кода формы в коде скрипта:
<input type="hidden" name="admin_id" value="<?php echo "$admin_id"; ?>">
теперь перейди в броузере к скрипту и посмотри страницу в виде HTML....
скажи что ты видишь в этой строчке вместо <?php echo "$admin_id"; ?> ???
дополнение.
посмотрел дамп базы, и сравнил его с запросом который ты пытаешься выполнить.
Сделал вывод что порядок следования полей в таблице и запросе не совпадает. Т.е.
в таблице поля идут в следующем порядке:
intv_id topic body date admin_id
'$admin_id','$topic','$body', $date
'',topic, body, date, admin_id
__________________
FAQ OFF
<?
function print_form() {
print("Enter Your Interview into the Datebase:<br><br>\n");
$db = mysql_connect("localhost", "root");
mysql_select_db("esrael", $db);
$sql = "select * from admins limit 1";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
echo "You Name: $row[admin_name]<br>\n";
$admin_id = $row[admin_id];
echo "ID: ".$admin_id."\n";
?>
<form action="intvpost.php" method="post">
Who Was Interviewed:<input type="text" name="topic"><p>
<textarea cols=40 rows=20 name="body"></textarea><p>
<input type="hidden" name="admin_id" value="<?php echo "$admin_id"; ?>">
<input type="submit" name="submit" value="Submit Interview">
</form>
<?
}
if(isset($submit)):
if(!$topic || !$body):
print("<b>You forgot to fill some of the required fields</b>");
else:
$date = date("H:i,d/M/y");
$db2 = mysql_connect("localhost", "root");
mysql_select_db("esrael", $db2);
$sql2 = "INSERT INTO interview VALUES('0','$topic','$body', '$date','$admin_id')";
echo $sql2;
$result2 = mysql_query($sql2);
echo "Все OK";
endif;
else:
print_form();
endif;
?>
лол, а теперь дату не находит.
что ты пытаешься туда вставить?
- приблизительно следующее 19:13,29/Jul/02
каков тип поля?
- date
какие данные способно хранить это поле?
- дата представленная в формате YYYY-MM-DD
P.S.
если тебе необходимо вставить текущюю дату используй функцию MySQL - CURDATE() вместо переменной
__________________
FAQ OFF
что ты пытаешься туда вставить?
- приблизительно следующее 19:13,29/Jul/02
da
каков тип поля?
- date
da
какие данные способно хранить это поле?
- дата представленная в формате YYYY-MM-DD
ne znau, ya ne ispolzival standart
вместо этого -> 19:13,29/Jul/02
попробуй это -> 2002-07-29
если надо еще и время измени формат поля и храни в нем UNIX TIMESTAMP и запихивай как UNIX TIMESTAMP
P.S.
поле не способно хранить данные которые ты ему передаешь
__________________
FAQ OFF
| Формат времени GMT. Текущее время 04:55. | Страницы (2): [1] 2 » Показаны 19 сообщений на этой странице |
Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.