2017-03-23 4 views
0

Ich habe Probleme beim Erhalten einer Nicht-Null-Antwort von meiner readcookie-Funktion in Javascript. Im Idealfall würde ich eine boolesche Antwort erhalten, ob eine ID in meiner Datenbank existiert oder nicht, aber derzeit wird nur eine Null angezeigt. Ich habe mir die gespeicherten Cookies angesehen und der IDFound-Cookie wird überhaupt nicht gespeichert.Wie erhalte ich einen Cookie von PHP zu Javascript?

Javascript side:

function readCookie(name) { 
    $.get("/test/phpServerGet.php","function(result){}") 
    var nameEQ = name + "="; 
    var ca = document.cookie.split(';'); 
    for(var i=0;i < ca.length;i++) { 
     var c = ca[i]; 
     while (c.charAt(0)==' ') c = c.substring(1,c.length); 
     if (c.indexOf(nameEQ) == 0){ console.log("found") 
     return c.substring(nameEQ.length,c.length)}; 
    } 
    return null; 
} 

PHP:

<?php 
require_once 'path_to_db_connect.php'; 
$id_exists = false; 
$CollegeID = $_COOKIE["CollegeID"]; 
echo $CollegeID; 
$request = $connect->prepare("SELECT `CollegeID` FROM `users` WHERE `CollegeID` = ?;"); 
$request->execute(array($CollegeID)); 
$result = $request->fetch(PDO::FETCH_ASSOC); 
$cookie_name = "IDFound"; 
if ($result['CollegeID'] == $CollegeID) 
{ echo "YES"; 
     $id_exists = true; 
} 

else if ($result['CollegeID'] != $CollegeID) 
{ 
     $id_exists = false; 
} 
setcookie($cookie_name, $id_exists, 1000); 
?> 
+0

[Holen Sie einen Cookie mit Namen in JS] (http://stackoverflow.com/questions/10730362/get-cookie-by-name) Dies kann Ihnen helfen. – dsadnick

+0

@dsadnick Ich habe mal geschaut und der Cookie wird überhaupt nicht erstellt, die Lesefunktion funktioniert normal –

Antwort

0

PHP set cookie

setcookie($cookie_name, $id_exists, 1000); 

das Argument 3 auf 1000 gesetzt ist, versuchen zu ersetzen, daß mit

time() + 60 
setcookie($cookie_name, $id_exists, time() + 60); 

Das sollte dem Browser mehr Zeit geben, den Cookie zu finden und zu parsen. time() + 60 wird eine Minute sein.