Чтобы сохранить статус входа в URL с помощью PHP GET - PullRequest
1 голос
/ 10 августа 2009

Я помещаю переменные email и пароль от POST до GET так, чтобы

Часть моего handle_login_form.php

 header("Location: /codes/index.php?ask_question&" . "email=" . $_POST['email'] . "&" . "passhash_md5=" . md5($_POST['password']) );

Затем пользователь нажимает ссылку «О программе». У него должна быть информация для входа в URL, но он не имеет. У него есть только index.php?about&.

Часть моего index.php

if (isset($_GET['email'])) {
         echo  ("<li><a href='?about&email='" .
             $_GET['email'] .                                                                                      
             "&passhash_md5" . 
             $_GET['passhash_md5'] . 
             ">About</a></li>");
     } else {
         echo "<li><a href='?about'>About</a></li>";
     }

Это то, что происходит

STEP      | handle_login_form.php  index.php?email&passhash_md5    index.php?about&
protocol  | POST                -> GET                          -> GET
----------------------------------------------------------------------------------
variables | password               passhash_md5                    passhash_md5
          | email                  email                           email
                                                                   Problem HERE!

1 Ответ

2 голосов
/ 10 августа 2009

Вам нужно экранировать символ & в HTML. Используйте &amp; вместо & для каждого амперсанда, напечатанного в HTML.

Вы также добавили дополнительную одинарную кавычку в свое второе утверждение. Это исправленная версия:

  echo  ("<li><a href='?about&email=" .
    $_GET['email'].
    "&passhash_md5" . 
    $_GET['passhash_md5'] . 
    "'>About</a></li>");

Имейте в виду, что хранить (хеш) пароль в строке запроса небезопасно: каждый, кто перехватывает данные, может подделать пользователя, просто скопировав правильный URL-адрес. Попробуйте вместо этого использовать сессионный cookie .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...