Sponsor-Board.de
Thema geschlossen  Thema schreiben 

PHP-Problem

Verfasser Nachricht

Beiträge: 287
Registriert seit: Feb 2012
Status: offline


Beitrag: #1
PHP-Problem

Guten Abend,

ich habe gerade ein kleines Problem.
Und zwar möchte ich mir mit PHP und MySQL ein kleines Login Script inkl. Registrierung realisieren.
Das Registrierungs Script hab ich schon, funktioniert auch einwandfrei.
Aber bei dem Login-Script hakts richtig. Es kommt ständig die Fehlermeldung, dass die Daten falsch wären.

Hier ein Bild der MySQL Datenbank:

   

So sieht meine register.php aus:

PHP-Code:
<?php
        
include('mysql_connect.php');
        
        
        
//Formular-Daten übermittlung an die Variablen
        
if(isset($_POST['username'])) $username=$_POST['username'];
        if(isset(
$_POST['password'])) $password=md5($_POST['password']);
        if(isset(
$_POST['password2'])) $password2=md5($_POST['password2']);
        if(isset(
$_POST['email'])) $email=$_POST['email'];
        if(isset(
$_POST['name'])) $name=$_POST['name'];
        
        
//Prüfen ob die Variablen einen Wert enthalten
        
if(isset($username,$password,$password2,$email,$name))
        {
        
            
//Prüfen ob die Formular-Felder leer sind
            
if($username=="" OR $password=="" OR $password2=="" OR $email=="" OR $name=="")
            {
            echo 
'Bitte füllen Sie alle Felder aus!';
            }
            else
            {
                
//Prüfen ob die beiden Passwörter übereinstimmen
                
if($password==$password2)
                {
                
                
//MySQL-Abfrage, ob der eingegebene Benutzername bereits vorhanden ist
                //Anschließende Abfrage der Spalte.
                
$result mysql_query("SELECT id FROM login WHERE username LIKE '$username'"); 
                
$menge mysql_num_rows($result);
                    
                    
//Prüfen ob keine Spalte mit dem Benutzername vorhanden ist.
                    
if($menge==0)
                        {
                            
                            
//Wenn ja, in die Tabelle username, password, email und name eintragen
                            //Anschließende speicherung des Ergebnises in die Variable $eintragen
                            
$eintrag "INSERT INTO login (username, password, email, name) VALUES ('$username', '$password', '$email', '$name')"
                            
$eintragen mysql_query($eintrag);
                            
                            
//Prüfen ob erfolgreich gespeichert wurde
                            
if($eintragen==true)
                            {
                                echo 
'Sie haben sich erfolgreich registriert und können sich nun einloggen!';
                            }
                            else
                            {
                                echo 
'Registrierung fehlgeschlagen, bitte versuchen Sie es erneut!';
                            }
                        }
                    else
                    {
                        echo 
'Benutzername wird bereits verwendet, bitte versuchen Sie es erneut!';
                    }
                }
                else
                {
                echo 
'Die Passwörter müssen übereinstimmen!';
                }
            
            
            
            }
            
        
            
        
        }
    
        
        
?>


Und so sieht im Moment die login.php aus:

PHP-Code:
<?php
session_start
();
include(
'mysql_connect.php');
mysql_select_db('test') or die('Die Datenbank konnte nicht ausgewählt werden!');


if(isset(
$_POST['username'])) $username=$_POST['username'];
if(isset(
$_POST['password'])) $password=md5($_POST['password']);
if(isset(
$_POST['password2'])) $password2=md5($_POST['password2']);

if(isset(
$username,$password,$password2))
{

    

    if(
$username=="" OR $password=="" OR $password2=="")
    {
    echo 
'Bitte füllen Sie alle Felder aus!';
    exit;
    }    
    
    
        
        
$query_ergebnis mysql_query("SELECT username, password FROM login WHERE username LIKE '$username' LIMIT 1"); 
        
$row mysql_fetch_object($query_ergebnis);
        
        if(
$row->password == $password)
            {
                
$_SESSION['username'] = $username;
                echo 
'Willkommen',$username,',Sie haben sich erfolgreich eingeloggt.';
            }
            else
            {
            echo 
'Die eingegebenen Daten waren leider falsch, versuchen Sie es bitte erneut!'
            }
        
    
    


}



?>


Bitte helft mir Smile.
Ich komm da einfach nicht mehr weiter...

MfG


On the 8th day, god created Linux.

02.10.2012 21:40
 
Alle Beiträge dieses Benutzers finden

Beiträge: 3.413
Bewertung: 33
Registriert seit: Oct 2010
Status: offline


Beitrag: #2
RE: PHP-Problem

du musst das Passwort aus der Datenbank auch mit md5() vergleichen edit: (oops, falsch gesehen)

das Skript ist aber nicht wirklich sicher, nebenbei


Portfolio: [Link: Registrierung erforderlich]

Projekte
[Link: Registrierung erforderlich]
[Link: Registrierung erforderlich]

Dieser Beitrag wurde zuletzt bearbeitet: 02.10.2012 21:45 von Aaron.

02.10.2012 21:44
 
Alle Beiträge dieses Benutzers finden

Beiträge: 287
Registriert seit: Feb 2012
Status: offline


Beitrag: #3
RE: PHP-Problem

Das mit md5 hab ich auch zuerst gedacht, aber ich lasse es als md5 eintragen und vergleichen.

Ich weiß das es nicht sicher ist, soll auch nur zur Übung sein, da ich mir gerade PHP aneigne Wink.


On the 8th day, god created Linux.

02.10.2012 21:49
 
Alle Beiträge dieses Benutzers finden

Beiträge: 71
Bewertung: 0
Registriert seit: Jul 2012
Status: offline


Beitrag: #4
RE: PHP-Problem

Ok da sollten ein paar kleine sachen geändert werden.

ich fange mal mit der Datenbank an:

Ich sehe das Problem, dass das passwort Feld zu klein ist. eine md5 summe hat mehr als 25 zeichen. Hier mal ein bsp 68e2ee4fecb8e89aaa54f11835b35f95.

Des weiteren solltest du die eingaben welche durch die Eingabefelder kommen erst mal überprüfen, da man sonst SQL-Injections durchführen kann. Das tust du unteranderem mit [Link: Registrierung erforderlich] .

Danach würde ich die MYSQL befehle noch bisschen ändern. Du hast bisher "INSERT INTO login (username, password, email, name) VALUES ('$username', '$password', '$email', '$name')"; aber besser währe es per "INSERT INTO login (`username`, password, email, name) VALUES ('$username', '$password', '$email', '$name')"; . Also damit gemeint sind die `spaltenname` so aussehen sollten.

Solltest du die datenbank von 25 Zeichen auf 32 geändert haben wenn ich mich nicht verzählt habe sollte es nun gehen Wink aber natürlich erst neues passwort welches nicht abgeschnitten wurde setzen.

Gruß Marco

02.10.2012 22:02
 
Alle Beiträge dieses Benutzers finden

Beiträge: 287
Registriert seit: Feb 2012
Status: offline


Beitrag: #5
RE: PHP-Problem

Vielen Dank Marco Smile.
Jetzt geht es einwandfrei Smile.
Ich bin so blöd ^^
Ein einfacher Leichtsinnsfehler ^^

MfG


On the 8th day, god created Linux.

02.10.2012 22:11
 
Alle Beiträge dieses Benutzers finden
Thema geschlossen  Thema schreiben 

 Druckversion anzeigen
 Thema einem Freund senden
 Thema abonnieren
 Thema zu den Favoriten hinzufügen

Sponsor-Board.de

Community
Über uns
Partner
Powered by Mybb: Copyright 2002-2024 by MyBB Group - Deutsche-Übersetzung von Mybb.de
 
© 2007-2024 Sponsor-Board.de - Hosted by OVH

Willkommen auf SB!   Sie benötigen ein Sponsoring?   1. Anmelden   2. Sponsoring-Anfrage erstellen   3. Nachrichten von Sponsoren erhalten   Kostenlos!   Jetzt registrieren