PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP für Fortgeschrittene und Experten (http://www.selfphp.de/forum/forumdisplay.php?f=13)
-   -   Einloggen mit Benutzernamen und Passwort (http://www.selfphp.de/forum/showthread.php?t=1891)

phpBeginner 06.08.2002 12:01:22

Einloggen mit Benutzernamen und Passwort
 
Hallo Zusammen!

Wie kann ich einen Benutzer mit Passwort (Datenbank=mysql) in PHP überprüfen und den Usernamen als Sitzungsvariable (Session) weitergeben??

Ich habe einen kleinen Flohmarkt (5do.de) in asp programmiert, mit Hilfe von Dreamweaver UD.

In asp hat alles geklappt - aber bei php stehe ich vor einem Rätsel....

Da ich auf einen anderen Server umziehen muss, darf ich jetzt alles in php umprogrammieren.

Bin für jede Hilfe dankbar...

Ben20 06.08.2002 12:05:08

Zitat:


Wie kann ich einen Benutzer mit Passwort (Datenbank=mysql) in PHP überprüfen und den Usernamen als Sitzungsvariable (Session) weitergeben??


Code:

$abfrage0 = @mysql_query("SELECT username FROM user WHERE passwort = PASSWORD('$passwort') AND username = '$username'");


if(@mysql_num_rows($abfrage0) == 1) {
 $abfrage1 = @mysql_result($abfrage0, 0, 0);
 $username = $abfrage1;
 session_register("username");
}

Du mußt die Datenbankabfrage natürlich auf Deine Tabellen umändern. Außerdem könnten da noch ein paar Bugs drin sein.

phpBeginner 06.08.2002 12:19:35

an ben 20
 
probier ich gleich mal aus!

danke vorerst mal für Deine Hilfe...

phpBeginner 06.08.2002 12:48:10

Hallo ben20

Diese Fehlermeldung kommt jetzt:

Notice: Undefined variable: passwort in c:programmeapache groupapachehtdocslogin.php on line 11

In meiner Datenbank heissen die Felder tatsächlich "username"
und "passwort" die Tabelle heisst "registry"

- das sind die form-daten:
<form action="inserate1.php" method="post" name="login" target="_parent" id="login">

1. Textfeld:
<input name="username" type="text" id="username">

2. Textfeld
<input name="passwort" type="password" id="passwort">

Schalter:
<input type="submit" name="Submit" value="Abschicken">

hmmm
Ich finde den Fehler nicht...
Die php Daten sind jetzt über dem Formular, kann es daran liegen??

PS: Wenn der Username falsch ist, habe ich in asp einfach diesen Code eingegeben:
MM_redirectLoginFailed="keinuser.asp"

Wenn user ok dann:
MM_redirectLoginSuccess="artikeleingabe.asp"
weisst Du da zufällig auch bescheid?? ;)

phpBeginner 06.08.2002 13:37:29

ich schnalls nicht!
 
So hab ich den Code jetzt eingesetzt:

<?php
mysql_select_db($database_fdo, $fdo);
$abfrage0 = mysql_query "SELECT * FROM registry WHERE passwort = passwort '$passwort' AND username = '$username' ";

if(mysql_num_rows($abfrage0) == 1);
{
$abfrage1 = mysql_result($abfrage0, 0, 0);
$username = $abfrage1;
session_register("username");
}
?>
Kommt diese Meldung:
Parse error: parse error, unexpected '"' in c:programmeapache groupapachehtdocslogin.php on line 12

Wenn ich Klammern setze, gleiche Meldung...

phpBeginner 06.08.2002 14:27:40

Sorry Ben20
 
Hab jetzt original Deinen Code verwendet und nur die datenbank daten geändert:
ich weiss hätt ich ja gleich so machen sollen :(

$abfrage0 = @mysql_query("SELECT username FROM registry WHERE passwort = PASSWORD('$passwort') AND username = '$username'");
if(@mysql_num_rows($abfrage0) == 1);
{
$abfrage1 = @mysql_result($abfrage0, 0, 0);
$username = $abfrage1;
session_register("username");
}

jetzt kommt nur noch 1 Fehlermeldung:

Warning: open(C:PHPsessiondatasess_cc1854685f8956ebe9360c7c722ef7ab, O_RDWR) failed: No such file or directory (2) in c:programmeapache groupapachehtdocslogin.php on line 13

Mit der weiss ich nix anzufangen, Du??

Vielleicht hat ja noch jemand anderes eine Idee??...

Matt 06.08.2002 15:06:33

nunja, das lässt darauf schließen, dass die session noch nicht erstellt wird.

lies dir dazu das hier durch, da erfährst du mehr darüber
http://www.php.net/manual/en/function.session-start.php

phpBeginner 06.08.2002 16:16:05

hab die seite besucht, danke für den Tipp.
 
Also - hätte nie gedacht, dass php so kompliziert sein kann!!

Hab jetzt das mit session_start vor session_register gemacht bekomm aber immer noch die gleiche Fehlermeldung.

Dachte immer ASP wäre kompliziert mit seinen ganzen Klammern und Anführungszeichen etc.

Aber das was ich jetzt erlebe mit php ist ja WAHNSINN!!

Eigentlich eine einfache Aufgabe:

Log in - prüfe eingegebene Formulardaten über Datenbank ob Benutzer mit Passwort vorhanden,
wenn ja, geh z. B. auf ok.php,
wenn nein dann geh z. B. auf fehler.php.

Wenn vorhanden nimm username als session und übergib an ok.php.

Gibt es da keine "kompakte Lösung"??

Ich bin hier nur noch am "rumpuzzeln"
Ich hänge jetzt schon seit 4 Tagen an meiner Log-in-Datei!!!

Habe seitenweise Beschreibungen im Internet durchgelesen und ausprobiert, was mal einfach war (ASP), ist jetzt unlösbar.

Leider geht auf meinem neuen Server nur php...

Wer kann hier mit einem ordentlichen Script helfen??
Wer hat denn Ahnung???

Bin mittlerweile so vielen Tipps nachgegangen und Häppchen die man mir gab, aber eine kompakte Lösung..................?

Grüsse

CyberAge 06.08.2002 17:33:53

Re: Sorry Ben20
 
Zitat:

Original geschrieben von phpBeginner
(C:PHPsessiondatasess_cc1854685f8956ebe9360c7c722ef7ab, O_RDWR) failed: No such file or directory (2) in c:programmeapache groupapachehtdocslogin.php on line 13

Die Fehlermeldung sagt doch alles! Du hast in der php.ini eine pfadangabe, wo deine sessions gespeichert werden sollen. Die Fehlermeldung gibt dir doch aus :

... failed: No such file or directory (2) .....

Also schau mal nach, ob das Verzeichnis C:PHPsessiondata existiert oder nicht. Achte darauf, dass php wie alle Serveranwendungen gross und kleinschreibung unterscheiden, windows hingegen das alles nix ausmacht.

phpBeginner 06.08.2002 19:38:32

Keine Fehlermeldung mehr!
 
Hallo Cyberage!

Das hat gestimmt - kurz und knapp und richtig - vielen Dank!!

Hast Du eine Ahnung wie ich jetzt die Formulardaten überprüfe,
was der Benutzer da eingegeben hat?

Selbst wenn ich die Textfelder "username" und "passwort"
im Formular leer lasse, dann auf "log in" klicke, geht er ohne Fehlermeldung zur nächsten Seite.

Richtig wäre aber, je nach Prüfergebnis, dass entweder z. B.
"userok.php" oder "userfail.php" aufgerufen wird.

Gruss


Alle Zeitangaben in WEZ +2. Es ist jetzt 22:26:00 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.