Регистрация/логин. Почему $_POST не передаётся во второй сегмент кода (логин) из регистрации?

xsislav

Новичок
В index.php сделал регистрацию и логин

Notice: Undefined index: user in /var/www/localhost/htdocs/index.php on line 43
Для проверки написал перед условием echo $_POST['user'];
Вот и получил ошибку.

$_SESSION['user'] - работает (внизу страницы пишется какой юзер. А вот с $_POST проблема.

PHP:
<!DOCTYPE html>
<html>
<h1>Register</h1>
<form method="POST">
  <input type="text" name="user"><br /><br />
  <input type="pass" name="pass"><br /><br />
  <input type="submit"><br />
</form>
<?php
session_start();
  if(isset($_POST['user'], $_POST['pass'])){
  require 'connect.php';
  $zr++;
  $query = d()->prepare("INSERT INTO u (user, pass, loc) VALUES (:user, :pass, :loc)");
  $query->bindParam(':user', $_POST['user']);
  $query->bindParam(':pass', $_POST['pass']);
  $query->bindParam(':loc', $zr);
  if($query->execute()){
  $_SESSION['user'] = $row['user'];
  $_SESSION['pass'] = $row['pass'];
  header("Location: ".$_SERVER['PHP_SELF']);
  } else{
  echo 'ERROR';
  }
  }
?>
<h1>Login</h1>
<form method="POST">
  <input type="text" name="user"><br /><br />
  <input type="pass" name="pass"><br /><br />
  <input type="submit"><br />
</form>
<?php
echo $_POST['user'];
  if(isset($_POST['user'], $_POST['pass'])){
  require 'connect.php';
  $query = d()->prepare("SELECT user, pass FROM u WHERE user=:user AND pass=:pass");
  $query->bindParam(':user', $_POST['user']);
  $query->bindParam(':pass', $_POST['pass']);
  $query->execute();
  if($row = $query->fetch()){
  $_SESSION['user'] = $row['user'];
  $_SESSION['pass'] = $row['pass'];
  header("Location: ".$_SERVER['PHP_SELF']);
  }
  }
$us=$_SESSION['user'];
echo 'user ',$us;
?>
<?php
if(isset($_SESSION['user'])){
$us=$_SESSION['user'];
echo '<br /> user ',$us, ' ', '<a href="logout.php">Logout</a>';
echo '<br />', '<a href="zrs.php">zero session</a>';
}
?>
</html>
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
xsislav, ошибка у тебя будет возникать тогда, когда ты не посылаешь данные на сервер, то есть при простом заходе на страницу, без нажатия на кнопку submit
 
Сверху