PHP'nin GET tarafından URL'sini giriş durumunu tutmak için

1 Cevap php

Ben öyle ki GET POST değişkenleri e-posta ve şifre koymak

Benim * handle_login_form.php Bölüm *

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

Kullanıcı daha sonra hakkında bağlantıyı tıklar. O url giriş bilgi olmalı, ama o bilmiyor. O sahip tek index.php?about&.

Benim index.php Bölüm

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>";
     }

Bu olup bitenler

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 Cevap

Sen HTML & karakteri kaçmak gerekir. HTML basılan her ampersanı için &amp; yerine & arasında kullanın.

Ayrıca, ikinci açıklamada ekstra alıntı tek tırnak ekledi. Bu sabit bir versiyonu:

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

Bu sorgu dizesinde parola (hash) depolamak için güvensiz olduğunu aklınızda tutun: verileri koklama herkes sadece doğru URL'yi kopyalayarak kullanıcıyı parodi edebilirsiniz. Yerine session cookie kullanmayı düşünün.