Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Web Development
You last visited: Today at 08:40

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Cookies und php.ini

Discussion on Cookies und php.ini within the Web Development forum part of the Coders Den category.

Reply
 
Old   #1
 
Phillor's Avatar
 
elite*gold: 1
Join Date: Sep 2009
Posts: 462
Received Thanks: 125
Cookies und php.ini

Hallo Leute!
Ich wollte heute zu meinem Login Script mal eine Autologin Funktion hinzufügen. Habe das Ganze erstmal versucht bei mir lokal einzurichten doch es werden einfach keine Cookies gesetzt.

hier der Befehl, mit dem ich versuche den Cookie zu setzen:

PHP Code:
setcookie("Autologin"$Login_IDtime()+60*60*24*365*10); 
und es lässt sich weder mit echo $_COOKIE['Auotlogin']; ausgeben noch mit dem Cookie Editor Plugin von Google Chrome anzeigen, während der Session Cookie, der automatisch von den Sessions generiert wird da ist!

Muss ich dafür in der php.ini in XAMPP irgendwass freischalten?

Gruß,
Phillor
Phillor is offline  
Old 07/23/2012, 17:16   #2
 
PseudoPsycho's Avatar
 
elite*gold: 1715
Join Date: Dec 2011
Posts: 672
Received Thanks: 207
Nee, müsste standardmäßig bereits möglich sein.
Versuch' doch mal via
PHP Code:
var_dump($Login_ID); 
zu prüfen, ob die Variable auch wirklich einen Wert hat, sofern du das noch nicht getan hast. Ansonsten musst du natürlich beachten, dass der Wert nicht sofort in $_COOKIE gespeichert ist, sondern erst beim nächsten Aufrufen der Seite...
PseudoPsycho is offline  
Old 07/23/2012, 18:01   #3
 
Phillor's Avatar
 
elite*gold: 1
Join Date: Sep 2009
Posts: 462
Received Thanks: 125
Die Variable wurde eine Zeile drüber definiert ^^
Aber auch wenn ich die Seite nochmal neu lade und mit dem Cookie Editor nachschaue wurde keiner gespeichert...
komisch

/edit
Ich habs rausgefunden.
Danke trotzdem
Kann geschlossen werden
Phillor is offline  
Old 07/23/2012, 18:45   #4
 
PseudoPsycho's Avatar
 
elite*gold: 1715
Join Date: Dec 2011
Posts: 672
Received Thanks: 207
Woran lag's denn?
PseudoPsycho is offline  
Old 07/23/2012, 19:38   #5
 
Phillor's Avatar
 
elite*gold: 1
Join Date: Sep 2009
Posts: 462
Received Thanks: 125
naja also ich habe mal NUR den setcookie Code genommen und ihn in ne eigene Datei gepackt. Da hat's funktioniert.

Jetzt habe ich das wieder in mein Login Script integriert und jetzt funktionierts wieder nicht D:
das finde ich komisch...

Und die if Abfrage, die vorher überprüft, ob die Autologin Checkbox checked ist funktioniert auch.
Ich weiß einfach nicht was das Problem ist :/

Moment ich poste mal den Code:

Das hier ist in meinem Login Script:
Quote:
if ($autologin == "0"){
$part_one = substr(time()-rand(100, 100000),5,10);
$part_two = substr(time()-rand(100, 100000),-5);
$Login_ID = md5($part_one.$part_two);

setcookie("Autologin", $Login_ID, time()+60*60*24*365*10);
$sql = "UPDATE user SET Autologin = '".$Login_ID."' WHERE ID = '".$ID."'";
mysql_query($sql);

}
Und das in der externen Datei ist halt nur ohne if Abfrage...
Phillor is offline  
Old 07/23/2012, 22:23   #6
 
PseudoPsycho's Avatar
 
elite*gold: 1715
Join Date: Dec 2011
Posts: 672
Received Thanks: 207
Quote:
Originally Posted by kissein View Post
genau deshalb ist php eine _schlampensprache_
Was hat'n das allgemein mit PHP zu tun? Ist meiner Meinung nach eine sehr schöne Sprache.

Wie kommt'n der Wert für $autologin zustande?
Gib' mal vor der Abfrage die Variable (über var_dump) aus und pack' mal direkt in die Abfrage echo 'Bedingung stimmt'; .
Bei letzterem dürfte wohl nichts ausgegeben werden.
PseudoPsycho is offline  
Old 07/23/2012, 22:27   #7
 
kissein's Avatar
 
elite*gold: 0
Join Date: Sep 2005
Posts: 427
Received Thanks: 87
weil die type-sicherheit in php fehlt :/

er kann int auf string überprüfen
kissein is offline  
Old 07/23/2012, 22:31   #8
 
Phillor's Avatar
 
elite*gold: 1
Join Date: Sep 2009
Posts: 462
Received Thanks: 125
vor welcher Schleife denn? O.o

Der Wert für den Cookie Autologin ist eine Login ID, die zufällig generiert wird, diese wird halt in der DB eingetragen und wenn dann jemand die Seite betritt und die Login ID im Cookie == Login ID in der DB ist, dann wird er automatisch eingeloggt, ansonsten muss er sich halt ganz normal einloggen.
Phillor is offline  
Old 07/24/2012, 12:08   #9
 
kissein's Avatar
 
elite*gold: 0
Join Date: Sep 2005
Posts: 427
Received Thanks: 87
Quote:
Originally Posted by Phillor View Post
vor welcher Schleife denn? O.o

Der Wert für den Cookie Autologin ist eine Login ID,
die zufällig generiert wird, diese wird halt in der DB eingetragen
und wenn dann jemand die Seite betritt und die Login ID im Cookie == Login ID
in der DB ist, dann wird er automatisch eingeloggt, ansonsten muss er sich halt ganz normal einloggen.

ich würds sorum mal probieren...

PHP Code:

if(isset($_COOKIE['Autologin']) && !empty($_COOKIE['Autologin']))
{
    
//mysql Abfrage auf Cookiewerte
    
$res mysql....
    if(
$res){
        
//Sessionwerte setzen, 
        //weiterleitung
    
}
    else
    {
        
$part_one substr(time()-rand(100100000),5,10); 
        
$part_two substr(time()-rand(100100000),-5); 
        
$Login_ID md5($part_one.$part_two); 

        
setcookie("Autologin"$Login_IDtime()+60*60*24*365*10);
        
$sql "UPDATE user SET Autologin = '".$Login_ID."' WHERE ID = '".$ID."'"
        
mysql_query($sql);
    }

kissein is offline  
Old 07/24/2012, 13:24   #10
 
Phillor's Avatar
 
elite*gold: 1
Join Date: Sep 2009
Posts: 462
Received Thanks: 125
Mein Problem ist ja, dass der Code im Zusammenhang mit meinem normalen Login Script nicht funktioniert.

PHP Code:
if ($autologin == "0"){
$part_one substr(time()-rand(100100000),5,10); 
$part_two substr(time()-rand(100100000),-5); 
$Login_ID md5($part_one.$part_two); 

setcookie("Autologin"$Login_IDtime()+60*60*24*365*10);
$sql "UPDATE user SET Autologin = '".$Login_ID."' WHERE ID = '".$ID."'"
mysql_query($sql);


Habe auch versucht einfach diese If Abfrage oben auszukommentieren und den Code innerhalb der If Abfrage nur zu includen, aber es funktioniert einfach nicht....

ich schicke euch mal mein gesamtes Login Scipt.

PHP Code:
if($row['Passwort'] == $passwort){
                            
     if (
$autologin == "1"){
                            
     
$part_one substr(time()-rand(100100000),5,10); 
     
$part_two substr(time()-rand(100100000),-5); 
     
$Login_ID md5($part_one.$part_two); 

     
setcookie("Autologin"$Login_IDtime()+60*60*24*365*10);
     
$sql "UPDATE user SET Autologin = '".$Login_ID."' WHERE ID = '".$ID."'"
     
mysql_query($sql);
                            
     } 

     
mres(mysql_query("UPDATE user SET IP = '$ip' WHERE Nickname = '$username';"));
                            
     
mres(mysql_query("UPDATE user SET LastAction = '$timestamp' WHERE Nickname = '$username';"));
                            
     
$_SESSION['username'] = $row['Nickname'];
     
$_SESSION['id'] = $row['ID'];
     
$_SESSION['timeout'] = time();
     echo 
"<span id='green'><table><tr><td><img src='img/content/success.png' alt='' /></td><td>Anmeldung erfolgreich!</td></tr></table></span><br />";
                            
}
else
{
     echo 
"<span id='red'><table><tr><td><img src='img/content/fail.png' alt='' /></td><td>Dein Benutzername oder dein Passwort ist falsch.</td></tr></table></span><br />";

Phillor is offline  
Old 07/24/2012, 14:07   #11
 
kissein's Avatar
 
elite*gold: 0
Join Date: Sep 2005
Posts: 427
Received Thanks: 87
Quote:
Originally Posted by Phillor View Post
Mein Problem ist ja, dass der Code im Zusammenhang mit meinem normalen Login Script nicht funktioniert.
Überprüfe doch einfach alle Variablenwerte mit den Erwartungswerten, und schalt dein error_reporting an sowie ein paar print_r/var_dump/var_export/echo an den wichtigen bedingungen setzen.


Code:
if($row['Passwort'] == $passwort){
                            
     if ($autologin == "1"){
$passwort eventuell $_POST['passwort '] ?
$row['Passwort'] existiert mit wert ?
$autologin existiert mit wert ?

Debuggen macht kein Spass aber man lernt sauber zu arbeiten

//Edit:

Gerade noch gesehen
if ($autologin == "1"){ ...setcookie }
if ($autologin == "0"){ ...setcookie }

Beide Abfragen mit unterschiedlichen Werten sollen die gleiche Funktion erfüllen ? Sinn?
kissein is offline  
Old 07/24/2012, 14:28   #12
 
Phillor's Avatar
 
elite*gold: 1
Join Date: Sep 2009
Posts: 462
Received Thanks: 125
-.- Ich hatte mein Error Reporting ausgeschaltet...

habs jetzt angeschaltet und es kommt beim einloggen, mit Autologin folgender Fehler:

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\Liga\index.php:36) in C:\xampp\htdocs\Liga\sites\login.php on line 144

Ich verstehe das nicht... in der Index.php in der Zeile 36 steht folgendes:

PHP Code:
<?php
gefolgt von dem:
PHP Code:
                    if (isset($_SESSION['username'])){
                    echo 
"
                    <div id='logout'><a href='?s=logout'>Ausloggen</a></div>
                    <div id='welcome'>Willkommen "
.$_SESSION['username']."</div>
                    <a href='?p=profile_edit'>Profil bearbeiten</a>"
;
                    
                    
                    if (
$auth == "N" or $auth == "R"){
                    
                        
                    
                    
                    }
                    
                    if (
$auth == "A"){
                        echo 
"<br /><a href='acp/index.php'>Administrationsbereich</a>";
                    }
                    
                    
                    } else {
                    echo 
"
                    <div id='formular'>
                    <form name='login' method='post' action='?s=login'>
                    <span class='tipp'>Nickname:</span><br />
                    <input type='text' size='10' name='nickname' maxlength='25' /><br />
                    <span class='tipp'>Passwort:</span><br />
                    <input type='password' size='10' name='pw' maxlength='32'/><br />
                    <input type='checkbox' name='autologin' value='1' id='auto' /><label for='auto'><spand class='small'>Autologin?</span></label><br />
                    <input type='submit' name='login' value='Einloggen' />
                    
                    </form>
                    </div>
                    <div id='tipp'>
                    Du hast noch keinen Account? <a href='?s=register'>Registriere</a> dich jetzt! Vollkommen kostenlos und unverbindlich!
                    </div>
                    "
;
                    
                    
                    
                    
                    
                    }
                
?> 
Quote:
Gerade noch gesehen
if ($autologin == "1"){ ...setcookie }
if ($autologin == "0"){ ...setcookie }
Ja ^^ das habe ich zum testen gemacht. Natürlich muss beides $autologin == "1" sein
Phillor is offline  
Old 07/24/2012, 15:09   #13
 
kissein's Avatar
 
elite*gold: 0
Join Date: Sep 2005
Posts: 427
Received Thanks: 87


Quote:
Beachten Sie, dass Sie die Funktion header() aufrufen müssen, bevor Sie irgendeine andere Art von Ausgabe (seien es normale HTML-Tags, Leerzeilen in einer Datei oder von PHP) zum Client schicken. Es handelt sich hier um einen typischen Fehler, der zum Beispiel auftritt, wenn Sie Code mittels include oder require oder einer anderen Dateizugriffs-Funktion einlesen, die Leerzeichen oder Leerzeilen enthalten, die ausgegeben werden, bevor header() aufgerufen wird. Das gleiche Problem kann auch auftreten, wenn Sie eine Datei verwenden, in der HTML und PHP vermischt wurden.
kissein is offline  
Old 07/24/2012, 15:56   #14
 
Phillor's Avatar
 
elite*gold: 1
Join Date: Sep 2009
Posts: 462
Received Thanks: 125
Ja ok aber in der index.php habe ich die funktion header doch gar nicht benutzt...
Phillor is offline  
Old 07/24/2012, 16:06   #15
 
kissein's Avatar
 
elite*gold: 0
Join Date: Sep 2005
Posts: 427
Received Thanks: 87
Quote:
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\Liga\index.php:36) in C:\xampp\htdocs\Liga\sites\login.php on line 144
ganze fehlermeldung lesen...

- output started at C:\xampp\htdocs\Liga\index.php:36, heisst hier werden bereits die ersten daten gesendet bevor header in

- C:\xampp\htdocs\Liga\sites\login.php on line 144 aufgerufen wird

Quote:
Es handelt sich hier um einen typischen Fehler, der zum Beispiel auftritt, wenn Sie Code mittels include oder require oder einer anderen Dateizugriffs-Funktion einlesen, die Leerzeichen oder Leerzeilen enthalten, die ausgegeben werden, bevor header() aufgerufen wird.
Nochmal zum Verständnis...

Ziel ist ein Autologinscript welches bei erfolg automatisch verbindet.
Ich gehe davon aus das html bereits gesendet wurde bevor die cookie login funktion in login.php aufgerufen wurde, welche mit header() weiterleiten soll.

Schlussfolgerung....
cookielogin funktion muss vor der ausgabe der webseite stattfinden wenn via header gearbeitet werden soll....
kissein is offline  
Reply


Similar Threads Similar Threads
cookies
06/28/2012 - DarkOrbit - 1 Replies
will blocking cookies really help to not being tracked ? i blocked the cookies from DO but it wont log me in :confused:
TCP Cookies
04/04/2012 - AutoIt - 8 Replies
Hi, ich wollte mal fragen wie das aussieht bei TCp mit den Cookies. In den ganzen TuT's wird darübern cihts gesagt. Nun da ich ich zum Login in ein Browsergame Cookies benötige, wollte ich fragen ob die immer gleich sind? Wenn ich jetzt mein Bot mit den Cookies im Postpacket jemanden schicke, damit er ihn auch benutzten kann, würde der Bot dann funktionieren? Oder braucht er andere Cookies? MfG Ludder231
COOKIES OMG LOL..
07/23/2010 - Off Topic - 3 Replies
THANK THIS POST IF YOU LIKE COOKIES!!!!!!!!!!!!!!!!!!!!!! Disclaimer. p.s This post is not spam related, All "thanks" will be recorded into a database were it will be tallyed up to say if people actually like cookies or not thank you for your time noobs :) .
All*CoOKies
04/10/2010 - CrossFire - 2 Replies
Wir All*CoOKies suchen Clan-Member ;-) geht auf die Seite: Z8Games ? Home of the Best Free MMO Games - Clans - Clan Home wir freuen uns auf jeden Neuen :) Kontakt per Skype:



All times are GMT +1. The time now is 08:41.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.