2012-03-30 18 views
0

ユーザーがサインインしてパスワードが確認されたら、彼のユーザー名をクッキーに保存する必要があります。 if ($password_match == $user_login_password) {...のようなセクションでパスワードが正常に確認された場合は、単にsetcookie()を追加しようとしましたが、何らかの理由で正常に動作していないようです。ユーザーが正しいパスワード/ユーザー名で正常にログインすると、Cookieを設定できません。関数の中からsetcookiesを設定できない何らかの理由がありますか?PHP setcookieの問題

public function write($p) { 

    if ($_POST['user_login_username']) 
     $user_login_username = mysql_real_escape_string($_POST['user_login_username']); 

    if ($_POST['user_login_password']) 
     $password = mysql_real_escape_string($_POST['user_login_password']); 
     $password .= 'some_Salt'; 
     $user_login_password = hash('sha256', $password); 
    } elseif ($user_login_username && $user_login_password) { 
     $q = "SELECT * FROM users WHERE username = '$user_login_username'"; 
     $r = mysql_query($q); 

     if ($r !== false && mysql_num_rows($r) > 0) { 
      while ($a = mysql_fetch_assoc($r)) { 
      $password_match = stripslashes($a['password']); 
      } 

      if ($password_match == $user_login_password) { 

       echo $this ->display_login('Correct!'); 

       setcookie('user','some_username'); 

      } else { 
       echo $this ->display_login('Wrong Password!'); 
      } 

     } else { 
      echo $this ->display_login('That username does not exist.'); 
     } 



     return; 

    } else { 
     return false; 
    } 
    } 
+0

正確には機能していないと判断していますか? – deceze

+0

クッキーのパスを '/'に設定してみてください。 – animuson

+1

それは非常に危険に見えます。ユーザーが管理者のユーザー名を知っている場合はどうなりますか?ユーザーは単にクッキーを変更し、彼は管理者としてログインしています。 – kijin

答えて

0

ああ私はそれを得た。 setcookieによるプロトコル制限、私はタグの後にそれを設定しようとしていました。見た人のおかげで、私はドキュメントをよく読んでいたはずです。ごめんなさい!

+0

あなたの回答をコメントに投稿してください。潜在的な回答ではありません。 –

+0

申し訳ありません - 問題の解決策は、元のポスターが出てくるときに回答として投稿する必要があります。そのため、将来のユーザーは解決策を簡単に確認できるようになります。 – Thomas

+0

私はそのルールを知らなかった –

1

私はこれをそのよう行いたい:

function mysetcookie($name, $value, $timestamp=null, $directory='/') { 
    return setcookie($name, $value, time()+$timestamp, $directory); 
} 

をそして私はmysetcookie()代わりのsetcookie()を使用していると思います:)そして、私はこれ読んでみたい:

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