Fehlermeldung beim Aufruf

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

  • Fehlermeldung beim Aufruf

    Hallo,

    ich habe mittlerweile ein anderes Problem was mich Plagt. Also ich habe eine abfrage in eine Variabel gespeichert, dies sieht zb. so aus:

    PHP-Code:
    $sql "SELECT UserPass, rechte FROM users WHERE UserName = ""\ "'.$_POST['UserName'].'" "\" "
    wenn ich jetze diese seite aufrufe bekomme ich diese Fehlermeldung:

    PHP-Code:
    Parse errorparse errorunexpected T_CONSTANT_ENCAPSED_STRING in D:\server\htdocs\lst\admin\index.php on line 21 
    hier mal die Line 21 +- 5 :

    PHP-Code:

    $sql 
    "SELECT UserPass, rechte FROM users WHERE UserName = ""\ "'.$_POST['UserName'].'" "\" ";


    if(!
    $result mysql_query('$db_select''$sql'))
        {
        echo 
    'fehler: '.mysql_error();
        } 
    ich kann eigentlich keinen Fehler finden ?!

    gruß
    Dennis

  • #2
    PHP-Code:
    $sql "SELECT UserPass, rechte FROM users WHERE UserName = "" "'.$_POST['UserName'].'" "" "
    Der Fehler wird wohl bei den doppelten Aführungszeichen liegen. Was willst du damit eigentlich ausdrücken?

    Deine Anweisung geht bis $sql = "SELECT UserPass, rechte FROM users WHERE UserName = " <- Dann ist die Anweisung für das Script zuende.

    Kommentar


    • #3
      Schuß ins blaue (nicht getestet):
      PHP-Code:
      $sql "SELECT UserPass, rechte FROM users WHERE UserName = '".$_POST['UserName']."' "
      "I don't want to belong to any club that would accept me as a member."

      Groucho Marx

      Kommentar


      • #4
        hmm also ich habe mal ein bischen getestet
        und gewerkelt aber komme nicht auf einen Grünen zweig ich bekomme diese Fehlermeldungen:

        Notice: Undefined index: UserName in D:\server\htdocs\lst\admin\index.php on line 21

        Notice: Use of undefined constant test - assumed 'test' in D:\server\htdocs\lst\admin\index.php on line 24
        fehler: sie gehören keiner benutzergruppe an
        das sind Fehlermeldungen die ich noch nie gesehn
        habe (.o. kommt diese Meldung weil ich error_reporting(E_ALL); in der ersten zeile stehen habe bzw unterm <?php ?)

        Also in Linie 21 wie gehabt:

        PHP-Code:
        $sql "SELECT UserPass, rechte FROM users 
        WHERE UserName = \""  
        .$_SESSION['UserName']."\"" 
        Dort habe ich lediglich die VAR geändert.

        nu die Line 24:

        PHP-Code:
        if(!$result mysql_db_query(test ,$sql))
            {
            echo 
        'fehler: '.mysql_error();
            } 
        Die Tabelle test besteht ja aber wie es aussieht verträgt er was nicht am $sql.

        Ich würde mich freuen wenn jemand mir kurz erklärt was die Fehlermeldungen zu bedeuten haben bzw
        was die mir sagen wollen und was man u.a dagegen machen könnte.

        Gruß
        Dennis

        Kommentar


        • #5
          Notice: Undefined index: UserName in D:\server\htdocs\lst\admin\index.php on line 21

          Notice: Use of undefined constant test - assumed 'test' in D:\server\htdocs\lst\admin\index.php on line 24
          fehler: sie gehören keiner benutzergruppe an
          Zu 1:
          Kommt vermutlich nur beim ersten Aufruf des Forms, oder ? Dann existiert POST natürlich noch nicht. Bevor du auf die Var zugreifst prüfe erst mittels isset() ob sie überhaupt existiert...
          Zu 2:
          Eine Var ohne $ wird als Konstante gesehen. Du hast aber keine solche definiert --> Fehler wird geworfen.
          Allenfalls würde ein $ an der richtigen Stelle wunderwirken

          Gruss

          tobi
          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

          Kommentar


          • #6
            mach mal

            echo $_POST['UserName'];

            und

            echo $sql
            Zuletzt geändert von Manfred_ST; 28.08.2006, 15:18.

            Kommentar


            • #7
              Also:

              PHP-Code:
              echo $_POST['UserName']; 
              kommt:

              Notice: Undefined index: UserName in D:\server\htdocs\lst\admin\index.php on line 4
              sogar wenn ich es mit diesem versuche:

              PHP-Code:
              echo $_SESSION['UserName']; 
              Die Meldung:

              Parse error: parse error, unexpected T_VARIABLE, expecting ',' or ';' in
              D:\server\htdocs\lst\admin\index.php on line 8
              Beginnt dein script mit session_start() ?
              ja beginnt es bzw in der 2 Zeile.
              im Allgemeinem habe ich jetze diese Fehlermeldung:

              Notice: Undefined index: UserName in D:\server\htdocs\lst\admin\index.php on line 25
              dabei verstehe ich das nicht, die Spalte UserName existiert in der DB nur raus holen will er die nicht

              Kommentar


              • #8
                Also ist deine $_POST variable nicht gefüllt worden (oder sie heisst anders).
                Vielleicht wäre der ganze source hilfreich ...

                Kommentar


                • #9
                  PHP-Code:
                  <?php
                  error_reporting
                  (E_ALL);
                  session_start();

                  $kkk "test";
                  if (isset(
                  $SESSION['UserName'])) {
                     echo 
                  "Die Variable ist gesetzt, also wird etwas ausgegeben.";
                  }

                  if(!
                  $conn mysql_connect('localhost''root'''))
                      {
                      echo 
                  'fehler: '.mysql_error();
                      }

                  if(!
                  $db_select mysql_select_db('test'))
                      {
                      echo 
                  'fehler: '.mysql_error();
                      }


                  $sql "SELECT UserPass, rechte FROM users WHERE UserName = \""  .$_SESSION['UserName']."\"" ;


                  if(!
                  $result mysql_db_query($kkk ,$sql))
                      {
                      echo 
                  'fehler: '.mysql_error();
                      }

                  if(!
                  $row mysql_fetch_array($result))
                      {
                      echo 
                  'fehler: '.mysql_error();
                      }


                  $_SESSION['rechte'] = $row['rechte'];



                  if(
                  $_SESSION['rechte'] == 3)
                      {
                      echo 
                  'sie sind admin';
                      exit();
                      }
                          elseif(
                  $_SESSION['rechte'] == 2)
                          {
                          echo 
                  'sie sind moderator';
                          exit();
                          }
                              elseif(
                  $_SESSION['rechte'] == 1)
                              {
                              echo 
                  'sie sind user';
                              exit();
                              }
                                  else
                                  {
                                  echo 
                  'fehler: sie gehören keiner benutzergruppe an';
                                  exit();
                                  }
                  ?>
                  *edit* also es wierd eigentlich nix mit Post übergeben.

                  Kommentar


                  • #10
                    Also du prüfst erst mit isset() ob die Session gesetzt ist. Sehr vorbildlich. Aber warum greifst du ein paar Zeilen weiter unten wieder ungeprüft auf die Session zu ? Das ergibt den undefined index Fehler.
                    Wo speicherst du denn einen Wert in Session['username'] ?

                    Gruss

                    tobi
                    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                    Kommentar


                    • #11
                      Original geschrieben von /etc/

                      *edit* also es wierd eigentlich nix mit Post übergeben.
                      ohne worte

                      dein sql sieht merkwürdig aus, probier mal das:
                      PHP-Code:
                      $sql="SELECT `UserPass`,`rechte` FROM `users` WHERE `UserName`= '$_SESSION[UserName]'" 

                      Kommentar


                      • #12
                        Jetze hab ich ein Error Also

                        Aber warum greifst du ein paar Zeilen weiter unten wieder ungeprüft auf die Session zu ? Das ergibt den undefined index Fehler.
                        meinst wohl ganz unten Jeder User ist in einer Gruppe und damit man weiß in welcher gruppe der jenige ist muss man ja auf die Session zurückgreifen oder sehe ich da was falsch ?

                        PHP-Code:
                        Wo speicherst du denn einen Wert in Session['username'] ? 
                        Das wierd doch per diesem Script aus der DB geholt sonst ist doch Sessions da wo die doch gespeichert sind ?

                        @3dMax

                        Notice: Undefined index: UserName in D:\server\htdocs\lst\admin\index.php on line 25

                        Kommentar


                        • #13
                          Du prüfst oben mit if(iiset()) und warum schreibst du $sql nicht in das if rein ?
                          z.B.
                          PHP-Code:
                          if (isset($SESSION['UserName'])) {
                             echo 
                          "Die Variable ist gesetzt, also wird etwas ausgegeben.";
                             
                          $sql "SELECT UserPass, rechte FROM users WHERE UserName ='".$_SESSION['UserName']."'" ;

                          So gibt es keine Notice wenn die Session nicht existiert...
                          Das wierd doch per diesem Script aus der DB geholt sonst ist doch Sessions da wo die doch gespeichert sind ?
                          Also wo steht dann $_SESSION['Username'] = wert ?
                          Und schau dir mal switch() an. Könnte das letzte if/elseif Konstrukt ersetzen.

                          Gruss

                          tobi
                          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                          Kommentar


                          • #14
                            Notice: Undefined index: UserName in D:\server\htdocs\lst\admin\index.php on line 26
                            fehler: sie gehören keiner benutzergruppe an
                            Diese Meldung erscheint immer noch.

                            Also wo steht dann $_SESSION['Username'] = wert ?
                            Wie meinst du es genau bzw wie sollte man dies richtig speichern und in welcher zeile.

                            Und schau dir mal switch() an. Könnte das letzte if/elseif Konstrukt ersetzen.
                            Okay kann es sein das es evt leichter ist als immer diese If Abfragen ?!

                            Kommentar


                            • #15
                              So für die jenigen die es Interessiert, ich habe es soweit hinbekommen .

                              Also die Var UserName war komplett Fehl-am-platz den es sollten ja die Rechte überprüft werden u.a dies habe ich geändert sprich username wech und mit rechte ersetzt. so jetze Funktioniert die soweit nur, wenn ich mich als User oder Dispo einlogge so bekomme ich diese Meldung:

                              fehler:
                              sie sind admin
                              und betrifft diesen Block:

                              PHP-Code:
                              if($_SESSION['rechte'] != 3)
                                  {
                                  echo 
                              '<br>sie sind admin';
                                  exit();
                                  }
                                      elseif(
                              $_SESSION['rechte'] != 2)
                                      {
                                      echo 
                              'sie sind moderator';
                                      exit();
                                      }
                                          elseif(
                              $_SESSION['rechte'] != 1)
                                          {
                                          echo 
                              'sie sind user';
                                          exit();
                                          }
                                              else
                                              {
                                              echo 
                              'fehler: sie gehören keiner benutzergruppe an';
                                              exit();
                                              }
                              ?> 
                              Nu was daran verkehrt sein kann begreif ich nicht. Mag sein das es wieder so ein kleiner fehler ist aber ich weiß es nicht. Vll habt Ihr noch ein Tip für mich auf Lager ?

                              *edit*

                              die Funktion Switch möchte ich erstmal unberührt lassen..

                              Kommentar

                              Lädt...
                              X