Antworten auf deine Fragen:
Neues Thema erstellen

Warum funktioniert mein Login Script nicht?

A

aydesign

Guest

Hallo zusammen,

könnte mir vielleicht jemand bei meinem Login Script helfen? :uhm:

Ich habe ein Login Formular mit Benutzername und Passwort das dann an meine login.php gesendet wird:

login.php
PHP:
<?php
session_start();

include "config.php";

$q="SELECT * FROM `admin` WHERE ((username='$username') AND (pw='$pw')) LIMIT 1";
$result= mysql_query($q, $connection) or die
("Konnte folgende Abfrage nicht ausführen: $q." . mysql_error());

if (mysql_num_rows($result) == 0)
{

echo "<meta http-equiv='refresh' content='3;URL=loginform.php' /><div align=center><strong><u>Ihr Benutzername oder Passwort sind falsch!</u></strong></div>";

}
else
{
$r=mysql_fetch_array($result);
$login_username=$r["username"];
session_register("login_username");
Header("Location: protected.php");
}
?>
den Code füge ich auf meiner geschützten Seite ein:


PHP:
<?php
session_start();
if (!isset($_SESSION["login_username"])) {
Header("Location: loginform.php");
} else {
}
?>
So, wenn ich mich nun einloggen will, kommt immer meine Fehlermeldung dass mein Benutzername und Passwort falsch sind. Aber warum?

In der Datenbank hab ich die Werte folgendermaßen gesetzt:

Code:
CREATE TABLE `admin` (
  `id` bigint(255) NOT NULL auto_increment,
  `username` longtext NOT NULL,
  `pw` longtext NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM;
und dann:

Code:
INSERT INTO `admin` VALUES (2, 'admin', 'test');
Komisch nicht :schmoll: Er zeigt mir auch keinerlei Fehlermeldungen an, er loggt sich einfach nur nicht ein.

Hoffe auf eine gute Antwort :D


Bye Andy
 

Duddle

Posting-Frequenz: 14µHz

AW: Warum funktioniert mein Login Script nicht?

Lass dir $q und $result ausgeben, bevor du sie weiter benutzt. Die Query kannst du dann manuell in phpMyAdmin ausführen und sehen was er macht.


Duddle
 

Chriss1987

me.drinkCoffee();

AW: Warum funktioniert mein Login Script nicht?

Hi,

wo deklarierst du denn die beiden Variablen $username und $pw?
Wenn du die Daten per POST oder GET sendest, musst du diese aus den Arrays $_POST oder $_GET auslesen...

Weiterhin beinhaltet dein Script eine riesige Sicherheitslücke! Niemals Benutzereingaben ungeprüft für SQL-Abfragen nutzen!

Schöne Grüße aus dem Sauerland!
Chriss

Edit: außerdem speicherst du Passworte in der DB im Klartext, nimm lieber die MySQL-Funktion PASSWORD() oder aber greife auf MD5 zurück...
 

DonL

Noch nicht viel geschrieben

AW: Warum funktioniert mein Login Script nicht?

Um ehrlich zu sein, habe ich noch nie gesehen, dass man die abfragen mit () unterteilt, wie du es gemacht hast.
PHP:
$q="SELECT * FROM `admin` WHERE ((username='$username') AND (pw='$pw')) LIMIT 1";

Probier es doch mal folgendermaßen:

PHP:
$q="SELECT * FROM `admin` WHERE username='$username' AND pw='$pw' LIMIT 1";

Ansonsten wüsste ich nicht woran das liegen könnte.
 

Doitsu

Aktives Mitglied

AW: Warum funktioniert mein Login Script nicht?

Hm, 2 Zitate von php.net

This function has been DEPRECATED as of PHP 5.3.0. Relying on this feature is highly discouraged.

If you are using $_SESSION (or $HTTP_SESSION_VARS), do not use session_register(), session_is_registered(), and session_unregister().

@ DonL - Die klammern sind richtig, man kann sie machen, muss es aber nicht .. Ist halt wie in einer If-Bedingung, da kann ich ja auch if(($i<$c) && ($i>0)) schreiben - oder halt ohne den Klammern.

Kleines Offtopic:
id = bigint(255) gibt es nicht - bigint nimmt max. 8 Bytes auf - das reicht aber auch. 8 Bytes = eine Zahlenspanne von ca. -9,2 Trillionen bis +9,2 Trillionen. Jetzt ist die Frage, brauchst du wirklich 9 Trillionen User?
Weiter gehts: longtext = max. Laenge von 4.2 Milliarden - noetig (das wird ein recht langes PW/Username ..)?
Du musst das so sehen: MySQL legt ein Cache an, dieser Cache ist so groess wie die max. Laenge des Eintrages - wenn du also nur ein int 1 in eine Spalte schreibst wo 9 Trillion rein passen, ist das ein wenig Verschwendung.

Ist auch irgendwo auf mysql.com nachzulesen.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.564
Beiträge
1.538.064
Mitglieder
67.487
Neuestes Mitglied
MichaelSEivy
Oben