Cookie aanmaak fout
Ben bezig met een inlogsysteem te maken maar hij wilt geen cookies aanmaken
er moet in de map cod ingelogd wie kan me helpen want hij geef telkens aan:
"Cookies konnen niet aan gemaakt worden
Controleer of je browser cookies acepteert!"
Code (php)
1
2
3
4
5
6
2
3
4
5
6
//Staan nog dingen voor de controle enz!
$Lid = mysql_fetch_object(mysql_query("SELECT * FROM Leden WHERE Gebruikersnaam = '".$_POST["log"]."'"));
setcookie("codlid", $Lid->ID,$UnixTijd+9999,"/cod",".darknessdesign.nl/");
if(!$_COOKIE["codlid"]){
$Warn = "Cookies konnen niet aan gemaakt worden<br/>Controleer of je browser cookies acepteert!";
}
$Lid = mysql_fetch_object(mysql_query("SELECT * FROM Leden WHERE Gebruikersnaam = '".$_POST["log"]."'"));
setcookie("codlid", $Lid->ID,$UnixTijd+9999,"/cod",".darknessdesign.nl/");
if(!$_COOKIE["codlid"]){
$Warn = "Cookies konnen niet aan gemaakt worden<br/>Controleer of je browser cookies acepteert!";
}
mysql_fetch_assoc.
- Foutafhandeling ontbreekt.
- Selecteer wat je wilt hebbe, gebruik niet *.
- SQL injections mogelijk, gebruik mysql_real_escape_string.
- Let op dat er geen html of andere output boven de setcookie is geweest.
- Zie php.net: setcookie.
- Mysql_fetch_object is onzin, gebruik - Foutafhandeling ontbreekt.
- Selecteer wat je wilt hebbe, gebruik niet *.
- SQL injections mogelijk, gebruik mysql_real_escape_string.
- Let op dat er geen html of andere output boven de setcookie is geweest.
- Zie php.net: setcookie.
Once the cookies have been set, they can be accessed on the next page load with the $_COOKIE
"next page load" ?
Edit: fik, istie me weer voor :)
Edit2: spellingssuggestie deze keer, voor de foutmelding: het is "aangemaakt", niet "aan gemaakt".
Gewijzigd op 18/12/2010 19:31:03 door Bas Cost Budde
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
//Login
if($_POST["log"] && $_POST["pwd"]) {
$Lid = mysql_fetch_object(mysql_query("SELECT * FROM Leden WHERE Gebruikersnaam = '".$_POST["log"]."'"));
if(!$Lid) {
$Warn = "De Gebruikersnaam \"".$_POST["log"]."\" bestaat niet";
$Login = false;
}
elseif($Lid->Wachtwoord != md5($_POST["pwd"])){
$Warn = "wachtwoord is onjuist!";
$Login = false;
}
elseif($Lid->Status == Verbannen) {
$Warn = "Je bent verbannen!";
$Login = false;
}
else {
mysql_query("UPDATE Leden SET IP = '$REMOTE_ADDR' WHERE Gebruikersnaam = '".$_POST["log"]."'");
setcookie("codlid", $Lid->ID,$UnixTijd+9999,"/cod",".darknessdesign.nl/");
if(!$_COOKIE["codlid"]){
$Warn = "Cookies konnen niet aan gemaakt worden<br/>Controleer of je browser cookies acepteert!";
}
}
}
// Gegevens ophalen
$login = false; $InlogLid = "";
$_COOKIE["codlid"] = intval($_COOKIE["codlid"]);
if($_COOKIE["codlid"]) {
if($Lid = mysql_fetch_object(mysql_query("SELECT * FROM Leden WHERE ID = '".mysql_real_escape_string($_COOKIE["codlid"])."'"))) {
mysql_query("UPDATE Leden SET Inlogdatum = '$UnixTijd' WHERE ID = '$Lid->ID'");
$Inloglid = $Lid;
$login = true;
}
}
if($_POST["log"] && $_POST["pwd"]) {
$Lid = mysql_fetch_object(mysql_query("SELECT * FROM Leden WHERE Gebruikersnaam = '".$_POST["log"]."'"));
if(!$Lid) {
$Warn = "De Gebruikersnaam \"".$_POST["log"]."\" bestaat niet";
$Login = false;
}
elseif($Lid->Wachtwoord != md5($_POST["pwd"])){
$Warn = "wachtwoord is onjuist!";
$Login = false;
}
elseif($Lid->Status == Verbannen) {
$Warn = "Je bent verbannen!";
$Login = false;
}
else {
mysql_query("UPDATE Leden SET IP = '$REMOTE_ADDR' WHERE Gebruikersnaam = '".$_POST["log"]."'");
setcookie("codlid", $Lid->ID,$UnixTijd+9999,"/cod",".darknessdesign.nl/");
if(!$_COOKIE["codlid"]){
$Warn = "Cookies konnen niet aan gemaakt worden<br/>Controleer of je browser cookies acepteert!";
}
}
}
// Gegevens ophalen
$login = false; $InlogLid = "";
$_COOKIE["codlid"] = intval($_COOKIE["codlid"]);
if($_COOKIE["codlid"]) {
if($Lid = mysql_fetch_object(mysql_query("SELECT * FROM Leden WHERE ID = '".mysql_real_escape_string($_COOKIE["codlid"])."'"))) {
mysql_query("UPDATE Leden SET Inlogdatum = '$UnixTijd' WHERE ID = '$Lid->ID'");
$Inloglid = $Lid;
$login = true;
}
}
En op de login pagina controleert hij of $Login bestaat!
Gewijzigd op 18/12/2010 19:49:19 door ScrapZz nl
Jij roept setcookie() aan. Het handboek zegt: je kunt aan de functiewaarde zien of het gelukt is. Pas op de volgende pagina kun je het cookie vinden in $_COOKIE.
Jij kijkt meteen in $_COOKIE. Koektrommel leeg.
Bas Cost Budde op 18/12/2010 19:50:24:
Dan spel ik het even voor je:
Jij roept setcookie() aan. Het handboek zegt: je kunt aan de functiewaarde zien of het gelukt is. Pas op de volgende pagina kun je het cookie vinden in $_COOKIE.
Jij kijkt meteen in $_COOKIE. Koektrommel leeg.
Jij roept setcookie() aan. Het handboek zegt: je kunt aan de functiewaarde zien of het gelukt is. Pas op de volgende pagina kun je het cookie vinden in $_COOKIE.
Jij kijkt meteen in $_COOKIE. Koektrommel leeg.
Ja maar dit staat in de config die op elke pagina geladen word dus
als ik naar een andere pagina ga zal hij het ook moeten doen(?),
als ik ook tussen me cookies van me browser kijk staat hij er ook niet tussen
"ja maar"? Wat houdt je tegen om te kijken naar wat ik zeg? Regel 18-19.
setcookie("codlid", $Lid->ID,$UnixTijd+9999,"/cod",".darknessdesign.nl/");
Maar
setcookie("codlid", $Lid->ID,$UnixTijd+9999,"/cod",".darknessdesign.nl");
Dus zonder / aan het eind bij de vijfde parameter.
Zoals reeds gemeld: Een cookie werkt pas NA een refresh van de pagina en NOOIT direct na het setten.
offtopic: op Usenet, waar ik vroeger actief was, kon je over het algemeen heel makkelijk een charter, een handvest, etiquette-document vinden. Ik zie het niet op phphulp, iets voor in het bottom-menu (en eigenlijk groot, op de homepage)?
- SanThe - op 18/12/2010 20:00:21:
Niet
setcookie("codlid", $Lid->ID,$UnixTijd+9999,"/cod",".darknessdesign.nl/");
Maar
setcookie("codlid", $Lid->ID,$UnixTijd+9999,"/cod",".darknessdesign.nl");
Dus zonder / aan het eind bij de vijfde parameter.
Zoals reeds gemeld: Een cookie werkt pas NA een refresh van de pagina en NOOIT direct na het setten.
setcookie("codlid", $Lid->ID,$UnixTijd+9999,"/cod",".darknessdesign.nl/");
Maar
setcookie("codlid", $Lid->ID,$UnixTijd+9999,"/cod",".darknessdesign.nl");
Dus zonder / aan het eind bij de vijfde parameter.
Zoals reeds gemeld: Een cookie werkt pas NA een refresh van de pagina en NOOIT direct na het setten.
Dank je dat was hem!