Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] LogIn Script mit Datenbank

Einklappen

Neue Werbung 2019

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

  • [Erledigt] LogIn Script mit Datenbank

    Guten Abend liebe Community,

    ich habe ein problem mit folgendem Code:

    PHP-Code:
    <?php
    error_reporting
    (-1);
    ini_set('display_errors'true);  

     
    session_start();
     include (
    "mysql.php");
    ?>

     <table align="center">
     <tr>
      <td><?php include ("navi.php"); ?></td>
     </tr>
    <form action="<?php $PHP_SELF ?>" method="POST">
     <tr>
      <td>
        <br><br><br><br>
        <a>Nickname:&nbsp;&nbsp;</a><input name="nick" type="text" size="20" maxlength="16"  value=""></p>
        <a>Password:&nbsp;&nbsp;&nbsp;</a><input name="pw" type="password" size="20" maxlength="16"  value=""></p>
        <input type="submit" value="Einloggen">
       </td>
      </tr>
     </table>
    </form>
    <?php

    $password 
    md5($_POST[password]);
    $query mysql_query("SELECT user,password FROM user WHERE $user = '$_POST[nick]'");
    $result mysql_fetch_array($query)or die('<p align="center">Dein eingegebener Benutzername war aber nicht ganz richtig!</p><br><a href="login.php">Zur&uuml;ck zum Login!</a>');
    if(
    $password != $result[password])
    {
    echo 
    '<p align="center">Dein eingebenes Passwort ist falsch!</p><br><a href="login.php">Zur&uuml;ck zum Login!</a>)';
    }
    else
    {
    $user $result[user];
    session_register(user);
    echo 
    '<p align="center">Login erfolgreich!</p>';
    }

    ?>
    Hierbei bekomme ich folgende Fehlermeldung:

    Code:
    Notice: Use of undefined constant password - assumed 'password' in /home/webpages/lima-city/zettel/html/Aufnahme/Login.php on line 26
    
    Notice: Undefined index: password in /home/webpages/lima-city/zettel/html/Aufnahme/Login.php on line 26
    
    Notice: Undefined variable: user in /home/webpages/lima-city/zettel/html/Aufnahme/Login.php on line 27
    
    Notice: Undefined index: nick in /home/webpages/lima-city/zettel/html/Aufnahme/Login.php on line 27
    
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/webpages/lima-city/zettel/html/Aufnahme/Login.php on line 28
    nachzulesen ist das gnze dort:
    http://zettel.lima-city.de/Aufnahme/Login.php


    kann mir vllt. jemand helfen? danke

    grüße

  • #2
    Zitat von Zettel Beitrag anzeigen
    Notice: Use of undefined constant password - assumed 'password'
    Spricht für sich selbst - eine Konstante mit dem Namen password hast du nicht definiert, deshalb nimmt PHP an, du hättest 'password' gemeint - also schreib das stattdessen hin.

    Notice: Undefined index: password
    Welchen Namen hat dein Formularfeld? Tipp: password ist es nicht.

    Notice: Undefined variable: user
    Warum setzt du $user als Spaltennamen in der Query ein?
    Wenn die Spalte in deiner Tabelle user heisst - dann schreib auch das hin.


    kann mir vllt. jemand helfen?
    Arbeite bitte ein Grundlagen-Tutorial durch.
    [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

    Kommentar


    • #3
      Mit deinen Tipps komme ich jetzt auf Folgenden Code:
      PHP-Code:
      <?php
      error_reporting
      (-1);
      ini_set('display_errors'true);  

       
      session_start();
       include (
      "mysql.php");
      ?>

       <table align="center">
       <tr>
        <td><?php include ("navi.php"); ?></td>
       </tr>
      <form action="<?php $PHP_SELF ?>" method="POST">
       <tr>
        <td>
          <br><br><br><br>
          <a>Nickname:&nbsp;&nbsp;</a><input name="nick" type="text" size="20" maxlength="16"  value=""></p>
          <a>Password:&nbsp;&nbsp;&nbsp;</a><input name="pw" type="password" size="20" maxlength="16"  value=""></p>
          <input type="submit" value="Einloggen">
         </td>
        </tr>
       </table>
      </form>
      <?php

      $password 
      md5($_POST['pw']);
      $query mysql_query("SELECT user, password FROM user WHERE user = $_POST[nick]");
      $result mysql_fetch_array($query)or die('<p align="center">Dein eingegebener Benutzername war aber nicht ganz richtig!</p><br><a href="login.php">Zur&uuml;ck zum Login!</a>');
      if(
      $password != $result[password])
      {
      echo 
      '<p align="center">Dein eingebenes Passwort ist falsch!</p><br><a href="login.php">Zur&uuml;ck zum Login!</a>)';
      }
      else
      {
      $user $result[user];
      session_register(user);
      echo 
      '<p align="center">Login erfolgreich!</p>';
      }

      ?>
      und folgende Fehlermeldungen:
      Code:
      Notice: Undefined index: pw in /home/webpages/lima-city/zettel/html/Aufnahme/Login.php on line 26
      
      Notice: Undefined index: nick in /home/webpages/lima-city/zettel/html/Aufnahme/Login.php on line 27
      
      Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/webpages/lima-city/zettel/html/Aufnahme/Login.php on line 28

      Ich habe schon das Schattenbaum und Quakenet Tutorial gemacht, aber wenn man dann ncihts darauß machen will stirbt das bedürfniss das zu lernen recht schnell, alos muss man sich ja irgendwelche Projekte ausdenken...
      (kennst du vllt. nochmehr tutorials, die nicht zu schwer sind aber trotzdem was brignen?)
      danke

      grüße
      grüße

      Kommentar


      • #4
        Zitat von Zettel Beitrag anzeigen

        Code:
        if (array_key_exists('pw',$_POST)) {
         $password = md5($_POST['pw']);
         $query = mysql_query("SELECT user, password FROM user WHERE user =  $_POST['nick']");
         $result = mysql_fetch_array($query)or die('<p align="center">Dein 
         ....
        }
        Da sind noch eine menge Fehler drin, deshalb nur als Idee , habe ich oben ein paar Befehle (fett) eingefügt.

        Meines Erachtens ein Thread für PHP-Einsteiger.

        Grüße
        Thomas

        Kommentar


        • #5
          1. ja php anfänger
          2. sql injection gefahr!

          Kommentar


          • #6
            Vorerst, ich bedanke mich für alle antworten hier...
            Ich habe nie gesat, das ich kein PHP Anfäger bin...
            Ich habe oben geschrieben das ich 2 Tutorials gemacht habe und jetzt dabei bin bisschen rumzuspielen mit PHP und MySQL...
            Nachdem ich nun auch die Tipps befolgt habe, kriege ich vor dem Absenden des Formulars keine Fehlermeldung mehr, aber danach kommt immernoch:
            Code:
            Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/webpages/lima-city/zettel/html/Aufnahme/Login.php on line 28
            Zeile 28 ist diese:
            PHP-Code:
            $result mysql_fetch_array($query)or die('<p align="center">Dein eingegebener Benutzername war aber nicht ganz richtig!</p><br><a href="login.php">Zur&uuml;ck zum Login!</a>'); 
            Dazu komme ich immer in den "or die" bereich...
            danke

            grüße

            Kommentar


            • #7
              Wie meinten mit "PHP-Anfänger", das dieser Thread am Besten in das Forum "PHP Anfänger" verschoben werden sollte.

              Bei jeder Funktion prüfen, ob der Returnwert gültig ist. In Deinem Fall die Variable $query

              Code:
              $query = mysql_query("SELECT user, password FROM user WHERE user = $_POST['nick']");
              if (!$query) {
                  die('Ungültige Abfrage: ' . mysql_error());
              }
              $result = mysql_fetch_array($query)or die('<p align="center">Dein eingegebener Benutzername war aber nicht ganz richtig!</p><br><a href="login.php">Zur&uuml;ck zum Login!</a>');
              Wenn $query ungültig (FALSE) ist, wird eine MySQL-Fehlermeldung ausgegeben, die hoffentlich weiter hilft.

              Grüße
              Thomas

              Kommentar


              • #8
                Zitat von thomas_w Beitrag anzeigen
                Wie meinten mit "PHP-Anfänger", das dieser Thread am Besten in das Forum "PHP Anfänger" verschoben werden sollte.

                Bei jeder Funktion prüfen, ob der Returnwert gültig ist. In Deinem Fall die Variable $query

                Code:
                $query = mysql_query("SELECT user, password FROM user WHERE user = $_POST['nick']");
                if (!$query) {
                    die('Ungültige Abfrage: ' . mysql_error());
                }
                $result = mysql_fetch_array($query)or die('<p align="center">Dein eingegebener Benutzername war aber nicht ganz richtig!</p><br><a href="login.php">Zur&uuml;ck zum Login!</a>');
                Wenn $query ungültig (FALSE) ist, wird eine MySQL-Fehlermeldung ausgegeben, die hoffentlich weiter hilft.

                Grüße
                Thomas
                danke, das war wirklich ein göttlicher Tipp

                Achso, ich dachte das Thema "Datenbanken" triffts am besten, da es ja an einer MySQL Abfrage gescheitert ist...

                Also, mein Fehler war ziemlich . Die Spalte in der Datenbank hieß nämlich nicht "user" sondern "name" dementsprechend konnte das ja alles nichts werden...

                Jetzt habe ich hoffentlich nurnoch ein Problem:

                Code:
                Ungültige Abfrage: Unknown column 'testchen' in 'where clause'
                Aus dieser Fehlermeldung würde ich schließen, das er in der Datenbank keinen Datensatz findet bei dem der name testchen ist, jedoch ist dort definitiv ein solcher vorhanden...

                woran könnte es noch liegen?

                grüße

                edit:
                Problem gelöst, es funktioniert jetzt...
                Mein probleme waren:
                1. ...WHERE user = $_POST['nick']"); habe ich einfach geändert in ... LIKE $_POST['nick']");
                2. meine Dateneinträge wurden per Hand eingetragen, dementsprechend hatten die ein normales passwort und kein Hash-Wert, deshalb konnte ich diesen dann nichtmehr abragen...

                Eine Fehlermeldung(Notiz) bekomme ich immernoch, aber trotzdem funktioniert alles:
                Code:
                Notice: Undefined index: user in
                $user = $result['user'];

                aber egal, es funktioniert und ich bedanke mich ganz herzlich bei allen hier im Forum die mir geholfee haben...
                danke

                grüße

                Kommentar


                • #9
                  Also viel verstanden scheinst du nicht zu haben beim „machen“ der Tutorials ...

                  Zitat von Zettel Beitrag anzeigen
                  Die Spalte in der Datenbank hieß nämlich nicht "user" sondern "name" dementsprechend konnte das ja alles nichts werden...
                  Eine Fehlermeldung(Notiz) bekomme ich immernoch, aber trotzdem funktioniert alles:
                  Notice: Undefined index: user in
                  $user = $result['user'];
                  Fällt dir was auf ...?
                  [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

                  Kommentar

                  Lädt...
                  X