2016-10-07 2 views
0

Я новичок в кодировании и имею проблемы с кодировкой на Mac.

Когда я делать var_dump ($ _ POST), ответ: массив (0) {}

Вот код:

<?php 
session_start(); 
if ($_SERVER["REQUEST_METHOD"] == "POST") { 
    $name=strip_tags($_POST["name"]); 
    $age=$_POST["age"]*1; 
    $_SESSION["name"] = $name; 
    $_SESSION["age"] = $age; 
} 
else { 
    $name = $_SESSION["name"]; 
    $age = $_SESSION["age"]; 
} 

?> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 

<html> 
<head> 
    <title>Session demonstration</title> 
</head> 

<body> 
<h1>Session demonstration</h1> 
<a href="session-2.php">Demo session</a><br> 
<a href="session_destroy.php">Close session</a><br><br> 
<form action="<?=$_SERVER["PHP_SELF"]?>" 
     method="post"> 
    Your name is: 
    <input type="text" name="name" value="<?php echo $name?>"><br> 
    You are: 
    <input type="text" name="age" value="<?php echo $age?>"><br> 
    <input type="submit" value="Submit"> 
</form> 
<?php 
if ($name and $age) { 
    if ($name and $age) { 
     echo "<h1>Hello, $name</h1>"; 
     echo "<h3>You are $age</h3>"; 
    } 
    else { 
     print "<h3>Bye!</h3>"; 
    } 
} 
?> 
</body> 
</html> 

То же время, когда я нажимаю кнопку отправить это показывает мне:

Примечание: Undefined индекс: имя в/Applications/MAMP/HTDOCS/PHP_Course 2/демо/Mod2/сессии/сессии 1.php по линии 5

Примечание: Undefined индекс: возраст в/Applications/MAMP/HTDOCS/PHP_Course 2/demo/mod2/sessions/session-1.php on line 6

Возможно, кто-то знает, что я могу сделать.

непокорного

+0

метод добавить = запись в вашем виде элемента –

+0

Но это там ... –

+0

@jevgeni_serstjukov сообщение там и нет ничего плохого. Какова цель добавления двух условий if. Во-вторых, вы получаете эти ошибки, когда сеанс пуст. –

ответ

0

проблема с этим ваши переменными сессиями не установлены в начале, и вы пытаетесь присвоить $ имя и $ возраст с этими неинициализированными переменными на вашем еще блок. Подтвердите свои задания следующим образом.

<?php 
session_start(); 
$name = $age = ""; 
if ($_SERVER["REQUEST_METHOD"] == "POST") { 
    $name = strip_tags($_POST["name"]); 
    $age = $_POST["age"] * 1; 
    $_SESSION["name"] = $name; 
    $_SESSION["age"] = $age; 
} elseif (isset($_SESSION['name']) || isset($_SESSION['age'])) { 
    if (isset($_SESSION['name'])) { 
     $name = $_SESSION['name']; 
    } 
    if (isset($_SESSION['age'])) { 
     $age = $_SESSION['age']; 
    } 
} 
?> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 

<html> 
    <head> 
     <title>Session demonstration</title> 
    </head> 

    <body> 
     <h1>Session demonstration</h1> 
     <a href="session-2.php">Demo session</a><br> 
     <a href="session_destroy.php">Close session</a><br><br> 
     <form action="<?= $_SERVER["PHP_SELF"] ?>" method="post"> 
      Your name is: 
      <input type="text" name="name" value="<?php echo $name ?>"><br> 
      You are: 
      <input type="text" name="age" value="<?php echo $age ?>"><br> 
      <input type="submit" value="Submit"> 
     </form> 
<?php 

    if ($name and $age) { 
     echo "<h1>Hello, $name</h1>"; 
     echo "<h3>You are $age</h3>"; 
    } else { 
     print "<h3>Bye!</h3>"; 
    } 
?> 
    </body> 
</html> 
+0

Просто попробовал. Но после var_dump ($ _ post) = array (0) {} –

+0

Были ошибки, прежде чем попробовать его сейчас. И var_dump ($ _ POST) ** UPPER CASE ** и var_dump после отправки формы. –

+0

после того, как я отправлю форму, которую он мне дает: Примечание: Неопределенный индекс: имя в/Приложения/MAMP/htdocs/PHP_Course 2/demo/mod2/sessions/session-1.php on line 5 Примечание: Неопределенный индекс: возраст in/Applications/MAMP/htdocs/PHP_Course 2/demo/mod2/sessions/session-1.php в строке 6 –