$_SESSION[$kennung]=$key."|".$val; -> $kennung auslesen

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

  • $_SESSION[$kennung]=$key."|".$val; -> $kennung auslesen

    Hallo,

    ich füttere meine Sessions so:

    PHP-Code:
    $_SESSION[$kennung]=$key."|".$val
    Ausgelesen werden die Daten so:

    PHP-Code:
    foreach($_SESSION AS $wert){...} 
    Wie kann ich mir jetzt aber zusätzlich noch $kennung ausgeben lassen?

    Danke,
    Truncate

  • #2
    PHP-Code:
    foreach($_SESSION as $key => $wert){ echo $key;} 
    $key entspricht deinem $kennung.
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      ich füttere meine Sessions so:


      PHP-Code:
      $_SESSION[$kennung]=$key."|".$val
      Warum tust du das mit dem | ?

      Warum nicht so:

      PHP-Code:
      $_SESSION[$kennung][$key]=$val
      ???
      Wir werden alle sterben

      Kommentar


      • #4
        Zitat von combie Beitrag anzeigen
        Warum tust du das mit dem | ?
        Das Henny-Youngman-Problem:
        - [Herr Doktor], immer wenn ich so mache, tut es weh!
        - Na, dann machen sie doch nicht so!


        Warum nicht so:
        PHP-Code:
        $_SESSION[$kennung][$key]=$val
        ???
        Weil das Kenntnisse darüber voraussetzen würde, dass sich Arrays verschachteln lassen?

        Zitat von Kropff Beitrag anzeigen
        PHP-Code:
        foreach($_SESSION as $key => $wert){ echo $key;} 
        $key entspricht deinem $kennung.
        Spricht etwas dagegen, die Variable so zu benennen, wie sie heißt, statt das generische $key zu benutzen?
        PHP-Code:
        foreach ($_SESSION as $kennung => $some_stupid_named_entry) {
            
        printf("%s => %s\r\n"$kennung$some_stupid_named_entry);

        @Truncate: Es gibt da so eine nette Website, da findest du so ziemlich jedes Feature von PHP dokumentiert, u.A. auch die foreach-Schleife.
        Zuletzt geändert von fireweasel; 14.09.2013, 15:11. Grund: Der Original-Autor des Arzt-Witzes war nicht E. v. Hirschhausen
        Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

        Kommentar


        • #5
          Da Truncate ja alle im Dunkeln läßt, warum er seine Variable so initialisiert,
          mal meine Frage, warum wäre das denn jetzt so verkehrt? Das eine führt doch genauso
          zum Ziel wie das andere. Ich denke, es kommt ihm mehr darauf an, zusätzlich zu
          dem Variableninhalt auch noch eine "Kennung" auszugeben, die in $kennung abgelegt ist.
          PHP-Code:
          <?php
           session_start
          ();
          $kennung 'Truncate';
          $key 'geheim';
          $value 'Geheimnis von Truncate';
          //Stringversion
          //$_SESSION[$kennung] = $key.'|'.$value;
          //Arrayversion
          $_SESSION[$kennung] = array($key$value);
          ?>
          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
          <html>
          <head>
          <title>Untitled</title>
          </head>
          <body>
          <?php 
          //Stringversion
          /*
          foreach($_SESSION as $kennung => $values){
          echo 'Meine Kennung ist '.$kennung.'<br>';
          list($Mein_Schluessel, $Mein_Geheimnis) = explode('|', $values);
          echo 'Mein Schlüssel ist '.$Mein_Schluessel.'<br>';
          echo 'Mein Geheimnis ist das '.$Mein_Geheimnis;
          }
          */
          //Arrayversion
          foreach($_SESSION as $kennung => $values){
          echo 
          'Meine Kennung ist '.$kennung.'<br>';
          echo 
          'Mein Schlüssel ist '.$values[0].'<br>';
          echo 
          'Mein Geheimnis ist das '.$values[1].'<br>';
          }
          </
          body>
          </
          html>
          ?>
          Gruß
          Günni

          Kommentar


          • #6
            Zitat von Guenni61 Beitrag anzeigen
            Da Truncate ja alle im Dunkeln läßt, ...
            Das ist so üblich: Man lädt seine Probleme in diversen Boards ab und schaut in den meisten Boards nie wieder vorbei, um eventuell nach der Lösung zu sehen.

            .., warum wäre das denn jetzt so verkehrt?
            PHP-Code:
            //...
            list($Mein_Schluessel$Mein_Geheimnis) = explode('|'$values);
            // ... 
            Hier ist das Problem, dass du in den Einzelteilen von $values niemals das Zeichen '|' verwenden darfst. Mit preg_split() könntest du es wenigstens "escaped" erlauben. In beiden Fällen musst du in Benutzereingaben das Trennzeichen behandeln (entfernen, escapen), bevor du sie zusammenklebst und in die Session-Variable schiebst.

            PHP-Code:
            //Arrayversion
            foreach($_SESSION as $kennung => $values){
            echo 
            'Meine Kennung ist '.$kennung.'<br>';
            echo 
            'Mein Schlüssel ist '.$values[0].'<br>';
            echo 
            'Mein Geheimnis ist das '.$values[1].'<br>';

            Foreach erlaubt seit PHP 5.5.0 den Einsatz von list() für den Teil mit den $values. Aber auch $values['key'] und $values['secret'] wäre lesbarer und an anderer Stelle des Quellcodes nachvollziehbarer als $values[0] oder $values[1].
            Zuletzt geändert von fireweasel; 14.09.2013, 15:33.
            Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

            Kommentar

            Lädt...
            X