Portal > Foren > PHP > PHP-Programmierung > Auch ein problem mit Cookie
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 24.02.2006, 15:30 Nach oben    #1
Jan
Erfahrener Benutzer
 
Benutzerbild von Jan
 
Registriert seit: 08.01.2006
Ort: Mannheim
Beiträge: 491
Standard Auch ein problem mit Cookie

Hallo,

ich möchte eine Array in ein Cookie speichern.
Hier mein Code.
Leider klappt es nicht so ganz.
Ich bekomme von der info.php nichts angezeigt.
meine login.php an die die infos gesendet werden
PHP-Code:
<?
if(isset($_POST['login']))

    $username = $_POST['username'];
    setcookie('info', serialize($username), time()+3600);};
    echo $_POST;
    echo '<br>';
    echo $username;
    echo '<br>';
    print_r($username);
    echo '<br>';
    print_r($info);
    echo '<br>';
    print_r($_POST);
    echo '<br>';
?>
<a href="info.php">Weiter</a>
und die Ausgabe dazu im Browser
Zitat:
Array
Malte
Malte
Array ( [username] => Malte [password] => [login] => Einloggen )
Weiter
und meine info.php
PHP-Code:
<?
if(!empty($_COOKIE['info']))
{
    $username = unserialize($_COOKIE['info']);
}
else
{
    $username = 'Gast';
}
echo "<pre>". $username ."</pre>";
echo $_COOKIE;
print_r($info);
?>
Allerdings bekomme ich hier überhaupt keine Ausgabe.
__________________
Jan
info.malte-gerth.de
=================================
Nutzt bitte lieber Jabber statt ICQ:
malte.gerth@jabber.cz

Geändert von Corvin (24.02.2006 um 15:31 Uhr) Grund: PHP-Tags gesetzt
Jan ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.02.2006, 15:43 Nach oben    #2
me pro ok?
 
Benutzerbild von Lars
 
Registriert seit: 07.09.2005
Ort: Pulheim bei Köln
Beiträge: 965
Standard

Mach anstatt der ganzen Ausgaben ein var_dump($_COOKIE).
Lars ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.02.2006, 15:57 Nach oben    #3
Jan
Erfahrener Benutzer
 
Benutzerbild von Jan
 
Registriert seit: 08.01.2006
Ort: Mannheim
Beiträge: 491
Standard

ich brauche am ende jedoch das array wieder. wie kann ich aus dem Cookie ein Array machen?
__________________
Jan
info.malte-gerth.de
=================================
Nutzt bitte lieber Jabber statt ICQ:
malte.gerth@jabber.cz
Jan ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.02.2006, 16:06 Nach oben    #4
me pro ok?
 
Benutzerbild von Lars
 
Registriert seit: 07.09.2005
Ort: Pulheim bei Köln
Beiträge: 965
Standard

http://php.net/unserialize

Mach erstmal das var_dump($_COOKIE), dann siehst du, ob der Client überhaupt einen Cookie mitsendet.
Lars ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.02.2006, 16:10 Nach oben    #5
Jan
Erfahrener Benutzer
 
Benutzerbild von Jan
 
Registriert seit: 08.01.2006
Ort: Mannheim
Beiträge: 491
Standard

Hab ich:
Zitat:
Arrayarray(2) { ["info"]=> string(14) "s:5:\"Malte\";" ["phpbb2mysql_data"]=> string(56) "a:2:{s:11:\"autologinid\";s:0:\"\";s:6:\"userid\" ;i:-1;}" }
das ist die Ausgabe der info.php mit var_dump($_COOKIE).

Wie kann ich nun mein Arry wieder haben?
__________________
Jan
info.malte-gerth.de
=================================
Nutzt bitte lieber Jabber statt ICQ:
malte.gerth@jabber.cz
Jan ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.02.2006, 16:11 Nach oben    #6
me pro ok?
 
Benutzerbild von Lars
 
Registriert seit: 07.09.2005
Ort: Pulheim bei Köln
Beiträge: 965
Standard

PHP-Code:
$array unserialize($_COOKIE['info']);

var_dump($array); 
Lars ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.02.2006, 16:35 Nach oben    #7
Jan
Erfahrener Benutzer
 
Benutzerbild von Jan
 
Registriert seit: 08.01.2006
Ort: Mannheim
Beiträge: 491
Standard

Zitat:
bool(false)
das ist alles was ich dann bekomme wenn ich es das in die info.php schreib

Wie bekomm ich aus dem Cookie ein Array?
__________________
Jan
info.malte-gerth.de
=================================
Nutzt bitte lieber Jabber statt ICQ:
malte.gerth@jabber.cz
Jan ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.02.2006, 16:55 Nach oben    #8
me pro ok?
 
Benutzerbild von Lars
 
Registriert seit: 07.09.2005
Ort: Pulheim bei Köln
Beiträge: 965
Standard

PHP-Code:
$array unserialize($_COOKIE['info']);

var_dump($array); 
Lars ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.02.2006, 17:02 Nach oben    #9
Johannes Schlichenmaier
 
Benutzerbild von Jojo
 
Registriert seit: 26.08.2005
Ort: Mannheim
Beiträge: 413
Standard

Zitat:
Zitat von jan88
wie kann ich aus dem Cookie ein Array machen?
Zitat:
Zitat von Lars
http://php.net/unserialize
Zitat:
Zitat von jan88
Wie kann ich nun mein Arry wieder haben?
Zitat:
Zitat von Lars
PHP-Code:
$array unserialize($_COOKIE['info']);

var_dump($array); 
Zitat:
Zitat von jan88
Wie bekomm ich aus dem Cookie ein Array?
Sag ma, is das ne Verarsche?

Hm.... kleiner Denkfehler.
PHP-Code:
$array unserialize(stripslashes($_COOKIE['info']));

var_dump($array); 
Bin ich ma per Zufall drauf gekommen.

Wieso serialisierst du eigentlich eine String?
$username ist doch gar kein Array.
__________________
In the beginning was the word
and the word was content-type: plain/text

heute code ich, morgen debug ich und uebermorgen cast ich die koenigin auf int
Jojo ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.02.2006, 17:34 Nach oben    #10
Jan
Erfahrener Benutzer
 
Benutzerbild von Jan
 
Registriert seit: 08.01.2006
Ort: Mannheim
Beiträge: 491
Standard

Zitat:
Zitat von Jojo
Sag ma, is das ne Verarsche?
Nee nen absoluter PHP-Neuling
Zitat:
Zitat von Jojo
Hm.... kleiner Denkfehler.
PHP-Code:
$array unserialize(stripslashes($_COOKIE['info']));

var_dump($array); 
Bin ich ma per Zufall drauf gekommen.
Also den Coder in der info.php benutzen?
Zitat:
Zitat von Jojo
Wieso serialisierst du eigentlich eine String?
$username ist doch gar kein Array.
War nur nen dumm gewähltest beispiel für eine Info die in ein Cookie sollte. in meinem Fall brauch ich Arrays und Strings im Cookie. Wie sollte ich am besten bei einem String vorgehen?

Gruß
Jan
__________________
Jan
info.malte-gerth.de
=================================
Nutzt bitte lieber Jabber statt ICQ:
malte.gerth@jabber.cz
Jan ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.02.2006, 17:35 Nach oben    #11
me pro ok?
 
Benutzerbild von Lars
 
Registriert seit: 07.09.2005
Ort: Pulheim bei Köln
Beiträge: 965
Standard

PHP-Code:
$string 'hallo welt';

set_cookie('info'$string); 
Lars ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.02.2006, 17:45 Nach oben    #12
Corvin Gröning
 
Benutzerbild von Corvin
 
Registriert seit: 19.03.2005
Ort: S-H | Flensburg
Beiträge: 460
Standard

Zitat:
Zitat von jan88
Nee nen absoluter PHP-Neuling
Als PHP-Neuling solltest du aber trotzdem lesen können.
__________________
Corvin ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.02.2006, 18:29 Nach oben    #13
Jan
Erfahrener Benutzer
 
Benutzerbild von Jan
 
Registriert seit: 08.01.2006
Ort: Mannheim
Beiträge: 491
Standard

Zitat:
Zitat von Corvin Gröning
Als PHP-Neuling solltest du aber trotzdem lesen können.
hab ich gestern in der Schule gelernt

Okay,
den String bekomm ich in das(?)den(?) Cookie.
PHP-Code:
if(isset($_POST['login']))
$username $_POST['username'];
setcookie('info'serialize($username), time()+3600);}; 
Auch wenn ich schon 10(?)100(?) mal gefragt hab:
Wie bekomm ich nen Array in das(?)den(?) Cookie?
Und wie bekomme ich das Array dann wieder raus und in ein Array umgewandelt. Der Code vorhin hat nicht ganz geklappt.
__________________
Jan
info.malte-gerth.de
=================================
Nutzt bitte lieber Jabber statt ICQ:
malte.gerth@jabber.cz
Jan ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.02.2006, 18:46 Nach oben    #14
me pro ok?
 
Benutzerbild von Lars
 
Registriert seit: 07.09.2005
Ort: Pulheim bei Köln
Beiträge: 965
Standard

1) Nach einem Block ("{...}") kommt kein Semikolon.
2) Auch wenn ichs dir schon die ganze Zeit vorkaue, hier gerne nochmals.
PHP-Code:
$array = array('denk''mal''selbst''nach');
setcookie('bla'serialize($array)); 
3) Damit du im nächsten Posting nicht nochmal fragst, wie du das Array dann zurück bekommst, hier präventiv die entsprechende Lesemöglichkeit.
PHP-Code:
$array unserialize($_COOKIE['bla']);
var_dump($array); 
Lars ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.02.2006, 19:00 Nach oben    #15
Jan
Erfahrener Benutzer
 
Benutzerbild von Jan
 
Registriert seit: 08.01.2006
Ort: Mannheim
Beiträge: 491
Standard

*von hinterm sofa hervor flüster*
geht nicht
Zitat:
Notice: unserialize( Error at offset 5 of 74 bytes in /srv/www/htdocs/test/info.php on line 3
bool(false)
*ganz schnell wieder versteckt*
Angehängte Dateien
Dateityp: txt cookie.txt (297 Bytes, 1x aufgerufen)
Dateityp: txt info.txt (116 Bytes, 1x aufgerufen)
Dateityp: txt login.txt (358 Bytes, 1x aufgerufen)
__________________
Jan
info.malte-gerth.de
=================================
Nutzt bitte lieber Jabber statt ICQ:
malte.gerth@jabber.cz
Jan ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.02.2006, 19:01 Nach oben    #16
Johannes Schlichenmaier
 
Benutzerbild von Jojo
 
Registriert seit: 26.08.2005
Ort: Mannheim
Beiträge: 413
Standard

Anscheinend verstehst du noch immer nicht die grundlosigkeit deinen serialize().

In PHP gibt es im Grunde 2 Arten von Daten:
Serielle Datentypen: Das sind Daten, die einfach von vorne bis zum Schluss ausgelesen werden, ohne das sie eine Struktur enthalten. Dazu gehören Strings oder auch Zahlen.
Dann gibt es noch "strukturierte" (Ich überleg grade, dass man sie auch parallel nennen könnte) Datentypen: Also Daten, die eine Struktur enthalten, wie Objekte oder Arrays.

Ein Cookie kann nur einen String als Inhalt speichern (ob darin nun eine Zahl oder ein Text steht, ist egal).
D.h. Wenn du als Information einen String hast, dann kannst du den - wie Lars schon erwähnte - so als Cookie speichern:
PHP-Code:
$string 'hallo welt';

set_cookie('string'$string); 
Das reicht.
Und auslesen kannst du sie einfach über
PHP-Code:
$string $_COOKIE['string']; 
Bei strukturierten Daten ergibt sich allerdings ein Problem, denn die Strukturinformation muss zuerst in einen String gepackt und beim Einlesen auch wieder rekostruiert werden.
Das erreicht man mittels serialize(), bzw. mit dem Gegenstück unserialize().
Erstere verwebt die Strukturinformationen eines Objektes/Arrays mit dem Inhalt und zweitere stellt die Struktur wieder her.

PHP-Code:
$array = array("Das""Ist""ein""Array");

setcookie('array'serialize($array)); 
Das Setzen ist klar, denke ich.
Aus einem Grund, den ich dir nicht zu Genüge erklären kann, recht es beim Auslesen allerdings nicht einfach, den Inhalt durch unserialize zu jagen, sondern man muss zuerst stripslashes() drüber jagen. Zumindest habe ich diese Erfahrung gemacht.
Also wird ein serialisiertes Objekt/Whatever, das in einem Cookie gespeichert war so ausgelesen:
PHP-Code:
$array unserialize(stripslashes($_COOKIE['array'])); 

So ich denke das wohl nicht alle von mir benutzen Begriffe ganz korrekt waren, aber ich denke ebenfalls, dass dadurch manche Sachen klar werden.


Grüße,
Jojo
__________________
In the beginning was the word
and the word was content-type: plain/text

heute code ich, morgen debug ich und uebermorgen cast ich die koenigin auf int
Jojo ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.02.2006, 19:02 Nach oben    #17
me pro ok?
 
Benutzerbild von Lars
 
Registriert seit: 07.09.2005
Ort: Pulheim bei Köln
Beiträge: 965
Standard

http://forum.developers-guide.net/sh...3043#post23043
Lars ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.02.2006, 19:33 Nach oben    #18
Jan
Erfahrener Benutzer
 
Benutzerbild von Jan
 
Registriert seit: 08.01.2006
Ort: Mannheim
Beiträge: 491
Standard

DANKE
ich hab es geschafft UND VERSTANDEN


Ich glaube das "
var_dump($array);" mich ein bisschen irritiert hat. Da waren die Infos nicht so wie gewohnt.

Ich danke hiermit allen für ihre Geduld(hier war viel nötig) und eure Ausdauer im erklären.

Also ein ganz großes
DANKESCHÖN *bussy*
__________________
Jan
info.malte-gerth.de
=================================
Nutzt bitte lieber Jabber statt ICQ:
malte.gerth@jabber.cz
Jan ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.02.2006, 19:37 Nach oben    #19
me pro ok?
 
Benutzerbild von Lars
 
Registriert seit: 07.09.2005
Ort: Pulheim bei Köln
Beiträge: 965
Standard

Bitte.
Lars ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 24.02.2006, 19:43 Nach oben    #20
Erfahrener Benutzer
 
Registriert seit: 28.08.2004
Ort: konstanz am bodensee
Beiträge: 190
Standard

problem gelößt, birne geschält...

ein anderer vorschlag, warum verwendest du keine php sessions?

Code:
session_start();

//rein
$_SESSION['username']=$username;

//und wieder raus
$username = $_SESSION['username'];

// ein array rein
$_SESSION['userdata']=array('name'=>'horst','rank'=>'admin');

//und wieder raus
$userdata = $_SESSION['userdata'];
arrays musst du hier nicht serialisieren...
die methode mit den cookies ist eh nicht ganz die beste, da man so im nachhinein einfach den cookie öffnen und den username verändern kann...
z.B. in einem forum könnte man sich unter seinem namen anmelden, dann nach der anmeldung den namen auf jemanden den man nicht mag verändern und die comunity beleidigen...
beny_mcde ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Wo ist mein cookie??? Xean PHP-Programmierung 4 06.11.2006 14:04
Logisches Problem beim einsatz von Ereignissen Prophet Allgemeine Java-Programmierung 19 05.06.2006 22:08
Problem mit Cookie und Reloads... Bookworm PHP-Programmierung 10 13.04.2006 12:09
PRoblem mit Cookie bei PHPbb-Board Julied64 PHP-Programmierung 2 12.12.2005 15:41
OSX + Eclipse 3.1 Problem bacarni Eclipse 3 29.07.2005 21:19


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:33 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

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 35 36 37 38 39 40 41 42 43 44 45