2017-12-22 10 views
0

私はメインサーバーに設定する前にすべてをテストするサーバーを持っています。この問題は、setcookie()でクッキーを設定しているときに表示されます。クッキーはsetcookie()で設定されていません。

require '../init.php'; 
$user = $_POST['user']; 
$pass = $_POST['pass']; 
$newhash = createHash(); 

//LOGIN STUFF 
if(strtolower($user) == strtolower($userA['user'])) 
{ 
    if($pass == $userA['pass']) 
    { 
     $expiration = (time() + (24 * 60 * 60 * 365)); 
     setcookie('session', $newhash, $expiration, '/'); 
     $userAdd = MYSQL_::Bits("INSERT INTO users_sessions (hash,userid) VALUES ('$newhash','$userAID')"); 
     //LOGIN STUFF 
    } 
    else 
    { 
     $datos = array('response' => 'fail','reason' => 'pass'); 
    } 
} 
else 
{ 
    $datos = array('response' => 'fail','reason' => 'user'); 
} 
header('Content-Type: application/json'); 
echo json_encode($datos, JSON_FORCE_OBJECT); 

このコードは、ローカルホスト上で完璧に動作しますが、私は私のメインのホストにそれを置くとき、それはしていません:私はアヤックスとのセッションを設定するためにクッキーを使用してい

、コードはこれです。私はstackoverflowのすべてのこの関連記事を読んできましたが、誰も解決策を持っていません、それはクッキーの前に何もすることはできませんが、前に何もせずにクッキーを設定することは不可能だろうと言います。私は、PHPタグの前に
またはスペース。出力は、エコーのように、直接することができ
。誰かがあなたがどこかにinit.phpまたはinitを含む任意のファイルに出力を持っている

+0

これは問題を引き起こしているとは確信していませんが、 'session'以外の名前を試しましたか?これがセッションCookieと競合していると感じています。 – icecub

+0

'setCookie()'の前にはhtml出力がありません。なぜなら、クッキーはヘッダーの一部であり、ヘッダーはhtml出力の前に送信されなければならないからです。 –

+0

@KIKOSoftware - それはどうやってlocalhost上で彼のために働くのですか? –

答えて

1

:-(答えを持っていたいですか、私はPHPで作成されたエラー/通知さえも考えています。

あなたの出力がどこにあるのかを調べるには、あなたのコード内でsetcookieを動かすことができます。
動作が停止すると、出力を生成する行が見つかりました。

+1

本当にありがとうございます。文書の始めに '<?php'の前にスペースがあったので問題が起きました。 –

関連する問題