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

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

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: Две формы, вторая часть php не видит $_POST
xcislav
Отправлено: 28 Ноября, 2014 - 15:46:08
Post Id


Новичок


Покинул форум
Сообщений всего: 14
Дата рег-ции: Апр. 2014  


Помог: 0 раз(а)




Кнопке 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 - всё хорошо.

(Отредактировано автором: 28 Ноября, 2014 - 15:47:10)

 
 Top
Sail
Отправлено: 28 Ноября, 2014 - 17:40:59
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


Помог: 57 раз(а)




xcislav, вне блока проверки на существование находится вывод
PHP:
скопировать код в буфер обмена
  1. echo $_POST['user'];
  2. $us=$_SESSION['user'];
  3. echo 'user ',$us;

Потому, очевидно, и ругается.
Кстати, если уж приводите цитату "... on line 54", то заодно и укажите, какой строчке представленного кода она соответствует Однако
 
 Top
andrewkard
Отправлено: 08 Декабря, 2014 - 00:33:47
Post Id


Участник


Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014  


Помог: 30 раз(а)




echo 'user ',$us;

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

echo 'user '.$us;
 
 Top
Bio man
Отправлено: 08 Декабря, 2014 - 01:13:46
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




andrewkard без разницы
 
 Top
andrewkard
Отправлено: 08 Декабря, 2014 - 22:08:54
Post Id


Участник


Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014  


Помог: 30 раз(а)




xcislav
Вторая форма у Вас обрабатывается и первым скриптом, может имеет смысл сделать все в одном скрипте? И в зависимости от кнопки проводить нужные действия.
(Добавление)
Bio man
Ага, уже вижу.
 
 Top
lastdays
Отправлено: 09 Декабря, 2014 - 11:13:16
Post Id



Частый гость


Покинул форум
Сообщений всего: 220
Дата рег-ции: Март 2013  


Помог: 7 раз(а)




Весь код в одном файле я так понимаю)

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


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



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

(Отредактировано автором: 09 Декабря, 2014 - 11:15:24)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« HTTP и PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB