kostenloser Webspace werbefrei: lima-city


PHP - viele POST Cookies einlesen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    voloya

    voloya hat kostenlosen Webspace.

    Hallo :wave:

    Ich gebe aus einer HTML Form viele verschiedene Werte per POST weiter und setze danach Cookies für jeden Wert.

    setcookie("cookie[serverip]", htmlspecialchars($_POST['serverip']), time()+360000);


    Ja, ich lese die cookies dann mit foreach als array aus, bloß kann ich die cookies auch irgendwie so anlegen?

    mfg :wave:
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. g****e

    Öhhmm, du willst für jeden POST-Value einen Cookie anlegen? Das ginge so:
    foreach( $_POST as $k => $v ) {
        setcookie( $k , $v , time()+86400 );
    }

    Damit hast du Cookies die alle entsprechend dem POST Feld heißen und entsprechend dem POST Feld den Wert haben.
    Auslesen tust du sie dann mit
    foreach( $_COOKIE as $k => $v ) {
        echo $k . ' - ' . $v;
    }


    Wenn des nich dein Ziel ist sie so zu schreiben um sie so auch wieder auszulesen, wäre es nett des noch einmal aufgedröselter zu sehen. Du könntest natürlich oben jetzt auch den Namen noch aus einem $k ein "cookie[".$k."]" machen, aber die Cookies würden deshalb nicht in ein Array direkt gehen, sondern wären als ebensolche Keys im $_COOKIE Array ( $_COOKIE[ "cookie[blah]"] = .. ).

    Liebe Grüße
  4. Und denk daran, dass die meisten Browser nur eine recht begranzte Anzahl an Cookies pro Seite zulassen.
    Falls es zu viele Cookies werden sind Sessions vielleicht eine gute Alternative.
  5. Autor dieses Themas

    voloya

    voloya hat kostenlosen Webspace.

    Hallo :wave:

    ggamee schrieb:
    foreach( $_POST as $k => $v ) {
        setcookie( $k , $v , time()+86400 );
    }

    Damit hast du Cookies die alle entsprechend dem POST Feld heißen und entsprechend dem POST Feld den Wert haben.
    Auslesen tust du sie dann mit
    foreach( $_COOKIE as $k => $v ) {
        echo $k . ' - ' . $v;
    }


    Danke danke, ich habe es jetzt mal temporär so gelöst:
    foreach($_POST as $key => $value){
    			$key = htmlspecialchars ($key);
    			setcookie("cookie[$key]", htmlspecialchars($value), time()+360000);
    }

    Braucht man htmlspecialchars da eigentlich, oder nur wenn ich die cookies auslese? Das mit dem cookie-array muss ich mir nochmal genauer anschauen, aber hauptsache das Einlesen/Auslesen funktioniert erstmal. :biggrin:

    unlikus schrieb:
    Und denk daran, dass die meisten Browser nur eine recht begranzte Anzahl an Cookies pro Seite zulassen.
    Falls es zu viele Cookies werden sind Sessions vielleicht eine gute Alternative.


    Es werden wohl maximal 10, was ist denn die geringste Zahl an Cookies, die ein bestimmter Browser erlaubt?

    mfg :wave:
  6. mach doch aus allen POST Variablen einen Serialize String (oder JSON)
    und setz dann 1 (ein einziges) Cookie mit diesem String,
    den Du nach auslesen ja wieder unserialize bzw json_decode machen kannst

    $postdata = serialize($_POST); 
    $key = 'pdata'; 
    setcookie( $key , $postdata , time()+86400 );
    
    // --- und dann ... zum Auslesen
    
    $read_data = unserialize($_COOKIE['pdata']); 
    
    // --------- DEBUG Ausgabe --------- 
    print "<pre>\n";
    print_r($read_data); 
    print "</pre>\n";


    oder

    $postdata = json_encode($_POST); 
    $key = 'pdata'; 
    setcookie( $key , $postdata , time()+86400 );
    
    // --- und dann ... zum Auslesen
    
    $read_data = json_decode($_COOKIE['pdata']); 
    
    // --------- DEBUG Ausgabe --------- 
    print "<pre>\n";
    print_r($read_data); 
    print "</pre>\n";


    nicht getestet, nur eine Idee :)
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!