Hilfe bei einen Login-Script

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
wolf-gang
Mitglied
Beiträge: 5
Registriert: 16.11.2006 13:55
Wohnort: Freital/Sachsen

Hilfe bei einen Login-Script

Beitrag von wolf-gang »

Leider habe ich hier einen Fehler:

Code: Alles auswählen

<?php
$verbindung = mysql_connect("localhost", "mydb" , "mypw")
or die("Verbindung zur Datenbank konnte nicht hergestellt werden");
mysql_select_db("mytb") or die ("Datenbank konnte nicht ausgewählt werden");


$abfrage = "SELECT username, email FROM forum_user WHERE username LIKE '$username' '$email'";
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_object($ergebnis);

if($row->username == $username)
    {
    $_SESSION["username"] = $username or["email"] = $email;
    echo "Login erfolgreich. <br> <a href=\"home.php\">Homeportal</a>";
    }
else
    {
    echo "Benutzername und/oder eMail waren falsch. <a href=\"memberlogin.htm\">Login</a>";
    }

?>
hier die memberlogin.htm:

Code: Alles auswählen

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Dein Username*</title>
</head>

<body bgcolor="#2b2b3a">
<form action="login.php" method="post">
<p align="center"><font color="#FFFFFF"><b>Dein Username:</b><br>
<input type="text" size="24" maxlength="50"
name="username"><br><br>

<b>Deine eMail:</b></font><br>
<input type="email" size="24" maxlength="50"
name="email"><br>

<input type="submit" value="Login">
</p>

</form>
</body>

</html>
hier die home.php

Code: Alles auswählen

<?php
session_start();
<?php
session_start();
?>

<?php
if(!isset($_SESSION["username"]))
   {
   echo "Bitte erst <a href=\"memberlogin.html\">einloggen";
   exit;
   }
?> 
Leider geht das nicht. Es wird nicht richtig in der Datenbank geprüft
und schreibt, obwohl ich in die memberlogin, was falsches eingegeben habe, kommt keine Falscheingabe sondern das:
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in \htdocs\testphp\login.php on line 13
Line 13 sagt:

Code: Alles auswählen

$row = mysql_fetch_object($ergebnis);
Login erfolgreich.
Home ( link zu Home)

Für Hilfe wäre ich sehr dankbar.
Herzliche Grüße
aus Freital
Wolfgang
Benutzeravatar
Banger
Ehemaliges Teammitglied
Beiträge: 375
Registriert: 03.05.2005 21:53
Wohnort: Düsseldorf
Kontaktdaten:

Beitrag von Banger »

Das SQL-Statement sieht per se erstmal ungültig aus:

Code: Alles auswählen

$abfrage = "SELECT username, email FROM forum_user WHERE username LIKE '$username' '$email'";
Was hat $email dort zu suchen? Nüchts :)

Das würdest Du abfangen, wenn Du anstatt einfach mit

Code: Alles auswählen

$ergebnis = mysql_query($abfrage);
den Request abzufeuern, den Erfolg der Abfrage überprüfen würdest:

Code: Alles auswählen

$ergebnis = mysql_query($abfrage, $verbindung) or die('Ohjeohje: '.mysql_error($verbindung));
wolf-gang
Mitglied
Beiträge: 5
Registriert: 16.11.2006 13:55
Wohnort: Freital/Sachsen

Beitrag von wolf-gang »

Banger hat geschrieben:Das SQL-Statement sieht per se erstmal ungültig aus:

Code: Alles auswählen

$abfrage = "SELECT username, email FROM forum_user WHERE username LIKE '$username' '$email'";
Was hat $email dort zu suchen? Nüchts :)

Das würdest Du abfangen, wenn Du anstatt einfach mit

Code: Alles auswählen

$ergebnis = mysql_query($abfrage);
den Request abzufeuern, den Erfolg der Abfrage überprüfen würdest:

Code: Alles auswählen

$ergebnis = mysql_query($abfrage, $verbindung) or die('Ohjeohje: '.mysql_error($verbindung));
Ich möchte den Usernamen und eMail abfragen, wenn das stimmt, soll
auf die nächste Seite geloggt werden. Deshalb habe ich eMail dort stehen.
Herzliche Grüße
aus Freital
Wolfgang
Benutzeravatar
Banger
Ehemaliges Teammitglied
Beiträge: 375
Registriert: 03.05.2005 21:53
Wohnort: Düsseldorf
Kontaktdaten:

Beitrag von Banger »

wolf-gang hat geschrieben:Ich möchte den Usernamen und eMail abfragen, wenn das stimmt, soll
auf die nächste Seite geloggt werden. Deshalb habe ich eMail dort stehen.
Dann mutt dat so aussehen:

Code: Alles auswählen

$abfrage = "SELECT username, email FROM forum_user WHERE username = '$username' AND email = '$email'";
Tipp: lern SQL ;-)

BTW: Du hast $username und $email sauber escaped, um SQL-Injections zu vermeiden?
wolf-gang
Mitglied
Beiträge: 5
Registriert: 16.11.2006 13:55
Wohnort: Freital/Sachsen

Beitrag von wolf-gang »

Banger hat geschrieben:
wolf-gang hat geschrieben:Ich möchte den Usernamen und eMail abfragen, wenn das stimmt, soll
auf die nächste Seite geloggt werden. Deshalb habe ich eMail dort stehen.
Dann mutt dat so aussehen:

Code: Alles auswählen

$abfrage = "SELECT username, email FROM forum_user WHERE username = '$username' AND email = '$email'";
Tipp: lern SQL ;-)

BTW: Du hast $username und $email sauber escaped, um SQL-Injections zu vermeiden?
Sorry, laut Datenbank heisst es nicht username, sondern login-mein Fehler.
Aber es bringt noch folgenden Fehler:
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in\htdocs\testphp\login.php on line 12
Login erfolgreich.
Home
Linie 12 bis Ende lauten:

Code: Alles auswählen

$row = mysql_fetch_object($ergebnis);

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

?>
Es schreibt immer Login erfolgreich, obwohl ich auch falsches eingegeben habe.
Msql lernen ja, aber ich bin froh, dass ich etwas mit PHP gelernt bzw. angeeignet habe mit Hilfe diverse Foren und hier. Ansonsten kannte ich nur rein Html und etwas Java.
Ich bin allen sehr sehr dankbar für Eure Hilfen!! :grin:
Herzliche Grüße
aus Freital
Wolfgang
Antworten

Zurück zu „Coding & Technik“