Ankündigung

Einklappen
Keine Ankündigung bisher.

Cookies und Ihre Kodierung (ihr Inhalt)

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Cookies und Ihre Kodierung (ihr Inhalt)

    Hallöchen,

    bin atm auf nem recht seltsamen Problem gestoßen.
    Habe auf die schnelle ein kleines Tool in html/JS geschrieben das unter anderem Daten via Cookies speichert.

    Anfang habe ich die Cookies alle via JS gespeichert, da es hier aber zu Problemen kam wenn das einst erstelle Cookie erneut benutzt werden Soll ohne das sich die Setie dazu neu Laden musste, dies nicht funktionierte.

    Also ich habe zb. ein Cookie das eine Liste enthält in Form eines json strings, da wird ein Eintrag zb. hinzugefügt dann wird das Tool weiter benutz (selbe Laufzeit) und das gleiche Cookie erneut aufgerufen und zb. ein so eben hinzugefügtes Element gesucht und nicht gefunden, nach dem die Seite neugeladen wird wird es jedoch gefunden.


    Lange Rede kurzer Sinn, habe ich ein php Hintergrundscript hinzugefügt das die Cookies ausliest und erstellt, was soweit auch alles klappt.
    Jedoch werden hier HTML-Zeichen nicht mehr in Klartext ins Cookie abgelegt sondern in UNI-Code oder sowas und hier würde ich gerne wissen wie ich das weg bekomme?

    Ich mein es muss ja möglich sein, bei JS hats ja auch geklappt das ein Leerzeichen " " genau so gespeichert wurde und nicht durch ein "+" ersetzt wurde, warum des hier bei php passiert ist mir unklar, da auch in PHP UTF-8 im header definiert ist =(


    Code:
    <?php
    header('Content-type: text/html; charset=UTF-8'); // html or plain?
    header('Cache-control: private');
    header('Accept-Ranges: bytes');
    
    if( $_POST['process'] == 'save' )
    {
    	// First manage the note list
    	if( !isset($_COOKIE['noticeList']) ){
    		$firstNote = [];
    		$firstNote[] = $_POST['name'];
    		setcookie('noticeList', json_encode($firstNote), time() + (3600 * 24 * 90), '/');
    	}
    	else
    	{
    		$nameList = json_decode($_COOKIE['noticeList']);
    		if( !in_array($_POST['name'], $nameList) ){
    			$nameList[] = $_POST['name'];
    			setcookie('noticeList', json_encode($nameList), time() + (3600 * 24 * 90), '/');
    		}
    	}
    	
    	// save note
    	setcookie(md5($_POST['name']), str_replace('<br />', '<br>', $_POST['text']), time() + (3600 * 24 * 90), '/');
    	echo 'OK';
    }
    
    if( $_POST['process'] == 'load' )
    {
    	if( !isset($_COOKIE[md5($_POST['name'])]) )
    	{
    		echo json_encode(['status' => 'fail']);
    	}
    	else
    	{
    		echo json_encode(['status' => 'ok', 'text' => $_COOKIE[md5($_POST['name'])] ]);
    	}
    }

    MFG: Paykoman
    PS: hoffe mir hilft da wer.


  • #2
    Was soll das?
    Standards - Best Practices - AwesomePHP - Guideline für WebApps

    Kommentar


    • #3
      Du möchtest:
      - (erstmal zum eigentlichen Thema) Deine Values BASE64-kodiert im Cookie ablegen, damit das auch so wieder rauskommt wie du es reingelegt hast.
      - (offtopic) Deine Rechtschreibung nochmals prüfen, Dein Beitrag ist quasi nicht lesbar.

      Kommentar

      Lädt...
      X