php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 20.07.2011, 13:03  
Neuer Benutzer
 
Registriert seit: 20.07.2011
Beiträge: 16
PHP-Kenntnisse:
Anfänger
PHP-Flyer kann nur auf Besserung hoffen
Standard Eintragen von Datensätzen in MySQL-Datenbanken & Validieren

Hallo Leute,

Ich brauche Hilfe.. :/

Meine Frage:

Was muss ich bei einer Registration in die Datenbank eintragen, so dass der Username und das Passwort schön validiert werden aber beim Login keine Fehlermeldungen bringt?

Also, sodass der Login klappt & das ausgeben des Usernames keine Probleme bringt?

Ich hoffe, dass mir geholfen werden kann.

Genau so soll es bei allen Eingabefeldern ablaufen:
Statusmeldung
Privatnachrichten
Adminbereich
u.v.m.....
Ich habe überall Eingabefelder.

Ich habe verschiedenste Konstellationen mit
- htmlspecialchars();
- stripslashes();
- mysql_real_escape_string();
ausprobiert, doch ich finde keine wirklich funktionierende Lösung.

Ich danke jetzt schonmal für die Hilfe.
PHP-Flyer ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 20.07.2011, 13:09  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

http://wiki.selfhtml.org/wiki/Artikel:Kontextwechsel

Komplett durcharbeiten (auch die zweite Seite) - verstehen - in Zukunft anwenden - kein Problem mehr.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 20.07.2011, 13:15  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

1) Alle überflüssigen Leerzeichen entfernen. Es könnte jemand Leerzeichen hinter eine Eingabe packen, und die dürfen nicht mitverarbeitet werden:

PHP-Code:
$user trim($_POST['user']);
$pass trim($_POST['pass']); 
2) In die Tabelle werden die Passwörter nicht im Klartext, sondern als gesalzener Hash gespeichert:

PHP-Code:
$salt 'totalgeheimeszeugs123987';
$pass_sha1 sha1($pass $salt); 
Nun kann das gespeichert werden:
PHP-Code:
$ins "INSERT INTO user (`name`,`pass_sha1`) VALUES (
   '" 
mysql_real_escape_string($user) . "',
   '" 
mysql_real_escape_string($pass_sha1) . "')"
3) Wenn du die Userdaten wieder ausliest und sie im HTML-Context ausgibst, so müssen diese mit htmlspecialchars() entschärft werden:
PHP-Code:
<?php
$sql 
"SELECT name FROM user WHERE id=1";
$res mysql_query($sql);
$row mysql_fetch_assoc($res);
?>
<div>Name = <?php echo htmlspecialchars($row['name']); ?> </div>
stripslashes brauchst du nur dann, wenn dein Server magic quotes produziert.
http://de.php.net/manual/en/function...quotes-gpc.php
__________________
Warum denkt mein Hund eigentlich immer dann, wenn es an der Tür klingelt, es sei für ihn?
Wolla ist offline   Mit Zitat antworten
Alt 20.07.2011, 13:17  
Benutzer
 
Registriert seit: 04.04.2011
Beiträge: 46
PHP-Kenntnisse:
Fortgeschritten
MikO befindet sich auf einem aufstrebenden Ast
Standard

mysql_real_escape_string();

ist schonmal eine schöne idee bei der datenbankabfrage.

ich empfehle dann noch sowas wie

htmlentities();

für die daten selbst, und wenn das projekt wirklich ernst gemeint ist, solltest du dir noch ein paar gedanken um mysql injections machen, das wird dann aber ein größeres projekt
MikO ist offline   Mit Zitat antworten
Alt 20.07.2011, 13:20  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von MikO Beitrag anzeigen
ich empfehle dann noch sowas wie

htmlentities();

für die daten selbst, und wenn das projekt wirklich ernst gemeint ist, solltest du dir noch ein paar gedanken um mysql injections machen
Abgesehen davon, dass mysql_real_escape_string bereits das Mittel gegen SQL Injections ist, solltest du dir erst mal Gedanken über Zeichenkodierung machen - und dann htmlspecialchars verwenden, statt htmlentities.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 20.07.2011, 13:28  
Neuer Benutzer
 
Registriert seit: 20.07.2011
Beiträge: 16
PHP-Kenntnisse:
Anfänger
PHP-Flyer kann nur auf Besserung hoffen
Standard

Also.
Danke für die bisherigen Antworten, aber wasw ist jetzt mit einem gesalzenem Hash gemeint
Und kann mir vllt. einer bei den Codes helfen
Denn ich komme nicht so ganz mit, was ich nun von dem allem machen soll!
Wenn man sich einloggt, dann soll es ja auch klappen und das tut es ja nicht.
Was kann ich dagegen noch machen?

Bitte nicht böse werden.
PHP-Flyer ist offline   Mit Zitat antworten
Alt 20.07.2011, 13:30  
Benutzer
 
Registriert seit: 04.04.2011
Beiträge: 46
PHP-Kenntnisse:
Fortgeschritten
MikO befindet sich auf einem aufstrebenden Ast
Standard

ach ja, stimmt, _ich_ muss mir gedanken machen...
und ein billiges "mysql_real_escape_string" wird dir im ernstfall nicht die haut retten, sei dir dessen versichert.
MikO ist offline   Mit Zitat antworten
Alt 20.07.2011, 13:31  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von PHP-Flyer Beitrag anzeigen
Danke für die bisherigen Antworten, aber wasw ist jetzt mit einem gesalzenem Hash gemeint
http://www.google.com/search?q=gesalzener+hash

Zitat:
Und kann mir vllt. einer bei den Codes helfen
Denn ich komme nicht so ganz mit, was ich nun von dem allem machen soll!
Wenn man sich einloggt, dann soll es ja auch klappen und das tut es ja nicht.
Was kann ich dagegen noch machen?
Dich mit Grundlagen beschäftigen. http://www.php.de/php-einsteiger/489...nsammlung.html (Lerne Grundlagen | Quellensammlung)
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 20.07.2011, 13:37  
Benutzer
 
Registriert seit: 04.04.2011
Beiträge: 46
PHP-Kenntnisse:
Fortgeschritten
MikO befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von PHP-Flyer Beitrag anzeigen
Also.
Danke für die bisherigen Antworten, aber wasw ist jetzt mit einem gesalzenem Hash gemeint
damit ist gemein, dass passwörter für gewöhnlich nicht in klartext in der datenbank gespeichert werden, sondern dass aus dem passwort am einfachsten mit den funktionen sha1(); oder md5(); ein sogenannter hashwert oder "prüfsumme" berechnet wird, welche dann anstelle des passwortes in der datenbank ihren platz findet.

Zitat:
Und kann mir vllt. einer bei den Codes helfen
Denn ich komme nicht so ganz mit, was ich nun von dem allem machen soll!
erst wendest du vor der datenbankabfrage die funktion mysql_real_escape_string(); auf alle übergebenen werte an und speicherst sie in der datenbank.

bei der ausgabe bearbeitest du die daten noch einmal mit htmlspecialchars(); oder htmlentities(); damit etwaige html phrasen dir nicht deine seite zerschießen.
MikO ist offline   Mit Zitat antworten
Alt 20.07.2011, 13:42  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von MikO Beitrag anzeigen
ach ja, stimmt, _ich_ muss mir gedanken machen...
Ja, solltest du wenn - wenn du heutzutage immer noch htmlentities verwendest bzw. pauschal empfiehlst.

Zitat:
und ein billiges "mysql_real_escape_string" wird dir im ernstfall nicht die haut retten, sei dir dessen versichert.
Für Strings ist es das Mittel der Wahl.
Zahlwerte sind ggf. anders zu behandeln, da gebe ich dir Recht.

Zitat:
Zitat von MikO Beitrag anzeigen
erst wendest du vor der datenbankabfrage die funktion mysql_real_escape_string(); auf alle übergebenen werte an und speicherst sie in der datenbank.
Nein, Zahlwerte behandelst du bitte gesondert.
Wie, erklärt der bereits ganz zu Anfang verlinkte Artikel.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Website Einträge aus Mysql auslesen und mit Formular eintragen ActivStrake PHP Einsteiger 1 08.03.2011 13:14
MYSQL - Formulardaten in Datenbank eintragen lassen! Aimless Datenbanken 7 03.03.2011 13:37
MYSQL Abfrage von 4 Datenbanken da_mike PHP Einsteiger 47 08.02.2011 15:02
[Erledigt] Fehler beim eintragen in MySQL (PHP Formular)... Bend0r PHP Einsteiger 8 22.12.2010 14:06
[Erledigt] Problem beim Eintragen in die mysql Datenbank wnbscu PHP Tipps 2010 3 07.11.2010 14:24
[Erledigt] Datum in MySQL eintragen und auslesen hyperx PHP Tipps 2009 9 02.01.2010 19:04
Eintragen von Daten per Formular in MySQL Datenbank PHP Tipps 2004 11 07.06.2009 08:58
[Erledigt] Kann keine Daten in MySQL eintragen lutoma Datenbanken 5 24.12.2008 19:24
CSV Dateien in MySQL Datenbanken einfügen errox Datenbanken 11 03.04.2008 13:40
Probleme beim zusammenfügen von MySql Einträgen... Toby Datenbanken 5 25.03.2008 22:18
Zählen von MySql Datensätzen b++ PHP Tipps 2005 5 04.04.2005 16:34
Kann man Mysql Datenbanken abfragen ob Sie verfügbar sind ? Datenbanken 2 12.03.2005 16:39
text eintragen in mySQL Tables PHP Tipps 2005 2 05.02.2005 17:03
PHP und MySQL Datenbanken GELight Datenbanken 3 25.12.2004 09:56
Mysql Fehler beim auslesen von Datensätzen Datenbanken 4 19.10.2004 10:05

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql validieren, php datenbank insert daten entschärfen, php datensatz validierung, mysql validierte datebank, validieren mysql, htmlentities datenbankabfrage

Alle Zeitangaben in WEZ +2. Es ist jetzt 13:05 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum