[英]php seems not to receive values from forms (post and get)
我正在嘗試創建一個登錄和注銷系統。 一切正常,直到我嘗試發送隱藏值(最后)以注銷。 用戶會“提交”隱藏值“注銷”,但似乎該值未發送。 我已經嘗試了不同的方法來解決此問題,但是要么我總是收到錯誤消息(但代碼有效),要么我沒有收到錯誤消息,但它不起作用。
<section>
<h2>Zaloguj się do systemu</h2>
<?php
//$username;
//$password;
if(empty($_SESSION['userpass']) && empty($_POST['pass'])){
//create a log in form if no one is log in
echo "
<form method='post' action='./indexLogin.php'>
<table>
<tr>
<td>Urzytkownik:</td>
<td><input type='text' name='name'/></td>
</tr>
<tr>
<td>Hasło:</td>
<td><input type='password' name='pass'/></td>
</tr>
</table>
<input type='submit' value='Wyślij'>
</form>
"; //end of echo
}
else if(empty($_SESSION['userpass']) && !empty($_POST['pass'])){
//echo the user name and his password
$userName = $_POST['name'];
$password = $_POST['pass'];
echo "Nastąpiło poprawne zalogowanie do systemu";
//save user password to session
$_SESSION['username'] = $userName;
$_SESSION['userpass'] = $password;
}
//problem starts here
else{
if($_POST['logout'] == true){
session_destroy();
echo "Nastąpiło poprawne wylogowanie z systemu";
}
else{
echo "Jesteś zalogowany jako: ".$_SESSION['username'];
echo "
<form method='post' action='./indexLogin.php'>
Do you want to log out?<br/>
<input type='hidden' name='logout' value='true'>
<input type='submit' value='Wyloguj'>
</form>
";
}
}
?>
當我使用此代碼時,我沒有收到錯誤消息,但它不起作用
//problem starts here
else{
if(!empty($_POST['pass'])){
//confirmation that log out was successful
//$_POST['logout'];
session_destroy();
echo "Nastąpiło poprawne wylogowanie z systemu";
}
else{
//form to log out
echo "Jesteś zalogowany jako: ".$_SESSION['username'];
echo "
<form method='post' action='./indexLogin.php'>
Czy chesz się wylogować?<br/>
<input type='hidden' name='logout' value='1'>
<input type='submit' value='Wyloguj'>
</form>
";
}
}
我所做的就是用get
替換post
方法。 而且我發現,即使該值在url中,它仍然不起作用! 我顯得那么它使用的最后一個,它從來沒有收到任何價值else
。
實際上您的代碼似乎可以正常工作,但是您應該使用
session_start();
在您的代碼之前。 然后,我可以提交登錄憑據並注銷。
干杯,
首先要檢查的是您實際上有PHP> = 4.1。 在較早的PHP中,$ _ GET和$ _POST不存在。
要檢查的第二件事實際上是$ _REQUEST的print_r內容(它是$ _GET和$ _POST以及$ _COOKIE的組合),並查看是否確實有一些數據寫入了腳本。
第三:我已經在主機上執行了您的腳本,最后進入了“ else if”分支。 顯然,腳本沒有問題,但是主機處理請求的方式有問題。 您在共享主機上嗎? 一些共享主機有意關閉了超級全局變量,然后您需要使用$ GLOBALS [“ _ POST”]代替$ _POST
當然使用session_start()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.