Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Регистрация с логином на одной странице.
Форумы портала PHP.SU » » HTTP и PHP » Регистрация с логином на одной странице.

Страниц (1): [1]
 

1. xcislav - 28 Ноября, 2014 - 15:46:08 - перейти к сообщению
Кнопке submit назначены два имени "ok1" "ok2". Вторая после второй формы ввода перепроверяется что нажата была вторая кнопка.


CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.  
  3. <!DOCTYPE html>
  4. <html>
  5. <h1>Register</h1>
  6. <form method="POST">
  7.     <input type="text" name="user"><br />    <input type="pass" name="pass"><br />    <input type="submit" name="ok1"></form>
  8. <?php
  9.    if(isset($_POST['user'], $_POST['pass'])){
  10.        require 'connect.php';
  11.         $zr++;
  12.        $query = d()->prepare("INSERT INTO u (user, pass, loc) VALUES (:user, :pass, :loc)");
  13.        $query->bindParam(':user', $_POST['user']);
  14.        $query->bindParam(':pass', $_POST['pass']);
  15.        $query->bindParam(':loc', $zr);
  16.        if($query->execute()){
  17.            $_SESSION['user'] = $row['user'];
  18.            $_SESSION['pass'] = $row['pass'];
  19.            header("Location: ".$_SERVER['PHP_SELF']);
  20.         exit();
  21.        } else{
  22.            echo 'ERROR';
  23.        }
  24.    }
  25. ?>
  26.  
  27.  
  28. <h1>Login</h1>
  29. <form method="POST">
  30.     <input type="text" name="user"><br />    <input type="pass" name="pass"><br />    <input type="submit" name="ok2"></form>
  31.  
  32. <?php
  33.    if(isset($_POST['user'], $_POST['pass'], $_POST['ok2'])){
  34.        require 'connect.php';
  35.        $query = d()->prepare("SELECT user, pass FROM u WHERE user=:user AND pass=:pass");
  36.        $query->bindParam(':user', $_POST['user']);
  37.        $query->bindParam(':pass', $_POST['pass']);
  38.        $query->execute();
  39.        if($row = $query->fetch()){
  40.            $_SESSION['user'] = $row['user'];
  41.            $_SESSION['pass'] = $row['pass'];
  42.            header("Location: ".$_SERVER['PHP_SELF']);
  43.  
  44.        }
  45.    }
  46. echo $_POST['user'];
  47. $us=$_SESSION['user'];
  48. echo 'user ',$us;
  49. ?>
  50.  
  51.  
  52. <?php
  53. if(isset($_SESSION['user'])){
  54.  
  55. $us=$_SESSION['user'];
  56. echo '<br /> user ',$us, ' ', '<a href="logout.php">Logout</a>';
  57. echo '<br />', '<a href="zrs.php">zero session</a>';
  58.  
  59. } else
  60. {
  61. echo '<br /> <a href="register.php">Register</a>';
  62. }
  63. ?>
  64.  
  65. </html>
  66.  
  67.  


Но это никак не влияет:

Цитата:
Notice: Undefined index: user in /var/www/localhost/htdocs/index. php on line 54


А вот с $_SESSION - всё хорошо.
2. Sail - 28 Ноября, 2014 - 17:40:59 - перейти к сообщению
xcislav, вне блока проверки на существование находится вывод
PHP:
скопировать код в буфер обмена
  1. echo $_POST['user'];
  2. $us=$_SESSION['user'];
  3. echo 'user ',$us;

Потому, очевидно, и ругается.
Кстати, если уж приводите цитату "... on line 54", то заодно и укажите, какой строчке представленного кода она соответствует Однако
3. andrewkard - 08 Декабря, 2014 - 00:33:47 - перейти к сообщению
echo 'user ',$us;

наверное нужно так:

echo 'user '.$us;
4. Bio man - 08 Декабря, 2014 - 01:13:46 - перейти к сообщению
andrewkard без разницы
5. andrewkard - 08 Декабря, 2014 - 22:08:54 - перейти к сообщению
xcislav
Вторая форма у Вас обрабатывается и первым скриптом, может имеет смысл сделать все в одном скрипте? И в зависимости от кнопки проводить нужные действия.
(Добавление)
Bio man
Ага, уже вижу.
6. lastdays - 09 Декабря, 2014 - 11:13:16 - перейти к сообщению
Весь код в одном файле я так понимаю)

18 строка в шапке.
PHP:
скопировать код в буфер обмена
  1. $_SESSION['user'] = $row['user'];


$row не известен, $_post должен быть.



з.ы. Зачем устанавливать сессию после регистрации - для автовхода?

 

Powered by ExBB FM 1.0 RC1