有關sessiont_['logerr']的用法

edited 九月 2014 in PHP新手區
我看書本上寫的我還是不太清楚
課本說,用logerr變數判斷實用著是否輸入正確的帳號密碼,然後把logerr設定false
我看課本的範例 帳密認證的打法
<head>
<title>
</title>
</head>
<meta http-equiv="content-type" content="text/html" charset="utf-8">
<body>
<?php
SESSION_START();
$valid = array("name"=>"yhok123" , "pw"=>"da456");
if(isset($_POST['tbxName']) && isset($_POST['tbxpw'])) 
{
 if($_POST['tbxName'] == $valid['name'] && $_POST['tbxpw'] == $valid['pw'])
 {
 $_SESSION['name'] = $_POST['tbxName'];
	$_SESSION['setCounter'] = TRUE;
 $_SESSION['logErr'] = false; //著斷為和著樣打
 echo'succesed long'; 
 }
 else
 {
 $_SESSION['logErr']= true;
 echo'登入失敗';
 }
}
else
{
 if(!isset($_SESSION['logErr']))
 {
  $_SESSION['logErr'] = flase;
 }
 else
 {
 $_SESSION['logErr']= true;
 }
}
if(isset($_SESSION['logErr']))
{
 echo'輸入正確密碼';
$_SESSION['logErr'] = false;

 }
 else{
 echo'請輸入帳密';
 $_SESSION['logErr']=FALSE;
 }
?>
<form action=<?php echo$_SERVER['PHP_SELF']?> method="post">
<p>
帳號<input type="text" name="tbxName" value="yhok123"><br>
密碼<input type="password" name="tbxpw" value="da456">
</p>
<input type="submit" value="送出">
<input type="reset" value="重設">

</body>
著一段我不懂
if(isset($_POST['tbxName']) && isset($_POST['tbxpw']))
{
 if($_POST['tbxName'] == $valid['name'] && $_POST['tbxpw'] == $valid['pw'])
 {
 $_SESSION['name'] = $_POST['tbxName'];
	$_SESSION['setCounter'] = TRUE;
 $_SESSION['logErr'] = false;
 echo'succesed long'; 
 }
不是說false是當判斷帳密輸入錯誤回到原本的地方嗎?
那她著斷為什麼要用false不適用true ,

評論

  • 寫成是可以像語言翻譯,或是解數學題,也可以是排積木
    下面是玩中文翻譯板
    if(isset($_POST['tbxName']) && isset($_POST['tbxpw']))
    // 如果 有傳 tbxName 跟 tbxpw 而且都不是空白的話
    {
     if($_POST['tbxName'] == $valid['name'] && $_POST['tbxpw'] == $valid['pw'])
       //比較看看 傳過來的  tbxName 與 tbxpw 是不是跟 $valid設定是ㄧ樣的
     {
       //如果是
     $_SESSION['name'] = $_POST['tbxName'];
      //把session內的 name(登入者) 設定成 傳過來的user name
    	$_SESSION['setCounter'] = TRUE;
      //並把  setCounter 設定 true (看名字像是可以開始計算某個 counter ,可能是登入數) 
     $_SESSION['logErr'] = false;
    //logErr(顧名思義,登入錯誤)  ,把session 登入錯誤設定成 錯 
     echo'succesed long'; 
    // 上面做完了,印出  'succesed long ...(成功長...打錯字了吧)
     }
    
    就像看文章一樣去看,小funtion當散文,大系統當小說...
    當然,也可以當成數學題,是另一種美.把複雜的 變數名換成 x y z , 邏輯關係用 +-*/ , 重寫一遍會發現很像國中代數.
  • $_SESSION表示帳密是否為"錯誤",當你帳密為正確的時候錯誤訊息自然是false

    另外我想問一下你的語法是完全按照課本上面打的嗎?
    怎麼多出好多"\"
    這樣run的時候不會有問題嗎?
  • 感謝runli,回wiby是課本範例. 她沒解釋很清楚. 所以我才會想來著邊問謝謝你!
  • 會跑出著個原因是因為,著個網站加的
Sign In or Register to comment.