Formularfelder werden scheinbar nicht übergeben

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

  • Formularfelder werden scheinbar nicht übergeben

    Habe ein Problem mit den Übergabefeldern in einem Formular.

    Vorweg:

    Apache ist installiert
    PHP ist installiert
    MySql ist installiert

    phpmyadmin ist installiert.

    Ich habe mit phpadmin eine DB und Table angelegt.


    So nun zu dem Problem,

    wenn ich meine Eingabefelder fülle und abschicke, dann bekomme ich aus meinem verify.php die Meldung
    "Sorry, aber dieser Name ist leider nicht bekannt !", obwohl der Name in der DB existiert!

    der connect scheint aber zu laufen, da keine fehlermeldung ausgegeben wird!


    was kann das sein? online, beim provider läufts? nur auf meinem rechner nicht!


    hier der code:

    login.htm

    <html>
    <head>
    <title>login</title>
    </head>
    <body>
    <form action="verify.php" method="post">
    Username : <br>
    <input type="text" name="username" size="20" maxlength="20"><br>
    Passwort : <br>
    <input type="password" name="passwort" size="20" maxlength="20"><br>
    <input type="submit" name="absenden" value="einloggen">
    </form>
    </body>
    </html>

    --------------------

    verify.php

    <?php
    session_start();
    include('var.inc.php');
    $conn = @mysql_connect($dbserver,$dbuser,$dbpass);
    if (!$conn)
    {
    die ("Sorry, Verbindungsversuch zur Datenbank ist fehlgeschlagen !");
    }
    mysql_select_db($dbname,$conn);
    $query = "SELECT pass, level FROM zugriff WHERE name = '".$username."'";
    $result = mysql_query($query,$conn);
    $zeileholen = mysql_fetch_array($result,MYSQL_ASSOC);
    $verschl = md5($passwort);
    mysql_close($conn);
    if (!$zeileholen)
    {
    die ("Sorry, aber dieser Name ist leider nicht bekannt !");
    }
    if ($zeileholen["pass"] <> $verschl)
    {
    die ("Sorry, aber dieses Passwort passt nicht zum Usernamen !!<br><a href='index.htm' target='_self'>Loginseite</a>");
    }
    $level = $zeileholen["level"];
    session_register('username');
    session_register('level');
    header ("Location:admin.php");
    ?>

  • #2
    du prüfst mit
    if (!$zeileholen)
    ob die query ein resultset zurückgibt... aber nicht ob da Inhalt drin ist. Selbst wenn der Name nicht drin wäre würde im Falle dass das query richtig wäre $zeileholen true.
    mach mal
    $result = mysql_query($query,$conn) or die(mysql_error());
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Ich habe folgenden Teil deines Scripts bei mir getestet - funktioniert einwandfrei:
      PHP-Code:
      $username "Peter"// Zum Testen
      $query "SELECT pass, level FROM zugriff WHERE name = '".$username."'"
      $result mysql_query($query,$conn); 
      $zeileholen mysql_fetch_array($result,MYSQL_ASSOC); 
      $verschl md5($passwort); 
      mysql_close($conn); 
      if (!
      $zeileholen

      die (
      "Sorry, aber dieser Name ist leider nicht bekannt !"); 

      Frage zurück:
      MYSQL_ASSOC ist mir bisher unbekannt, was ist das?
      Immer erst mal gucken, ob Benzin im Tank ist ...

      Kommentar


      • #4
        @MkJack

        Ich denke auch das das Script ok ist! Online läufts ja uach. auf meinem rechner nur nucht. vielleicht stimmt mit der php.ini was nicht.

        pas:

        MYSQL_ASSOC signalisiert php dass $zeileholen ein assoziatives Array werden soll. Dies ist eigentlich am besten handlebar, da $zeileholen[„pass“] dann den Wert von pass bekommt usw..

        (aus dem Tut von Joelh)

        Kommentar


        • #5
          @MelloPie

          Mit
          $result = mysql_query($query,$conn) or die(mysql_error());

          bekomme ich das elbe ergebnis

          Kommentar


          • #6
            Wenn es Online funktioniert wirst du wohl oder übel den Fehler in deiner lokalen Konfiguration suchen müssen, denn das Script scheint ja dann so weit in Ordnung zu sein.

            Bei mir habe ich nicht viel konfigurieren müssen, das lief alles fast auf Anhieb (PHP, MySQL) so, wie es auch Online läuft. Allerdings benutze ich lokal nicht den Apache, sondern den OmniHTTPd Webserver.
            Immer erst mal gucken, ob Benzin im Tank ist ...

            Kommentar


            • #7
              ja, ich denke auch, der Fehler liegt irgendwo in der Konfiguration

              Kommentar


              • #8
                Ich weiß jetzt woran es liegt!
                Ab PHP 4.1 werden die Variablen standardgemäß nicht mehr als Globals gespeichert.

                Man muß
                mit $_Post (ass.Arrays) arbeiten!

                $username = $_POST['username'];
                $passwort = $_POST['passwort'];


                dann laufen auch die Skripte wieder!

                Kommentar


                • #9
                  ... oder register_globals in der php.ini wieder anstellen. Das ist seit 4.2 nämlich standard-mäßig ausgeschaltet.
                  mein Sport: mein Frühstück: meine Arbeit:

                  Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

                  Kommentar

                  Lädt...
                  X