mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 28.03.2024 11:53 Benutzername: Passwort: Auto-Login

Thema: Problem mit Loginscript vom 11.06.2008


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> Problem mit Loginscript
Seite: 1, 2  Weiter
Autor Nachricht
345speedy
Threadersteller

Dabei seit: 29.05.2008
Ort: -
Alter: -
Geschlecht: -
Verfasst Mi 11.06.2008 14:28
Titel

Problem mit Loginscript

Antworten mit Zitat Zum Seitenanfang

Hallo..


Habe eben mal ein Loginscript, das über Session und MySQL arbeitet, ausprobiert..

Jedoch bekomm ich folgende Fehlermeldung wenn ich absichtlich falsche Daten eingebe.

Zitat:
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /data/apache/users/kilu.de/ddlworld/www/Speedhosting/login.php on line 18


Hier mal die Login.php

Zitat:
$username = $_POST["username"];
$passwort = md5($_POST["password"]);

$abfrage = "SELECT username, passwort FROM login WHERE username LIKE '$username' LIMIT 1";
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_object($ergebnis);

if($row->passwort == $passwort)
{
$_SESSION["username"] = $username;
echo "Login erfolgreich. <br> <a href=\"geheim.php\">Geschützer Bereich</a>";
}
else
{
echo "Benutzername und/oder Passwort waren falsch. <a href=\"login.html\">Login</a>";
}

?>


Was ist hier falsch?
  View user's profile Private Nachricht senden
Snifferdog

Dabei seit: 08.03.2007
Ort: Düsseldorf
Alter: 35
Geschlecht: Männlich
Verfasst Mi 11.06.2008 14:58
Titel

Re: Problem mit Loginscript

Antworten mit Zitat Zum Seitenanfang

345speedy hat geschrieben:
Hallo..


Habe eben mal ein Loginscript, das über Session und MySQL arbeitet, ausprobiert..

Jedoch bekomm ich folgende Fehlermeldung wenn ich absichtlich falsche Daten eingebe.

Zitat:
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /data/apache/users/kilu.de/ddlworld/www/Speedhosting/login.php on line 18


Hier mal die Login.php

Zitat:
$username = $_POST["username"];
$passwort = md5($_POST["password"]);

$abfrage = "SELECT username, passwort FROM login WHERE username LIKE '$username' LIMIT 1";
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_object($ergebnis);

if($row->passwort == $passwort)
{
$_SESSION["username"] = $username;
echo "Login erfolgreich. <br> <a href=\"geheim.php\">Geschützer Bereich</a>";
}
else
{
echo "Benutzername und/oder Passwort waren falsch. <a href=\"login.html\">Login</a>";
}

?>


Was ist hier falsch?


Überprüfe am besten mal das Senden des Querys mit "OR die(mysql_error())"; Wahrscheinlich läuft da was falsch und deswegen bekommt dann mysql_fetch_object kein brauchbares Ergebnis.

Gruß
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
m
Moderator

Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mi 11.06.2008 15:00
Titel

Antworten mit Zitat Zum Seitenanfang

Bevor du da weiter machst, google: "sql injection"
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
345speedy
Threadersteller

Dabei seit: 29.05.2008
Ort: -
Alter: -
Geschlecht: -
Verfasst Mi 11.06.2008 15:21
Titel

Antworten mit Zitat Zum Seitenanfang

So, habe mir das durchgelesen... aber mir ist keine andere Lösung zum Login eingefallen, da ich, wie du wohl oben sehn kannst, noch wenig ahnung von PHP habe... Wenn du mir natürlich ein gutes FUNKTIONIERENDES Script empfehlen kannst, was dann dazu auch nichts kostet währe es natürlich klasse, denn bei google findet man nur scheißdreck dazu, entweder geht kein Downloadlink oder das Script ist veraltet und geht auf dem server nicht ^^
  View user's profile Private Nachricht senden
Smooth-Graphics

Dabei seit: 22.05.2006
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mi 11.06.2008 16:30
Titel

Antworten mit Zitat Zum Seitenanfang

Code:
$abfrage = "SELECT username, passwort FROM login WHERE username='".$username."'";


So sollte es (vorrausgesetzt die Tabellen und Attribute stimmen) funktionieren. LIKE brauchst du hier nicht. LIMIT auch nicht, es sollte eigentlich nur ein Ergebnis herauskommen, sonst läuft eh was falsch.

Kostenlose Scripte findest du doch massenhaft im Netz. Eine gute Alternative ist das Paket HTTP_AUTH, da kann man rel. viel selbst anpassen und es ist ziemlich sicher.

//edit:

BTW sollte man wie m schon gesagt hat POST/GET Daten nie unmaskiert verwenden. mysl_real_escape_string(); und htmlentities(); helfen hier weiter...

Es gab hier letztens auch einen Thread dazu, indem diese Thematik beschrieben wurde.


Zuletzt bearbeitet von Smooth-Graphics am Mi 11.06.2008 16:32, insgesamt 2-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
pRiMUS

Dabei seit: 09.09.2003
Ort: Vienna
Alter: 48
Geschlecht: Männlich
Verfasst Mi 11.06.2008 17:57
Titel

Antworten mit Zitat Zum Seitenanfang

und wieso ist in der where klausel nur der username? wieso nicht gleich nach username und passwort prüfen? dann ersparst du dir das anschliessende prüfen mit php.

Code:

$sql = "select id from tabelle where username = '". mysql_real_escape_string($username) ."' and passwort = '". md5($passwort) ."'";
$query = mysql_query($sql);
if (mysql_num_rows($query) == 1) {
  // do some login sh*t here
} else {
 // do some error sh*t here
}
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Smooth-Graphics

Dabei seit: 22.05.2006
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mi 11.06.2008 18:05
Titel

Antworten mit Zitat Zum Seitenanfang

pRiMUS hat geschrieben:
und wieso ist in der where klausel nur der username? wieso nicht gleich nach username und passwort prüfen? dann ersparst du dir das anschliessende prüfen mit php.


Stimmt, das hab ich ja ganz übersehn... Lächel pRiMUS so gehörts natürlich!
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
m
Moderator

Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mi 11.06.2008 19:20
Titel

Antworten mit Zitat Zum Seitenanfang

Smooth-Graphics hat geschrieben:
LIMIT auch nicht, es sollte eigentlich nur ein Ergebnis herauskommen, sonst läuft eh was falsch.


LIMIT 1 und korrekte Indizies (beim Login z.B. auf email adresse / benutzername und passwort) kann zur
Performance Optimierung genutzt werden.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
 
Ähnliche Themen [PHP] Problem mit weiterleitung in Loginscript
Suche - Loginscript mit Userverwaltung
Loginscript funktioniert nicht unter PHP 4
Formmailer-Problem-neues problem
CSS-Problem im IE7
CSS Problem
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.