php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 30-04-2005, 14:41
Colezero
 Newbie
Links : Onlinestatus : Colezero ist offline
Registriert seit: Apr 2005
Beiträge: 5
Colezero ist zur Zeit noch ein unbeschriebenes Blatt
Standard Datenbank Problem &Loginscript

Ich habe ein problem bei der realisierung eines Loginsystems mittels PHP.

Ich hab eine Datenbank mit einer Tabelle die User heißt, in dieser Tabelle sind 3 Felder: User, Passwd, Email.

Jetzt trage ich einen neuen User ein:

INSERT INTO User(User, Passwd, Email) VALUES('Tim', MD5('test'), 'Tim@test.de);

So jetzt ist ein User in der Datenbank.

Wenn ich nun mich als Tim einloggen will, erkennt er den Namen aber nicht das Passwort..

Also in PHP hab ich dann ein mysql_query befehl z.b mit dem Eintrag:
$Abfrage = mysql_query(SELECT * FROM User WHERE Passwd = MD5('test');
Doch er findet damit keinen Eintrag in der Datenbank.

Auch in MYSQL-FRONT Wenn ich im SQL-Editor z.b:

SELECT * FROM User WHERE Passwd = MD5('test')

eingebe findet er auch keinen Eintrag.
Obwohl er da ist.
Ich denke es liegt hier dran:
WHERE Passwd = MD5('test')
Er kann das irgentwie net vergleichen.

Ich benutzte MySQl 5.0 bzw. die aktuelle und das aktuelle PHP.
und einen Apache2 Server.
Weiß jemand Rat?
Mit Zitat antworten
  #2 (permalink)  
Alt 30-04-2005, 14:51
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

testausgaben gemacht???

poste hier mal
1) die query
2) den zugehörigen datensatz der db. (Bitte Copy & Paste aus myAdmin)
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #3 (permalink)  
Alt 30-04-2005, 14:57
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Zuerst mal fehlen in deiner mysql_query-Zeile die Anführungszeichen um die Query und eine schließende Klammer.

Dann solltest du einen Index über dem Feld user haben und dann so abfragen:
mysql_query("SELECT * FROM user WHERE user = '$username' AND passwd = MD5('$passwd')");
Denn beim Einloggen wird der Username doch sicher mit eingegeben oder?

Und immer schön mysql_error()!
Mit Zitat antworten
  #4 (permalink)  
Alt 30-04-2005, 15:00
Colezero
 Newbie
Links : Onlinestatus : Colezero ist offline
Registriert seit: Apr 2005
Beiträge: 5
Colezero ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Tabellen-Kommentar : InnoDB free: 4096 kB

Feld Typ Null Standard
Id int(10) Ja NULL
User varchar(30) Ja NULL
Passwd varchar(26) Ja NULL
Email varchar(30) Ja NULL


Das sind die Felder.Die Tabelle heißt User die Datenbank heißt loginsystem

Wenn ich einen User adde gehe ich wie folgt vor:

Query:
INSERT INTO user(User,Passwd,Email) VALUES ('test', MD5('test'),'test@test.de');

So jetzt zum einloggen: Das PHP-SCript:

@$USER =$_REQUEST['txt_login'];
@$PASSWD =$_REQUEST['txt_pass'];

$db = new db_ext; //Die Klasse wo die Funktionen drin stehen.

$db->connect();

$abfrage = mysql_query ("SELECT * FROM user WHERE user = '$USER'");

$abfrage2 = mysql_query ("SELECT * FROM User WHERE passwd = MD5('$PASSWD')");

@$reihen = mysql_num_rows($abfrage);
@$reihen2 = mysql_num_rows($abfrage2);

if ($reihen <= 0)
{
echo "Unbekannter Benutzername!";

}
else
{

if($reihen2<=0)
{
echo "Falsches Passwort!";



}
}
Mit Zitat antworten
  #5 (permalink)  
Alt 30-04-2005, 15:04
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Huhu? Ignorierst du mich?? Danke!

Zur Strafe wirst du jetzt als erstes mal die Regel hier befolgen!

als nächstes befolgst du meine tipps!

Und danach versuchst du mal die zwei queries zu einem umzuformen.

Die @s lässt du auch weg. Kommt das vom Perl? Jedenfalls sind sie in PHP überflüssig und können sogar stören (s. Regen).

Thx!
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #6 (permalink)  
Alt 30-04-2005, 15:04
Colezero
 Newbie
Links : Onlinestatus : Colezero ist offline
Registriert seit: Apr 2005
Beiträge: 5
Colezero ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Aber er findet ja schon nichts, wenn ich mit MySQL-Front oder sonst irgenteinem Programm eine SQL-Anweisung mache:

SELECT * FROM User WHERE passwd = MD5('test)

Und ich 100% sicher bin, dass ein User mit dem Passwort "test" vorhanden ist.
Doch er findet ihn mit der Anweisung nicht.
Mit Zitat antworten
  #7 (permalink)  
Alt 30-04-2005, 15:06
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Wenn du jetzt ENDLICH MEINE HINWEISE BEFOLGEN WÜRDEST, dann würdest du auch merken, woran es lieg! Ich hab nämlich schon bemerkt, dass du ein Problem mit deinem Tabellen-Layout hast!

Los jetzt!

BTW: Mit "zugehörigen Datensatz" meine ich natürlich den Datensatz, den du erwartest!!!
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #8 (permalink)  
Alt 30-04-2005, 15:18
Colezero
 Newbie
Links : Onlinestatus : Colezero ist offline
Registriert seit: Apr 2005
Beiträge: 5
Colezero ist zur Zeit noch ein unbeschriebenes Blatt
Post

Also ich hab es jetzt erstmal zu einer Query umgeformt wie du es gesagt hast:



So jetzt der nächste Schritt, ich bin leider noch ein blutiger Anfänger, wie du sicherlich schon gemerkt hast.
PHP-Code:
$abfrage mysql_query ("SELECT * FROM user WHERE user = '$USER' AND passwd =  MD5('$PASSWD')"); 
Mit Zitat antworten
  #9 (permalink)  
Alt 30-04-2005, 15:21
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Ok, dann breche ich diesen Thread an dieser Stelle ab:

Wie Lange ist ein MD5-verhashter String? Richtig, 32 Zeichen. Wie viele lässt deine Tabelle zu? Richtig, 26 Zeichen. Schlussfolgerung ist deine!
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #10 (permalink)  
Alt 30-04-2005, 15:23
Colezero
 Newbie
Links : Onlinestatus : Colezero ist offline
Registriert seit: Apr 2005
Beiträge: 5
Colezero ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Das wusste ich doch nicht, das ein Md5 32 Bit bzw. Zeichen hat..Das hättest du mir auch einfach sagen können.

Man lernt halt jeden Tag was neues

Vielen Dank.

Geändert von Colezero (30-04-2005 um 15:27 Uhr)
Mit Zitat antworten
  #11 (permalink)  
Alt 30-04-2005, 18:38
aimbot
 PHP Junior
Links : Onlinestatus : aimbot ist offline
Registriert seit: Feb 2004
Ort: Lahr - Germany
Beiträge: 779
aimbot ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ja hätte er können, aber du hättest dich genauso gut darüber erkundigen können.

du wärst spätestens drauf gekommen, wenn du wie er schon gesagt hat, testausgaben (hash in db, hash des eingegebenen pws) gemacht hättest.
__________________
MfG
aim
Lies mich jetzt!
- OT-Tags-Liebhaber und BB-Code-Einrücker -
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni


 

Aktuelle PHP Scripte

Newsmanager

Der Newsmanager ist ein Newssystem und Newsletter in einem. Mit WYSIWYG Editor und E-Mail import aus einer bestehenden MySql Datenbank sowie dynamische Kategorien / Themen Filter.

11.09.2019 Stephan_1972 | Kategorie: PHP/ News
Modelmanager

Der Modelmanager ist ein Webtool für Fotografen, kann als komplette Homepage oder als Webtool installiert werden.

11.09.2019 Stephan_1972 | Kategorie: PHP/ Webservice
ContentLion - Open Source CMS ansehen ContentLion - Open Source CMS

ContentLion ist ein in PHP geschriebenes CMS, bei dem man Seiten, Einstellungen usw. in Ordnern lagern kann

22.08.2019 stevieswebsite2 | Kategorie: PHP/ CMS
 Alle PHP Scripte anzeigen

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