Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Web Development
You last visited: Today at 03:24

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Was ist der Fehler an dieser Registration?

Discussion on Was ist der Fehler an dieser Registration? within the Web Development forum part of the Coders Den category.

Reply
 
Old   #1
 
xbernx's Avatar
 
elite*gold: 72
Join Date: Apr 2015
Posts: 484
Received Thanks: 74
Question Was ist der Fehler an dieser Registration?

Hi,
Ich hab ein PHP Dokument, welches Eingaben in eine MySQL Datenbank speichert. Allerdings gibt es mir einen Fehler aus, dass nicht auf die Datenbank zugegriffen werden kann. Was ist an dem Code falsch?

PHP Code:
<?php 

  $mysql_server 
'Database Server';
  
$mysql_username 'Username';
  
$mysql_password 'Password';
  
$mysql_dbname 'Database Name';

  
$connection mysql_connect($mysql_server$mysql_username) or die("Verbindung zur Datenbank konnte nicht aufgebaut werden!");
  
  
mysql_select_db($mysql_dbname$connection) or die("Datenbank konnte nicht ausgewählt werden");

$username $_POST["username"]; 
$passwort $_POST["passwort"]; 
$passwort2 $_POST["passwort2"]; 

if(
$passwort != $passwort2 OR $username == "" OR $passwort == ""
    { 
    echo 
"Eingabefehler. Bitte alle Felder korekt ausfüllen. <a href=\"eintragen.html\">Zurück</a>"
    exit; 
    } 
    } 
$passwort md5($passwort); 

$result mysql_query("SELECT id FROM login WHERE username LIKE '$username'"); 
$menge mysql_num_rows($result); 

if(
$menge == 0
    { 
    
$eintrag "INSERT INTO login (username, passwort) VALUES ('$username', '$passwort')"
    
$eintragen mysql_query($eintrag); 

    if(
$eintragen == true
        { 
        echo 
"Benutzername <b>$username</b> wurde erstellt. <a href=\"login.html\">Login</a>"
        } 
    else 
        { 
        echo 
"Fehler beim Speichern des Benutzernames. <a href=\"eintragen.html\">Zurück</a>"
        } 


    } 

else 
    { 
    echo 
"Benutzername schon vorhanden. <a href=\"eintragen.html\">Zurück</a>"
    } 
?>
xbernx is offline  
Old 10/02/2015, 15:59   #2
 
elite*gold: 0
Join Date: Mar 2010
Posts: 360
Received Thanks: 132
Ich sehe da mehrere Fehler

1) mysql ist deprecated

2) OR ist nicht für einen boolschen workflow gedacht. Nutze ||.
Die Bindung von OR ist zudem niedriger als von ||

3) Passwörter sollten nicht als md5 gespeichert werden, nutze password_hash.
Abwärskompatibilität kann durch gewährt werden

4)
Falsche Klammerung bei

Quote:
if($passwort != $passwort2 OR $username == "" OR $passwort == "")
{
echo "Eingabefehler. Bitte alle Felder korekt ausfüllen. <a href=\"eintragen.html\">Zurück</a>";
exit;
}
}

5) kein Schutz gegen SQL injections. Du Nutzt Variablen ohne sie zu escapen.
6) LIKE Nutzung ohne Wildcards ist nur Ressourcenverschwendung
7) if($eintragen == true) geht zwar, ist aber ein vergleich unterschiedlicher typen. Besser : if($eintragen){}

edit:
8) Du schließt <?php mit ?> am Ende. Das solltest du nicht tun.
Der Grund dahinter ist folgender:
Alles nach ?> wird als Zeichen angesehen und ausgegeben. Wenn man die header() allerdings erst später ausgibt, kann dies zu einem riesen Chaos werden. Ohne ?> passiert dies nicht.
Es gibt keine Verpflichtung <?php zu schließen.
Daifoku is offline  
Old 10/02/2015, 16:06   #3

 
snow's Avatar
 
elite*gold: 724
Join Date: Mar 2011
Posts: 10,479
Received Thanks: 3,318
Arrow General Coding -> Web Development

#moved

Ich bin kein Experte, aber hast du den Code evtl. einfach abkopiert und vergessen, "Database Server" etc. mit den richtigen Daten zu ersetzen?

Und ja, du solltest etwas modernes nehmen, wie z.B. MySQLi oder gleich eine vernünftige Programmiersprache wie Python.…
snow is offline  
Old 10/02/2015, 17:26   #4



 
Serraniel's Avatar
 
elite*gold: 0
The Black Market: 205/1/0
Join Date: May 2010
Posts: 6,853
Received Thanks: 5,106
Des Weiteren authentifizierst du dich an keiner Stelle mit deinem Passwort gegen den DB Server. Das wird die Hauptursache sein, dass die Verbindung geschlossen wird.

Trotzdem die anderen wichtigen genannten Punkte beachten!
Serraniel is offline  
Old 10/03/2015, 11:21   #5
 
Wieland11's Avatar
 
elite*gold: 99
Join Date: Jul 2010
Posts: 236
Received Thanks: 59
Quote:
Ich hab ein PHP Dokument, welches Eingaben in eine MySQL Datenbank speichert. Allerdings gibt es mir einen Fehler aus, dass nicht auf die Datenbank zugegriffen werden kann. Was ist an dem Code falsch?
Dann müsstest du erst einmal den Zugriffsnamen der Datenbank in der MySQL Verbindung abändern.

PHP Code:
  $mysql_server 'Database Server';
  
$mysql_username 'Username';
  
$mysql_password 'Password';
  
$mysql_dbname '[B][U]Database Name[/U][/B]';

  
$connection mysql_connect($mysql_server$mysql_username) or die("Verbindung zur Datenbank konnte nicht aufgebaut werden!");
  
  
mysql_select_db($mysql_dbname$connection) or die("Datenbank konnte nicht ausgewählt werden"); 
Ich habe es dir mal dick markiert. Am besten änderst du auch noch alle anderen Verbindungsdaten. Ich denke nicht, dass du sie geändert hast, wenn es schon bei der Datenbank scheitert.

Bei deiner ersten if Abfrage, fragst du ab, ob das password und das repassword übereinstimmen. Erst danach, fragst du ab, ob die Felder gefüllt sind oder nicht. Am besten machst du das andersrum und etwas besser. Wenn du überprüfen möchtest, ob Felder leer sind oder nicht, kannst du dafür empty oder !empty benutzen. Bei empty wird einfach gefragt, ob die Felder leer sind. Wird true ausgegeben, kommt deine Errormeldung. Wenn du !empty benutzt, wird gefragt ob du Felder nicht leer sind. Wenn true ausgegeben wird, kommt der nachfolgende Script. Demnach benutzen wir !empty , da empty für den weiteren Prozess mir etwas unübersichtlich erscheint. Danach kannst du eigentlich abfragen, ob password und repassword übereinstimmen, indem du in einer weiteren if Abfrage fragst, ob password1 auch gleich password2 ergibt.

Den Rest kann man auch noch verbessern. Aber ich denke die ersten Ratschläge sollten dir helfen und ein geordnetes Script geben. Ich bin mir nicht sicher, ob die Erklärung in deinem Fall Sinn ergibt, da ich mal denke, dass du das Script eh von einer anderen Seite entnommen hast. Deswegen schön lernen =)
Wieland11 is offline  
Reply

Tags
code, fehler, php


Similar Threads Similar Threads
Forum Fehler (Registration)
12/01/2014 - Metin2 Private Server - 9 Replies
Hallo, Ich habe ein Problem wenn sich Leute im Forum registrieren möchten und alles eingegeben haben und dann auf Absenden drücken kommt dieser Fehler.. epvpImg: *burp*, images are delicious. Hat jemand eine Ahnung woran es liegen könnte?
Fehler bei SP-INT Registration :(
05/28/2011 - Consoles - 0 Replies
Hallo liebe User, Ich hab es nicht ausgehalten ohne Online Black Ops. Ich habe meine PS3 von 3.55 Kmeaw auf 3.55 OFW gebracht. Anschließend auf 3.55.1 Rebug. Habe mir den 3.61 Spoof draufgezogen. Unter den Systeminformationen wird mir auch 3.61 angezeigt, also geht der Spoof ;). Im Selector auf DEBUG gestellt;) NP Enviromient oder so auf SP-INT gestellt... PS3 Neugestartet... Auf "Im PSN Einschreiben" geklickt... Doch wenn ich dann auf "Neues Konto erstellen" Klicke kommt die...
Wo ist der fehler bei dieser Bioquest ?
04/03/2011 - Metin2 Private Server - 7 Replies
hey der die quest startet nicht mit level 120 und ich weiß nicht wieso. ich bitte um hilfe oder um fehler beseitigung ------------------------------------------------- --- --COLLECT QUEST_lv120 --METIN2 Collect Quest ------------------------------------------------- --- quest collect_quest_lv120 begin state start begin end
wo is der fehler in dieser quest
05/12/2010 - Metin2 Private Server - 3 Replies
immer wenn ich die quest versuche zum laufen zu bringen bekomme ich diesen fehler: test3.quest:106: state name not found : _COMPLETE_ Abort trap (core dumped) wo is der fehler hier: sollte nur ne test quest werden: quest test3 begin state start begin when login or levelup or enter with pc.get_level() >= 80 begin
[Registration]Fehler - Bug!
11/25/2009 - Metin2 Private Server - 4 Replies
moin moin com ;) Ich habe folgendes Problem: Ich versuche mich schon seit -- ca.20mins -- auf einem Chinesischen Pserver anzumelden .... Ich gebe bei Der "Regi" alles normal ein ... Captcha ist ebenfalls immer richtig .....



All times are GMT +1. The time now is 03:26.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.