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

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • $_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

    Comment


    • #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

      Comment


      • #4
        Originally posted by combie View Post
        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?

        Originally posted by Kropff View Post
        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.
        Last edited by fireweasel; 14-09-2013, 14:11. Reason: 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!

        Comment


        • #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

          Comment


          • #6
            Originally posted by Guenni61 View Post
            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].
            Last edited by fireweasel; 14-09-2013, 14:33.
            Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

            Comment

            Working...
            X