Stefan: ich bin zu doof ;-(

Hallo zusammen,

wie kriege ich das hin ohne Fehlermeldung?

$inhalt[]="$_SESSION["nachname"]";

Fehlermeldung:
Parse error: parse error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING

  1. Hallo,

    $inhalt[]="$_SESSION["nachname"]";

    in dem du es einfach so schreibst
    $inhalt[]="$_SESSION['nachname']";

    oder noch besser
    $inhalt[]=$_SESSION['nachname'];

    mfg
    Twilo

    1. Mein Gott, bin wirklich doof :-)

      Herzlichen Dank Twilo

      $inhalt[]=$_SESSION['nachname'];

      mfg
      Twilo

    2. ups...geht noch nicht

      in dem du es einfach so schreibst
      $inhalt[]="$_SESSION['nachname']";

      Fehlermeldung:
      parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING

      Und so gehts, aber da muss noch HTML am ende rein, dann gehts wieder nicht $inhalt[]=$_SESSION['nachname'];

      1. Hi Stefan,

        in dem du es einfach so schreibst
        $inhalt[]="$_SESSION['nachname']";

        Fehlermeldung:
        parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING

        Und so gehts, aber da muss noch HTML am ende rein, dann gehts wieder nicht $inhalt[]=$_SESSION['nachname'];

        Du hast dir einen schlechten Stil angewöhnt, schreibe es so, wie Twilo dir als zweite Möglichkeit schrieb. Wenn du noch etwas dahinter hängen willst, mach es so:

        $inhalt[] = $_SESSION['nachname'] . "hier das HTML";

        MfG, Dennis.

        --
        Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:( mo:} zu:|
        Schon gewusst, dass Bugs und Feature Vorschläge für das CForum ins Entwicklerforum oder in den BugTracker gehören und nicht hier her?
        1. Hallo Denis,

          Herzlichen Dank, genau das habe ich gesucht.^

          Du hast dir einen schlechten Stil angewöhnt, schreibe es so, wie Twilo dir als zweite Möglichkeit schrieb. Wenn du noch etwas dahinter hängen willst, mach es so:

          $inhalt[] = $_SESSION['nachname'] . "hier das HTML";

          MfG, Dennis.

        2. Hallo,

          Du hast dir einen schlechten Stil angewöhnt, schreibe es so, wie Twilo dir als zweite Möglichkeit schrieb. Wenn du noch etwas dahinter hängen willst, mach es so:

          $inhalt[] = $_SESSION['nachname'] . "hier das HTML";

          ich würde es so machen

          $inhalt[] = $_SESSION['nachname'] . 'hier das HTML';

          dann muss man auch die " im HTML-Code nicht escapen ;-)

          mfg
          Twilo

          1. Hi Twilo,

            $inhalt[] = $_SESSION['nachname'] . "hier das HTML";

            ich würde es so machen

            $inhalt[] = $_SESSION['nachname'] . 'hier das HTML';
            dann muss man auch die " im HTML-Code nicht escapen ;-)

            Dafür kannst du aber auch kein \n, \t oder so etwas in der Art schreiben ;-))

            MfG, Dennis.

            --
            Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:( mo:} zu:|
            Auf viele Fragen weiß auch Wikipedia eine Antwort.
            1. Hallo,

              $inhalt[] = $_SESSION['nachname'] . "hier das HTML";

              ich würde es so machen

              $inhalt[] = $_SESSION['nachname'] . 'hier das HTML';
              dann muss man auch die " im HTML-Code nicht escapen ;-)

              Dafür kannst du aber auch kein \n, \t oder so etwas in der Art schreiben ;-))

              $bla = '<p>ich kann es aber auch so machen ;-)  
                  die Leerzeichen k&ouml;nnten ein Tab sein</p>';
              

              mfg
              Twilo

          2. Hm also, muss wohl mal erklären was ich mache, das ganze sieht so aus

            $inhalt[] = (Hier sollte doch PHP auch gehen oder?) also include bla bla bla . "<html><head><meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'>
            <link rel='stylesheet' type='text/css' href='style.css'>
            <title>- 15 Punkte</title>
            </head>

            <body>
            <embed src='./wav/alarm_buzzer.wav' width=0 height=0 autostart=true>
            <table width='70%' border='0' align='center' cellpadding='10' cellspacing='2' class='win'>
              <tr>
                <td><div align='center'>
                  <table width='100%' border='0' cellpadding='0' cellspacing='0'>
                    <tr>
                      <td><div align='center'>
                        <h3>- 15 Punkte</h3>
                      </div></td>
                    </tr>
                  </table>
                  <img src='./images/poker/k-8.gif' width='70' height='98'><br>
                    <br>
                    <strong>Deinem Konto wurden  15 Punkte abgezogen</strong></div></td>
              </tr>
            </table>
            <br>
            </body>
            </html>
            ";

            $anzahllinks=count($inhalt); //

            srand((double)microtime()*10000000); //
            $ausgabe=rand(0,$anzahllinks-1); //

            echo $inhalt[$ausgabe]; //

    3. echo $begrueszung;

      $inhalt[]="$_SESSION["nachname"]";

      in dem du es einfach so schreibst
      $inhalt[]="$_SESSION['nachname']";

      Nur der Vollständigkeit halber:
      Wie auch an Stefans Fehlermeldung zu sehen ist funktioniert diese Syntax nicht. Aber: alle Variablen-Schreibweisen, die etwas komplexer sind, lassen sich auch in ""-Zeichenketten angeben, wenn man sie in {} geschweifte Klammern einrahmt.

      $inhalt[]="{$_SESSION['nachname']}";

      Dann geht auch "{$var}text", also Text, der sich ohne Leerzeichen an einen Variable anschließen soll.

      Natürlich ist es in den meisten Fällen unsinnig [1], eine Variable ohne weiteren Text drumherum in "" einzuschließen.

      Und noch etwas eleganter ist sprintf()-Funktion (respektive printf() ). Dann sieht ein String nicht so zerhackstückt aus, als wenn er ständig durch Variablen und Funktionsaufrufe unterbrochen wird:

        
      $sql = sprintf('SELECT `%s` FROM `%s` WHERE `%s` = "%s"',  
        $feldName,  
        getTableName(),  
        $feldName,  
        mysql_real_escape_string($_POST['foo']));  
      
      

      dedlfix

      [1] Als sinnvoll könnte ich mir noch eine erwünschte Umwandlung von einem Nicht-String-Typ in einen String-Typ vorstellen, dass kann man aber auch als Typumwandlung schreiben:
        $stringValue = (string) $intValue;
      Dadurch tritt für nachfolgende Code-Leser sogar noch deutlicher die gewünschte Absicht des Autors zu Tage, finde ich.

  2. Hello,

    wie kriege ich das hin ohne Fehlermeldung?

    $inhalt[]="$_SESSION["nachname"]";

    $inhalt[]="$_SESSION["nachname"]";

    jetzt wird der Elementekette (PHP-Array) $inhalt am Ende ein Element hinzugefügt mit dem nächsten "Index".

    Das setzt aber voraus, dass $inhalt auch ein PHP-Array ist.

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    1. Hallo Tom,

      das geht leider auch nicht

      jetzt wird der Elementekette (PHP-Array) $inhalt am Ende ein Element hinzugefügt mit dem nächsten "Index".

      Das setzt aber voraus, dass $inhalt auch ein PHP-Array ist.
      Harzliche Grüße aus http://www.annerschbarrich.de

      Tom

      1. Hello,

        das geht leider auch nicht

        Was ist denn das für eine ulkige Fehlerbeschreibung?

        $inhalt[]="$_SESSION["nachname"]";

        Schreibt die Zeichenkette       $_SESSION["nachname"]

        in ein neues Array-Element am Ende des PHP-Arrays $inhalt und vergibt für dieses Element einen Unique-Index, der um eins höher ist, als der größte vorhandene. $inhalt muss dazu entweder noch gar nicht deklariert sein, oder aber als Array deklariert sein.

        Wenn Du aber den Inhalt des Elementes $_SESSION['nachname'] in das neue Array-Element von $inhalt kopieren wolltest, dann hat Dir Twilo doch schon gesagt, wie es geht.

        Du hast bisher weder erzählt, was Du erreichen willst, noch welches weitere vermeintliche Fehlverhalten denn das Script denn erzeugt hat.

        Harzliche Grüße aus http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
    2. Hallo,

      $inhalt[]="$_SESSION["nachname"]";

      öhm... warum machst du das so kompliziert?
      $inhalt[]='$_SESSION["nachname"]';
      wäre doch einfacher ;-)

      mfg
      Twilo

      1. Hello,

        Hallo,

        $inhalt[]="$_SESSION["nachname"]";

        öhm... warum machst du das so kompliziert?
        $inhalt[]='$_SESSION["nachname"]';
        wäre doch einfacher ;-)

        ... und wenn auf meiner Tastatur das Einfachhäkchen kaputt ist? *g*

        Harzliche Grüße aus http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau