Syntaxfehler bei $_SESSION ?

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

  • Syntaxfehler bei $_SESSION ?

    Hallo mal wieder,

    bei meiner SQL Datenbank gibt es das Feld "von", da wird automatisch der eingeloggte User mit seinem Loginnamen eingetragen.

    Jetzt möchte ich die folgende kleine Abfrage mittels Pulldownmenü machen:

    => Zeige alle Einträge an, bei denen der momentan eingeloggte User im Feld "von" eingetragen ist.

    Umgesetzt habe ich das zunächst einmal so:
    PHP-Code:
    $where   'where von = $_SESSION['username'] ';
    $where_4 'selected="selected"'
    Da ruft er dann allerdings gar keine Einträge ab, zeigt als Ergebnis eine leere Liste an.


    Nächster Versuch die Session in ne Variable zu packen und diese dann abzufragen:
    PHP-Code:
    $username $_SESSION['username'];
    $where    'where von = $username ';
    $where_4  'selected="selected"'
    Dann kommt allerdings der Fehler:

    Code:
    Unknown column '$username' in 'where clause'
    btw: Das gleiche Pulldownmenü mit anderen Abfragen funktioniert, es hängt also nur an der o.g. Zeile bzw. Abfrage, wenn ich beispielsweise ne direkte Abfrage mache
    PHP-Code:
    $where 'where von = "Lavingstar"'
    zeigt er die dazugehörigen Einträge ordnungsgemäß an.


    Hat jemand eine Idee warum wieso weshalb es nicht funktioniert und nicht zuletzt: wie es funktionieren könnte?

  • #2
    lerne erstmal ein paar Grundlagen, der code strotzt ja nur von anfängerfehlern....
    $where = 'where von = $_SESSION['username'] '; // Syntaxfehler
    $where = 'where von = $username '; // $username wird so nicht geparsed

    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Original geschrieben von MelloPie
      lerne erstmal ein paar Grundlagen, der code strotzt ja nur von anfängerfehlern....
      $where = 'where von = $_SESSION['username'] '; // Syntaxfehler
      $where = 'where von = $username '; // $username wird so nicht geparsed
      Danke für die "Antwort" ... leider ist deine "Antwort" ziemlich genau meine Frage ...

      Worin liegt der Syntaxfehler bzw. warum wird $username nicht geparsed?

      Kommentar


      • #4
        Lerne Grundlagen. Solche Fehler / Probleme sind sowas von banal.
        Beantworte nie Threads mit mehr als 15 followups...
        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

        Kommentar


        • #5
          Ok, mellowpie - für dich gilt das gleiche wie für den anderen Freund:

          Ich möchte dich bitten in Zukunft nicht mehr auf meine Threads zu antworten!
          ************************************************

          Für alle anderen die hier sind um was zu lernen und sich nicht wie kleine Kinder behandeln zu lassen von arroganten, hochnäsigen "Super-Hirnen" hier ein kleiner Hinweis, bezüglich Grundlagen und Syntaxfehlern:

          PHP-Code:
          <?php

             error_reporting 
          (E_ALL);
             
          ini_set("display_errors"true);
             
             
          $array = array('text' => "Ich bin ein Text");
             
             echo 
          'Inhalt: $array[text]<br>';
             
             echo 
          'Inhalt: ' $array[text] . '<br>';
             
             echo 
          'Inhalt: ' $array['text'] . '<br>';
             
             echo 
          "Inhalt: $array[text]<br>";
             
             echo 
          "Inhalt: $array['text']<br>";
             
             echo 
          "Inhalt: " $array['text'] . "<br>"
          ?>

          Kommentar


          • #6
            Solange Du hier so banale Fragen stellst musst Du damit rechnen entsprechende Antworten zu bekommen. Wobei "lerne Grundlagen" keine Klugscheisserei ist, denn wie willst Du jemals irgendwas auf irgendeinem Gebiet ohne Grundlagen bewältigen?

            Wer sich mit logins und Sessions beschäftigt aber die einfachsten Fehler nicht selbst finden und beheben kann, sollte sich lieber mal hinsetzen und Grundlagen lernen anstatt auf die so arroganten Alleskönner zu schimpfen.

            Aber klar, wer nur faul und dreist ist und lang genug jammert bekommt irgendwann alles vorgekaut.
            Beantworte nie Threads mit mehr als 15 followups...
            Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

            Kommentar


            • #7
              Original geschrieben von Lavingstar
              Ich möchte dich bitten in Zukunft nicht mehr auf meine Threads zu antworten
              Das kann er immer noch selbst entscheiden. Schreib dir ein Script zum ausfiltern. Er hat schon recht mit dem was er schreibt. Ich stimme ihm da, auch auf die Gefahr hin jetzt nicht mehr in "deine" Threads antworten zu dürfen, voll zu.

              Kommentar


              • #8
                Re: Syntaxfehler bei $_SESSION ?

                Es funktioniert nun, die Lösung war nach Erkenntnis der Fehlerart denkbar einfach:

                PHP-Code:
                $where   'where von = $username'
                wurde umgeschrieben in
                PHP-Code:
                $where   "where von = '$username'"
                Fürs nächste Mal überlege ich mir wieder schwerere Fragen, obwohl anscheinend ja diese popeligen Dinge nicht zu beantworten sind und mehrere Offtopic-Posts benötigen

                Kommentar


                • #9
                  ...und korrekt wäre:

                  PHP-Code:
                  $where   "where von = ".$username
                  Kommt das $username aus irgendeiner User Eingabe? Dann vermute ich mal dass du vorher nichts gegen MySQL Injections getan hast. - Und das deswegen in dieser kurzen Zeile auch noch fehlt..

                  Kommentar


                  • #10
                    Original geschrieben von lennart
                    Kommt das $username aus irgendeiner User Eingabe?
                    Nein, $username wurde ja wie gezeigt aus $_SESSION['username'] "übernommen" - im Prinzip ein frei wählbarer Benutzername.

                    Dann vermute ich mal dass du vorher nichts gegen MySQL Injections getan hast. - Und das deswegen in dieser kurzen Zeile auch noch fehlt..
                    Richtig vermutet... was bei meinen php-Fähigkeiten jetzt aber auch keine hellseherischen Fähigkeiten voraussetzt :-)

                    Kommentar


                    • #11
                      Original geschrieben von Lavingstar
                      [B]Nein, $username wurde ja wie gezeigt aus $_SESSION['username'] "übernommen" - im Prinzip ein frei wählbarer Benutzername.
                      Muss mich hier grad selbst berichtigen:

                      Im Prinzip kommt es natürlich aus einer Usereingabe - nämlich der Name den der User selbst gewählt hat ... also: Ja, kommt es :-)

                      Kommentar


                      • #12
                        Original geschrieben von Lavingstar
                        Nein, $username wurde ja wie gezeigt aus $_SESSION['username'] "übernommen" - im Prinzip ein frei wählbarer Benutzername.
                        Dann ist es also ja doch eine User Eingabe...... Dazu passt mal wieder 1a: http://xkcd.com/327/

                        Original geschrieben von Lavingstar
                        Richtig vermutet... was bei meinen php-Fähigkeiten jetzt aber auch keine hellseherischen Fähigkeiten voraussetzt :-)
                        Dann lass die Finger von Login Systemen die mal produktiv genutzt werden sollen.

                        Kommentar


                        • #13
                          Original geschrieben von Lavingstar
                          Nein, $username wurde ja wie gezeigt aus $_SESSION['username'] "übernommen" - im Prinzip ein frei wählbarer Benutzername.



                          Richtig vermutet... was bei meinen php-Fähigkeiten jetzt aber auch keine hellseherischen Fähigkeiten voraussetzt :-)
                          und wie wurde die session variable gefüllt? mit einer usereingabe
                          dann musst du beim login auf sql-injection überprüfen (tipp: mysql_real_escape_string)
                          Gruß
                          Uzu

                          private Homepage

                          Kommentar


                          • #14
                            Original geschrieben von lennart
                            Dann ist es also ja doch eine User Eingabe......
                            Jap, hab mich ja oben auch selbst berichtigt :-)

                            Dann lass die Finger von Login Systemen die mal produktiv genutzt werden sollen.
                            hrhrhr .... wenn ihr wüsstest wo dieses Programm eingesetzt wird... ihr würdet die Hände überm Kopp zusammenschlagen :-) Mehr als ihr es eh schon tut ;-)

                            Kommentar


                            • #15
                              Original geschrieben von Lavingstar
                              Jap, hab mich ja oben auch selbst berichtigt :-)
                              Mach sowas bitte nächstes mal mit einem Hinweis was verändert wurde wenn sich schon jemand darauf bezogen hat.

                              Original geschrieben von Lavingstar
                              hrhrhr .... wenn ihr wüsstest wo dieses Programm eingesetzt wird... ihr würdet die Hände überm Kopp zusammenschlagen :-) Mehr als ihr es eh schon tut ;-)
                              ....

                              btw: 500! \o/

                              Kommentar

                              Lädt...
                              X