Wie erstelle ich ein LogIn-Skript?

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

  • #16
    Fehler?

    Hi,

    Die SQL Eingabe in phpmyadmin hat bei mir nicht funktioniert:
    PHP-Code:
     CREATE TABLE 'users' (
    'id' int(2unsigned NOT NULL auto_increment,
    'user' varchar(20NOT NULL default '',
    'pass' varchar(50NOT NULL default '',
    PRIMARY KEY ('id')

    Ich hab das ganze dann händisch gemacht. Ich glaube der Fehler liegt bei den Anführungszeichen, die gehören da ME nicht rein.

    Ein weiterer Fehler:
    PHP-Code:
     <?php $PHP_SELF ?>
    das muss natürlich so heißen:
    PHP-Code:
     <?php echo $PHP_SELF?>
    das scheint noch niemanden aufgefallen zu sein, weils die Formlare in dem Fall ja auch ohne Dateiname in action="" funktionieren.

    Gruß,
    Syco
    Zuletzt geändert von syco23; 09.07.2003, 02:38.
    [COLOR=darkblue].: 1+1=23 :.[/COLOR]

    Kommentar


    • #17
      Ich schein hier wohl der einzige zu sein:

      Die SQL Tabelle nach der Fehlermeldung von hand anzulegen und auch den User (Fehlermeldung) ging ja noch.

      Aber in der index.php komm ich maximal bis zeile 38- Syntax error zeile 38 -

      ich hock schon zwei Stunden vor dem Script und verzweifle. Den Thread hab ich durchgearbeitet. Ich hab php 4.1.2 am laufen (OS X).

      <?php
      session_start();
      require("connect.inc.php");
      ?>
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
      <html>
      <head>
      <title>LogIn zum Adminbereich</title>
      <link rel="stylesheet" type="text/css" href="style.css">
      </head>
      <body>
      <?php if(!isset($_POST['submit'])) { ?>
      <form action="<?php echo $PHP_SELF; ?>" method="post">
      __<table width="400" bgcolor="#000000" border="0" cellpadding="5" cellspacing="1" align="center">
      ____<tr>
      ______<td bgcolor="#e7e7e7" align="center" colspan="2">
      ______<b>Bitte erst anmelden</b>
      ______</td>
      ____</tr>
      ____<tr>
      ______<td width="170" bgcolor="#e7e7e7">Benutzername</td>
      ______<td width="230" bgcolor="#ffffff"><input type="text" name="username" size="20" class="input"<?php if($_POST['username'] != "" ) {echo " value=\"".$_POST['username']."\"";} ?>></td>
      ____</tr>
      ____<tr>
      ______<td width="170" bgcolor="#e7e7e7">Passwort</td>
      ______<td width="230" bgcolor="#ffffff"><input type="password" name="password" size="20" class="input"></td>
      ____</tr>
      ____<tr>
      ______<td bgcolor="#e7e7e7" align="center" colspan="2">
      ______<input type="submit" name="submit" value="Anmelden" class="button">
      ______</td>
      ____</tr>
      __</table>
      __</form>
      <?php
      }elseif(!isset ($_POST['username']) || $_POST['username'] == "") { echo "<p align=\"center\">Einen Benutzernamen brauchen wir schon ;-)<br><br><a href=\"index.php\">Zurück</a></p>"; }
      elseif(!isset($_POST['password']) || $_POST['password'] == "") {
      ____echo "<form action=\"index.php\" method=\"post\">";
      ____echo '<p align="center">Ein Passwort brauchen wir schon ;-)<br><br>';
      ____echo '<input type="hidden" name="username" value="'.$HTTP_POST['username'].'">';
      ____echo '<input type="submit" name="zurueck" value="Zurück">';
      ____echo '</p>';
      ____echo '</form>';
      __}
      else{
      ____$password = md5($password);
      ____$query = @mysql_query("SELECT user, pass FROM users WHERE user = '".$_POST['username']."'") or die('Select ist fehlgeschlagen!');
      ____$result = @mysql_fetch_array($query) or die('<p align="center">Sorry, aber dieser Benutzername existiert nicht!<br><a href="index.php">Zurück</a></p>');
      ____if($password != $result['pass']){
      ______echo '<form action="index.php" method="post">';
      ______echo '<p align="center">Sorry, aber dieses Passwort ist falsch!<br><br>';
      ______echo '<input type="hidden" name="username" value="'.$_POST['username'].'">';
      ______echo '<input type="submit" name="zurueck" value="Zurück"></p>';
      ______echo '</form>';
      ______die;
      ____}else{
      ______$user = $result['user'];
      ______session_register('user');
      ______echo '<p align="center">LogIn erfolgreich! :-)<br><br><a href="sichere_seite.php">Weiter</a></p>';
      ____}
      __}
      __?>
      __</body>
      __</html>

      liegts an den Augen oder am Hirn

      P.S. Mit dem PHP Tag wird der Post völlig verstümmelt
      Cocoa Entwicklertraining - Alles für die Apfelzucht

      Kommentar


      • #18
        Ich habe folgendes Problem,

        Warning: Cannot send session cookie - headers already sent by (output started at c:\apache\htdocs\blue2\index.php:1) in c:\apache\htdocs\blue2\index.php on line 2

        Warning: Cannot send session cache limiter - headers already sent (output started at c:\apache\htdocs\blue2\index.php:1) in c:\apache\htdocs\blue2\index.php on line 2

        Warning: Cannot add header information - headers already sent by (output started at c:\apache\htdocs\blue2\index.php:1) in c:\apache\htdocs\blue2\index.php on line 4


        Woran kann das liegen?!

        Kommentar


        • #19
          Steht GANZ DICK in der 3. Zeile der Forumsübersicht:

          http://www.php-resource.de/forum/sho...threadid=62965

          Kommentar


          • #20
            Danke für die Hilfe habs jetzt

            Kommentar


            • #21
              Also ich habe ein weiteres Problem. Wenn ich die Benutzerdaten eines Mitgliedes, das vorher auch in die Datenbank integriert habe, eingebe und das Dokumentabschicke, erscheint die Fehler Meldung

              PHP-Code:
              Select ist fehlgeschlagen
              Was kann der Fehler sein.

              Anbei habe ich den Quelltext nochmal gehangen und so angepasst, das er auf meine DB zugreifen kann.

              PHP-Code:
              <?php if(!isset($_POST['submit'])) { ?>
                       <form action="<?php $PHP_SELF ?>" method="post">
                           <table width="169" bgcolor="#000000" border="0" cellpadding="5" 
              cellspacing="1" align="center">
                  <tr>
                      <td bgcolor="#e7e7e7" align="center" colspan="2">
                             <b>Bitte erst anmelden</b>
                      </td>
                  </tr>
                  <tr>
                      <td width="86" bgcolor="#e7e7e7">Benutzername
                      </td>
                      <td width="84" bgcolor="#ffffff">
                             <input name="Username" type="text" class="input" size="6"

              maxlength="6"
              <?php if($_POST['Username'] != "" ) {echo ' value="'.$_POST['Username'].'"';} ?>>
                       </td>
                  </tr>
                  <tr>
                    <td width="86" bgcolor="#e7e7e7">Passwort</td>
                   <td width="84" bgcolor="#ffffff"><input type="Passwort"
              name="Passwort" size="10" class="input"></td>
                  </tr>
                  <tr>
                      <td bgcolor="#e7e7e7" align="center" colspan="2">
                      </td>
                  </tr>
                       </table><input type="submit" name="submit" value="Anmelden" class="button">

              </form>

              <?php
                
              }elseif(!$_POST['Username'] || $_POST['Username'] == "") {
                  echo 
              '<p align="center">Einen Benutzernamen brauchen wir schon ;-)<br><br>
              <a href="index.php">Zurück</a></p>'
              ;
                }elseif(!
              $_POST['Passwort'] || $_POST['Passwort'] == "") {
                  echo 
              '<form action="index.php" method="post">';
                  echo 
              '<p align="center">Ein Passwort brauchen wir schon ;-)<br><br>';
                  echo 
              '<input type="hidden" name="Username" value="'.$_POST['Username'].'">';
                  echo 
              '<input type="submit" name="zurueck" value="Zurück">';
                  echo 
              '</p>';
                  echo 
              '</form>';
                }else{
                  
              $Passwort = ($Passwort);
                  
              $query = @mysql_query("SELECT Username, Passwort FROM piloten WHERE 
              Username = '"
              .$_POST['Username']."'") or die('Select ist fehlgeschlagen!');
                  
              $result = @mysql_fetch_array($query) or die('<p align="center">Sorry, 
              aber dieser Benutzername existiert nicht!<br><a href="index.php">Zurück</a></p>'
              );
                 if(
              $Passwort != $result['Passwort']){
                    echo 
              '<form action="index.php" method="post">';
                    echo 
              '<p align="center">Sorry, aber dieses Passwort ist falsch!<br><br>';
                    echo 
              '<input type="hidden" name="Username" value="'.$_POST['Username'].'">';
                    echo 
              '<input type="submit" name="zurueck" value="Zurück"></p>';
                    echo 
              '</form>';
                    die;
                  }else{
                   
              $user $result['Username'];
                    
              session_register('Username');
                    echo 
              '<p align="center">LogIn erfolgreich! :-)<br><br>
              <a href="sichere_seite.php">Weiter</a></p>'
              ;
                  }
                }
                
              ?>
              Zuletzt geändert von PizzaScampia; 27.03.2006, 16:55.

              Kommentar


              • #22
                1. Forumsregeln lesen
                2. Code umbrechen, so wie es die Forumsregeln sagen
                3. Regeln nochmal durchlesen
                4. Anständige Fehlermeldung posten und mysql_error() nicht vergessen

                ... und bevor Du mich für unfreundlich hältst: Ich rette dich hier gerade vor einigen (berechtigten) Flames. Und die wären richtig unfreundlich

                Kommentar


                • #23
                  Hi,

                  sry wenn ich das so sage, aber das tutorial ist keins.
                  In einem tutorial geht es doch darum die best practice zu zeigen.
                  Das ist hier aber schlicht nicht der fall.

                  1) Rückgaben werden nicht auf fehler geprüft.
                  2) Man kann es nur mit einem bestimmten dbms verwenden,
                  hier wäre eine höhere abstraktion des backends angebracht
                  3) ansicht und logik sind zu stark gekoppelt
                  4) unnötig verwendung des performance-killers shutup-operator
                  5) die sql statements zum anlegen des db-shemas sind fehlerhaft
                  (einfache quotes statt backticks, btw. werden backticks nicht von
                  jedem dbms akzeptiert)
                  6) Benutzereingaben gehen z.T. ungeprüft in die backend-logik.

                  usw.

                  Das war jetzt nur das was mir beim drüber fliegen auffiel. Ich finde
                  es ja gut wenn sich jemand die mühe macht und ein tutorial schreibt
                  aber es nützt doch letztlich niemandem was wenn auf diese art
                  schlechte angewohnheiten verbreitet werden.

                  greets
                  (((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")

                  Kommentar


                  • #24
                    Ich habe gerade geschaut wo ich die Regeln finden kann, fandf sie aber nicht kann mir jemand den Link geben, damit ich es regelkonfirm bearbeiten kann?

                    Kommentar


                    • #25
                      "Erst lesen: Posten von Problemen (oder UNSERE REGELN)"
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #26
                        Ich hoffe es ist jetzt richtiger!

                        Kommentar


                        • #27
                          Original geschrieben von PizzaScampia
                          Ich hoffe es ist jetzt richtiger!
                          Bei 'ner 1024er Auflösung geht's bei mir immer noch vertikal über rund zwei Bildschirme ...
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar


                          • #28
                            So jetzt aber bei 1024 Auflösung!

                            Kommentar


                            • #29
                              Schön - dann liest du bitte jetzt die Regeln noch mal, denn da steht auch, was du als allererstes machen sollst, wenn MySQL-Abfragen "nicht funktionieren".
                              I don't believe in rebirth. Actually, I never did in my whole lives.

                              Kommentar


                              • #30
                                Ich soll den fehler schreiben und das habe ich. Wenn ich wüsste welche Aussage falsch ist hätte ich doch das Problem nicht. Odwer was möchtest du von mir!?

                                Kommentar

                                Lädt...
                                X