2012-09-15 97 views
0
<form action=userLogin.php method=post> 
    <div id="login"> 
     <div id="submit" class="h">Log In</div> 
     &nbsp;Email 
     <br> 
     &nbsp;<input id="email" name="email" type="email" required> 
     <br> 
     &nbsp;Password 
     <br> 
     &nbsp;<input name="pass" type="password" required=required><br> 
     &nbsp;<a href="recover.php">Forgot your password</a><br> 

     <div id="submit"> 
      <input type="checkbox">&nbsp;Remember&nbsp;&nbsp; 
      <div id="h"> 
       <input type="submit" value="Log in"></div> 
     </div> 
    </div> 
<?php 
if (empty($_POST['pass']) == false) { 
    $uname = $_POST['email']; 

    $pass = $_POST['pass']; 

    include("config.php"); 
    $query = $mysqli->query("SELECT * FROM user WHERE email='$uname' AND password='$pass'"); 
    $numrows = mysqli_num_rows($query); 
    while ($row = mysqli_fetch_array($query)) { 

     if ($numrows == 0) { 
      ?> 
      <script> 
       $(document).ready(function() { 
        $("#alert").fadeIn(); 
       });</script> 
     <?php 
     } 
     else { 
      $id = $row[id]; 
      setcookie('userId', $id); 


     } 
    } 
} 
?> 

這是我的代碼,獲取用戶數據,並檢查用戶是否存在,並在用戶的瀏覽器設置cookie的。 當我檢查cookie設置時,我只能看到phpMyAdmin cookie不是我的userId cookie.You可以看到屏幕截圖enter image description here,並且瀏覽器已被刪除並自動關閉 但是,當我編輯setcookie函數setcookie('userId','$id');時,cookie已設置,但它的值爲%24id [$ id]。那麼我怎樣才能設置cookie的變量$ row [id]的值是與我的電腦或服務器或我的代碼錯誤? 當我用$ id沒有qoutes鉻時出現錯誤This webpage is not available The webpage at localhost/mysite/mysite/userLogin.php might be temporarily down or it may have moved permanently to a new web addressPHP餅乾錯誤

+0

'的setcookie( '用戶id',$ ID)'會工作。你不需要引用'$ id'。 (當然,只要'$ id'不是空的。) – DCoder

+0

但chrome顯示的其他方式此網頁不可用 http://localhost/mysite/mysite/userLogin.php網頁可能暫時關閉或它可能已永久移動到新的Web地址。 – gokul

+0

@DCoder:他實際上使用'mysqli',但是你的代碼仍然容易受到SQL注入的攻擊!閱讀有關預準備報表。 –

回答

1

Cookie必須與標題一起發送。

「setcookie()定義了一個cookie,與其他HTTP頭一起發送。和其他頭一樣,Cookie必須在腳本輸出之前發送(這是一個協議限制)。在任何輸出之前調用此函數,包括標記以及任何空格。「

http://php.net/manual/en/function.setcookie.php

+0

感謝您的回答 – gokul