1. Dashboard
  2. Artikel
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  1. HTML - Webmaster Forum
  2. Programmierung - Entwickler Forum
  3. PHP Forum - Apache - CGI - Perl - JavaScript und Co.

PHP Login Script

  • Redtheets
  • 5. Februar 2005 um 03:05
  • 1
  • 2
  • 3
  • Redtheets
    Azubi(ne)
    Beiträge
    48
    • 5. Februar 2005 um 03:05
    • #1

    ich hab zZ einen loginbereich auf meiner seite.
    jedoch kann man sich nicht registrieren....
    muss die user manuell einfügen..
    wie kann ich das so machen, das sich die user selber reggen können?

    hier mal der aktuelle code, von der datei, mit der ich die user erstelle:


    Code
    ?php 
    // Definition der Benutzer 
    $benutzer[0]["Nickname"] ="assa"; 
    $benutzer[0]["Kennwort"] = "sdffs"; 
    $benutzer[0]["Nachname"] = "sdfsdf"; 
    $benutzer[0]["Vorname"] = "sfdfsd"; 
    
    
    $benutzer[1]["Nickname"] = "ghnhgnghng"; 
    $benutzer[1]["Kennwort"] = "sfdfdsdfs"; 
    $benutzer[1]["Nachname"] = "jhmhj"; 
    $benutzer[1]["Vorname"] = "hgnhgnhgn"; 
    
    
    // Sie können an dieser Stelle beliebig viele Benutzer anlegen. 
    // Achten Sie dabei nur auf die Fortführung der Nummer. 
    
    
    // Aufbau der Datenbankverbindung 
    $connectionid  = mysql_connect ("localhost", "*******", "******"); 
    if (!mysql_select_db ("********", $connectionid)) 
    { 
      die ("Keine Verbindung zur Datenbank"); 
    } 
    
    
    // Zuerst alle Datensätze löschen um keine Dopplungen zu bekommen. 
    mysql_query ("DELETE FROM benutzerdaten"); 
    
    
    // Daten eintragen 
    while (list ($key, $value) = each ($benutzer)) 
    { 
      // SQL-Anweisung erstellen 
      $sql = "INSERT INTO ". 
        "benutzerdaten (Nickname, Kennwort, Nachname, Vorname) ". 
      "VALUES ('".$value["Nickname"]."', '". 
                           md5 ($value["Kennwort"])."', '". 
                           $value["Nachname"]."', '". 
                           $value["Vorname"]."')"; 
      mysql_query ($sql); 
    
    
      if (mysql_affected_rows ($connectionid) > 0) 
      { 
        echo "Benutzer erfolgreich angelegt.
    \n"; 
      } 
      else 
      { 
       echo "Fehler beim Anlegen der Benutzer.
    \n"; 
      } 
    } 
    ?>
    Alles anzeigen


    und die id muss immer eins höher werden, logischerweiße...
    bitte um hilfe.
    also den code :D


    danke

  • Rocco
    Kaiser(in)
    Beiträge
    2.557
    • 5. Februar 2005 um 21:38
    • #2

    doppelposts bringen dich auch nicht schneller ans ziel :-/

    ...ich mein ich weiß wies geht, nur erwartest du jetzt dass ich dir das "programmiere"? ich glaub wenn du eine konkrete frage hast, wird dir sicher schnell geholfen, nur bei sowas... ich (und viele andere) hab leider keine zeit dir die arbeit abzunehmen. dein problem ist individuell.

    mfg

    [Blockierte Grafik: http://rocco.forum-hilfe.de/image/userbar.png]

  • PPP
    Schüler
    Beiträge
    84
    • 5. Februar 2005 um 22:11
    • #3

    ALso ám besten du lernst das und versuchst das dann selber zu schreiben! Habe ich auch^^


    Also als erstes brauchen wir ja ein Forumlar also das wo der Jenige
    die Daten eintragen kann:

    Code
    <div align="center"><form method="post" action="seitenname.php?am=true">
    L o g i n N a m e :<input type="text" name="name" value="">
    
    
    E - M a i l :<input type="text" name="mail" value="">
    
    
    P a s s w o r t :<input type="password" name="passwort" value="">
    
    
    <input type="submit" name="button" value=" Anmelden ">
    </form></div>
    
    
    <?PHP
    if ($am == "true")
    {
    include ("db.php");
    mysql_query("INSERT INTO
    DATENBANKNAME(name,passwort, mail)VALUES('$name','$passwort','$mail')");
    mysql_close();
    }
    if($am == "false")
    ?>
    
    
    <?
    if($am == "true")
    echo"Ihr Account wurde erfolgreich angelegt. Du kannst dich nun mit deinen Daten einloggen.";
    ?>
    
    
    // db.php (neue Seite muss im Selben ordner sein)
    <?
    $dbname="namederdatenbank";
    $dbhost="localhost";
    $dbuser="benutzername";
    $dbpass="passwort";
    mysql_connect($dbhost,$dbuser,$dbpass);
    mysql_select_db($dbname);
    ?>
    Alles anzeigen


    Also wenn du alles sofort verstehst dann ist gut, ansonsten frag einfach!

    Ach ja noch was wichtiges :
    du siehst ja die variable

    Code
    $am == "true"


    du musst auf den Link zur Seite(also der Link der dich hierhin führt)
    folgendes eintragen seitenname.php?am=false
    Sonst wird immer sofort in die Datenbank eingetragen!

    http://www.spacetactics.de.vu/
    http://systemstorm.sy.funpic.de/

  • Redtheets
    Azubi(ne)
    Beiträge
    48
    • 5. Februar 2005 um 23:53
    • #4

    also formular ist ja kein problem, aber das die id immer eins mehr ist, und das pw verschlüsselt gespeichert wird, das kann ich nicht.

  • PPP
    Schüler
    Beiträge
    84
    • 6. Februar 2005 um 00:02
    • #5

    gut dann musst du aber den loginskript auch anders machen!
    Also dann mach das so:

    Code
    <div align="center"><form method="post" action="seitenname.php?am=true"> 
    L o g i n N a m e :<input type="text" name="name" value="">
     
    E - M a i l :<input type="text" name="mail" value="">
     
    P a s s w o r t :<input type="password" name="passwort" value="">
     
    <input type="submit" name="button" value=" Anmelden "> 
    </form></div> 
    
    
    <?
    $passwort2 = MD5("$passwort");
    ?>
    
    
    <?PHP 
    if ($am == "true") 
    { 
    include ("db.php"); 
    mysql_query("INSERT INTO 
    DATENBANKNAME(id, name, passwort, mail)VALUES('$name','$passwort2','$mail')"); 
    mysql_close(); 
    } 
    if($am == "false") 
    ?> 
    
    
    <? 
    if($am == "true") 
    echo"Ihr Account wurde erfolgreich angelegt. Du kannst dich nun mit deinen Daten einloggen."; 
    ?> 
    
    
    // db.php (neue Seite muss im Selben ordner sein) 
    <? 
    $dbname="namederdatenbank"; 
    $dbhost="localhost"; 
    $dbuser="benutzername"; 
    $dbpass="passwort"; 
    mysql_connect($dbhost,$dbuser,$dbpass); 
    mysql_select_db($dbname); 
    ?>
    Alles anzeigen

    und mit der id musst du eine neue Seite machen in der folgender Code steht!

    Code
    <?
    include ("db.php"); 
    mysql_query("CREATE TABLE users (
    id int(255) NOT NULL auto_increment,
    name varchar(100) NOT NULL,
    mail varchar(100) NOT NULL,
    passwort varchar(100) NOT NULL,
    PRIMARY KEY (id)
    );");
    
    
    mysql_close();
    echo "Die Tabelle wurde angelegt";
    ?>
    Alles anzeigen

    dann musst du diese seite einfach nur ein mal aufrufen!! Und fertig!

    Erklärung:
    Mit

    Code
    <?
    $passwort2 = MD5("$passwort");
    ?>


    wird das passwort in MD5 umgewandelt MD5 ist der verschlüsselungscode!

    und:

    Code
    <?
    ....
    id int(255) NOT NULL auto_increment,
    ....
    ?>

    auto_increment legt fest das bei jedem neuen eintrag automatisch ein neuer eintrag +1 zum voherigen eingefügt wird!

    http://www.spacetactics.de.vu/
    http://systemstorm.sy.funpic.de/

  • Redtheets
    Azubi(ne)
    Beiträge
    48
    • 6. Februar 2005 um 00:08
    • #6

    funkt leider nicht...
    ich poste mal das, was ich hab und verwend.
    ich habs schon versucht, mit nem normalen formular, aber irgendwie klappts nicht..
    kA warum... :cry:

  • Redtheets
    Azubi(ne)
    Beiträge
    48
    • 6. Februar 2005 um 00:14
    • #7

    formular.php

    PHP
    <?php 
    // Definition der Benutzer 
    $benutzer[0]["Nickname"] ="adsdsa"; 
    $benutzer[0]["Kennwort"] = "sdffds"; 
    $benutzer[0]["Nachname"] = "dsadsr"; 
    $benutzer[0]["Vorname"] = "sdasdsda"; 
    
    
    $benutzer[1]["Nickname"] = "sadsadsdasda"; 
    $benutzer[1]["Kennwort"] = "sadsdasadsda"; 
    $benutzer[1]["Nachname"] = "sadsadsdsdasda"; 
    $benutzer[1]["Vorname"] = "sadsadsadsdasda"; 
    
    
    // Sie können an dieser Stelle beliebig viele Benutzer anlegen. 
    // Achten Sie dabei nur auf die Fortführung der Nummer. 
    
    
    // Aufbau der Datenbankverbindung 
    $connectionid  = mysql_connect ("localhost", "name", "pw"); 
    if (!mysql_select_db ("dbname", $connectionid)) 
    { 
      die ("Keine Verbindung zur Datenbank"); 
    } 
    
    
    // Zuerst alle Datensätze löschen um keine Dopplungen zu bekommen. 
    mysql_query ("DELETE FROM benutzerdaten"); 
    
    
    // Daten eintragen 
    while (list ($key, $value) = each ($benutzer)) 
    { 
      // SQL-Anweisung erstellen 
      $sql = "INSERT INTO ". 
        "benutzerdaten (Nickname, Kennwort, Nachname, Vorname) ". 
      "VALUES ('".$value["Nickname"]."', '". 
                           md5 ($value["Kennwort"])."', '". 
                           $value["Nachname"]."', '". 
                           $value["Vorname"]."')"; 
      mysql_query ($sql); 
    
    
      if (mysql_affected_rows ($connectionid) > 0) 
      { 
        echo "Benutzer erfolgreich angelegt.
    \n"; 
      } 
      else 
      { 
       echo "Fehler beim Anlegen der Benutzer.
    \n"; 
      } 
    } 
    ?>
    Alles anzeigen


    login.php

    PHP
    <?php 
    // Session starten 
    session_start (); 
    
    
    // Datenbankverbindung aufbauen 
    $connectionid = mysql_connect ("localhost", "name", "dbpw"); 
    if (!mysql_select_db ("dbname", $connectionid)) 
    { 
      die ("Keine Verbindung zur Datenbank"); 
    } 
    
    
    $sql = "SELECT ". 
        "Id, Nickname, Nachname, Vorname ". 
      "FROM ". 
        "benutzerdaten ". 
      "WHERE ". 
        "(Nickname like '".$_REQUEST["name"]."') AND ". 
        "(Kennwort = '".md5 ($_REQUEST["pwd"])."')"; 
    $result = mysql_query ($sql); 
    
    
    if (mysql_num_rows ($result) > 0) 
    { 
      // Benutzerdaten in ein Array auslesen. 
      $data = mysql_fetch_array ($result); 
    
    
      // Sessionvariablen erstellen und registrieren 
      $_SESSION["user_id"] = $data["Id"]; 
      $_SESSION["user_nickname"] = $data["Nickname"]; 
      $_SESSION["user_nachname"] = $data["Nachname"]; 
      $_SESSION["user_vorname"] = $data["Vorname"]; 
    
    
      header ("Location: index.php"); 
    } 
    else 
    { 
      header ("Location: formular.php?fehler=1"); 
    } 
    ?>
    Alles anzeigen


    checkuser.php
    (das includier ich auf den geschützten seiten)

    PHP
    <?php 
    session_start (); 
    if (!isset ($_SESSION["user_id"])) 
    { 
      header ("Location: formular.php"); 
    } 
    ?>


    ich hoffe du kennst dich da aus ^^.
    das einfache war, das ich nur eine form eingebaut hab, und es hat funktioniert....

    ich kenn mich da kaum aus..
    aber ich brauch das...


    und hier noch die form, aber ich glaub die ist egal, oder?

    Code
    <form action="login.php" method="post"> 
      Name: <input type="text" name="name" size="19">
     
      Kennwort: <input type="password" name="pwd" size="19">
     
      <input type="submit" value="Login"> 
    </form>
  • Redtheets
    Azubi(ne)
    Beiträge
    48
    • 6. Februar 2005 um 11:59
    • #8

    so, ich hab mal alles zusammengestellt, und in ei nrar archiv gepackt.
    hier könnt ihr es euch anschauen.
    wäre echt dankbar, wenn mir jemand helfen könnte.

    will eine art formular, wo man sich reggen kann.
    nur zur info:
    ich kenn mich kaum in html und php aus...
    hab aber gesagt, das ich mich auskenne.
    mein fehler ^^
    naja, bin mod von nem browsergame, und hab gesagt ich würde sowas machen.

    ich weiß, ich bin selber schuld und so, aber bitte helft mir!!!!
    schau euch einfach mal an, was ich hab.
    vielleicht kann mir ja einer von euch helfen.
    wäre echt nett.
    danke

    Dateien

    bitte_helft_mir.rar 4,37 kB – 138 Downloads
  • PPP
    Schüler
    Beiträge
    84
    • 6. Februar 2005 um 15:22
    • #9

    mmm... dazu habe ich keine zeit alles umzu schreiben aber das was ich dir mehr mals geschrieben habe wenn du das richtig ersetzt dann funktioniert das!! Bei mir geht es ja auch ich arbeite auch an einem Browsergame!! Und bis auf der Counter geht auch alles....
    Kannst du dir ja mal angucken ! Als beweis das es bei mir geht:
    http://spacetactics.sp.funpic.de/
    Und auf der ersten Seite die Rechtschreibung und grama nicht beachten^^...Naja ist zwar noch nicht die neuste Version aufm server aber guck es dir einfach an....

    http://www.spacetactics.de.vu/
    http://systemstorm.sy.funpic.de/

  • Redtheets
    Azubi(ne)
    Beiträge
    48
    • 6. Februar 2005 um 15:25
    • #10

    ich schreib kein bg, das macht der admin.
    ach ja, funpiic hat browsergame sverboten!
    dr admin war auch dort, hat sich aber jetzt webspace+alles was man fürn bg bracht, gekauft.

  • PPP
    Schüler
    Beiträge
    84
    • 6. Februar 2005 um 15:26
    • #11

    ja wenn funpic browsergames verbieten will dann solln se das tun ich habe ja alle daten auf meinem rechner und wenn sie das machen dann ziehe ich um^^

    http://www.spacetactics.de.vu/
    http://systemstorm.sy.funpic.de/

  • Redtheets
    Azubi(ne)
    Beiträge
    48
    • 6. Februar 2005 um 15:33
    • #12

    aber kannst du mir nicht BITTE helfen?
    vielleicht kann dir der admin auch ein wenig helfen.
    sein bg ist echt geil.
    und das spielprinzip ist auch endlich mal was neues.
    der kennt sich da voll gut aus.

    zZ ist die seite off.
    aber schau halt ins alte forum. und wennst willst auch ins neue.
    aber im alten kannst viel nachlesen.
    http://www.magicforrest.de


    ach ja:
    Metallmine: (Stufe 57) bauen
    Die Metallmine liefert den Rohstoff Metall, den du zum bauen
    von Gebäuden und Schiffen benötigst.Benötigt Metall:

    Kristallmine: (Stufe 32) bauen
    Die Kristalmine liefert den Rohstoff Metall, den du zum bauen
    von Gebäuden und Schiffen benötigst.

    Solaranlage: (Stufe 54) bauen
    Die Solaranlage wird benötigt um den Planeten mit Strom zu versorgen.
    Ohne würde die Produktion der Rohstoffe auf
    dem Planten zusammenbrechen.

    Raumschiffswerft: (Stufe 29) bauen

    Die Raumschiffswerft ermöglicht es dir Schiffe zu bauen die für den
    Transport und das Kämpfen mit anderen Völkern
    ermöglicht wird.

  • Redtheets
    Azubi(ne)
    Beiträge
    48
    • 6. Februar 2005 um 15:49
    • #13

    und login fürs bg gibts ja schon!!!

    das ist nur mehr für die seite selber, und ihc hab halt gesagt, ich würde das genre machen.
    also das bg von meinem "chef" ist komplett spielbar, und voll geil.
    sag ich jetzt nicht einfach so:
    bis jetzt das beste bg was ich gezockt hab!!!

  • GreenRover
    Forum Guru
    Beiträge
    4.787
    • 6. Februar 2005 um 16:27
    • #14

    Ich dneke mal das du das ID Feld in deiner DB nich auf auto increment hast deswegen ist das ganze leicht db lastig.

    PS. Das ganze ist nicht getestet und mal ebend aus dem stehgreif gezogen!!!

    Dateien

    test.rar 4,29 kB – 130 Downloads
  • Redtheets
    Azubi(ne)
    Beiträge
    48
    • 6. Februar 2005 um 16:36
    • #15

    DANKE!!!
    Werde es gleich mal testen :D

  • Redtheets
    Azubi(ne)
    Beiträge
    48
    • 6. Februar 2005 um 16:40
    • #16

    Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in /..../register.php on line 117


    und was heißt das jetzt ? ^^

  • Redtheets
    Azubi(ne)
    Beiträge
    48
    • 6. Februar 2005 um 16:48
    • #17

    und wenn ich die zeile zu ner bemerkung mach (//) dann ist zeile 128 falsch..
    liegt das am echo befehl?
    weil immer ist ein echt davor...
    aber echo ist doch nur eine ausgabe, so wie print, oder?

  • PPP
    Schüler
    Beiträge
    84
    • 6. Februar 2005 um 16:59
    • #18

    jad asliegt daran das du html direkt in den php befehl gepackt hast!!

    else { echo "Fehler beim Speichern!!!!"; }
    zb darein darfst du kein html befehl packen!!

    http://www.spacetactics.de.vu/
    http://systemstorm.sy.funpic.de/

  • Redtheets
    Azubi(ne)
    Beiträge
    48
    • 6. Februar 2005 um 17:04
    • #19

    und wie funkt das dann richtig??????

  • PPP
    Schüler
    Beiträge
    84
    • 6. Februar 2005 um 17:08
    • #20

    ja also ich habe das zwar korregiert aber dann zeigt er bei dem absschluss einen fehler an!!

    Parse error: syntax error, unexpected $end in C:\apachefriends\xampp\htdocs\test\register.php on line 119

    das ist bei mir die:

    Code
    ?>


    ^^

    also muss dazwischen noch irgend was sein....aber bisher habe ich nichts gefunden!!

    http://www.spacetactics.de.vu/
    http://systemstorm.sy.funpic.de/

    • 1
    • 2
    • 3

Tags

  • www
  • html
  • tex
  • mod
  • anmelden
  • problem
  • fenster
  • input
  • version
  • code
  • tag
  • php
  • fehler
  • auto
  • löschen
  • div
  • erkennen
  • formular
  • scripte
  • mysql
  • klauen
  • variable
  • select
  1. Datenschutzerklärung
  2. Impressum
Community-Software: WoltLab Suite™
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
Zitat speichern