2009-11-22 4 views
1

На одном сервере PHP у меня есть два файла. Один файл (имя "first.php") содержит этот код:

<html> 
<head> 
<title>First Page</title> 
</head> 
<body> 
Please enter your password and age: 
<form action="pass.php" method="post"> 
Name: <input type="text" name="fname" /> 
Age: <input type="text" name="age" /> 
<input type="submit" /> 
</form> 
</body> 
</html> 

Другой файл ("pass.php") содержит этот код:

<html> 
<head> 
<title>Secon Page</title> 
</head> 
<body> 
<?php 
if ($fname=="Jack") 
    echo "You are Jack!"; 
else 
    echo "You are not Jack!"; 
?> 
</body> 
</html> 

Насколько я понимаю, если пользователь вводит «Джек» на первой странице, а вторая страница должна отображаться с «You're Jack!». линии, но этого не происходит. Почему это так?

ответ

5

На вашей второй странице вместо проверки на $ fname проверьте вместо $ _POST ['fname']. Я думаю, что это все, что вам не хватает.

+0

Спасибо !!! Он работает сейчас !!! – brilliant

+0

Добро пожаловать. Я надеюсь, что ваши будущие php-проекты пойдут хорошо! – darthnosaj

3

У вас, вероятно, нет register_globals. Это обесценивается и будет удалено в 6.x. Поэтому для хорошего программирования вам нужно вместо $ fname try $ _POST ['fname'] на вашей второй странице.

1

Это может помочь установить значения столбцов в качестве переменных и работать с ними. Что-то вроде этого:

foreach($_POST as $key => $value) 
{ 
    $$key = $value; 
} 

Тогда все, что опубликовано будут доступны, а не использовать $_POST['xxxxx'] в вашей логике.

+0

Это еще худшая идея, чем register_globals, поскольку она может перезаписывать любые переменные, которые вы использовали в вашем скрипте ранее. И вы все равно получите множество предупреждений для переменных, которые не переданы. – bobince

+0

Да, он может перезаписывать ранее установленные переменные, но вы можете это сделать в любом месте. Именование - один из самых сложных аспектов программирования! Однако я бы предпочел не повторять себя с помощью $ _POST ['key'] во всей моей логике. – chris

1

pass.php должен выглядеть следующим образом

<html> 
<head> 
<title>Secon Page</title> 
</head> 
<body> 
<?php 
if ($_POST['fname'] =="Jack") 
    echo "You are Jack!"; 
else 
    echo "You are not Jack!"; 
?> 
</body> 
</html> 
+0

Большое спасибо. – brilliant

Смежные вопросы