Session+Login |
Thodi
Fachidiot
Beiträge: 101 |
Danke aber ich wollte nur das ein name rübergegeben wird .
ich habe es so versucht.
Oben der seite
session_start();
$_SESSION['name'] = $_POST;
?>
und auf der weiter seite habe ich das rein gesetzt
session_start();
?>
Ich habe den Namen erhalten
Aber das geht nicht!
Was ist da falsch?
Danke im voraus
|
 Profil
E-Mail
Editieren
Zitieren
|
dsc
Pixelschubser
Beiträge: 8 |
Du hast irgendwie 3 Verschiedene Lösungsansätze miteinander versucht zu realisieren... aber der Code ergibt für mich keinen Sinn. Sorry kann nicht funktionieren.
Sieht ja schön aus, aber was steht in der $_POST drinn? Das ist nur ein Variabeln-Typ... aber keine genaue deklaration von einer Variabel.
Aber seis drumm.
In deinem Falle würde ich die Arbeit mit den Session-Variabeln lassen und folgendermasen deinen Code gestalten:
1. Datei: Namenseingabe:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13: |
Variabelnübergabe mittels $_POST
|
2. Datei: Variabelnabfangen und ausgeben:
1:
2: | $username = $_POST['name'];
echo "Herzlich willkommen ".$username; |
Hoffe geholfen zu haben
|
 Profil
E-Mail
Website
Editieren
Zitieren
|
Lexia
Pixelschubser
Beiträge: 13 |
Hallo!
Ich hab mal versuch das erste Tutorial nachzubauen aber scheitere leider schon direkt...
In der index.php steht Folgendes:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12: |
|
Alles ganz toll, das Formular ist auch da beim Aufruf und wenn ich die Daten eingebe und auf Submit klicke, komme ich zur Datei login.php, in der Folgendes steht:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40: |
";
echo "Username: ";
echo $_POST["username"];
echo " ";
echo "Passwort: ";
echo $_POST["password"];
echo " ";
echo $result;
if($row["id"])
$_SESSION["authenticated"]=2;
else
echo "Username or Password incorrect";
}
if ($_SESSION["authenticated"]==0)
{
echo "Session doesn't exist. Maybe has expired";
}
if ($_SESSION["authenticated"]==2)
{
header("Location:admin.php");
}
?>
|
Warum geht das nicht? Die Tabelle users ist angelegt, dort ist auch ein Benutzername mit Passwort eingetragen (UserName, UserPass) aber immer nach dem Klicken auf den Submit-Button kommt eben die Meldung Username or Password incorrect....
Ich hab mal spaßeshalber die Variable $result ausgeben lassen und da steht drin:
Resource id #2
Hat jemand eine Idee wo das Problem sein könnte?
Vielen Dank im Voraus!
|
 Profil
E-Mail
Editieren
Zitieren
|
raiserle
Mausakrobat
Beiträge: 172 |
schon mal daran gedacht, das in der db das password gecryptet drin steht
also md5() oder password()
hab mir das tut nicht angeschaut, sorry... aber sag mal was in der spalte UserPass von deiner datenbank drin steht.....
irgend was hexadezimales oder ein richtiges wort, so wie du es vergeben hast
wenns hexa ist also ne zahlen buchstabenkombination von 0-f dann
zähle mal wieviel davon drin stehn...
sind es 16 dann ist es mit password gecryptet sinds 32 mit md5()
was dann bei deiner mysql-abfrage wiederum dann so aussehen sollte
---
Irren is Menschlich
Wer andern eine Grube gräbt,
sollte darüber nachdenken,
ob sie tief genug ist!!!!
Kameradschaft ist, wenn der
Kamerad schafft !!!!
Diese Nachricht wurde geändert von: languitar |
 Profil
Editieren
Zitieren
|
raiserle
Mausakrobat
Beiträge: 172 |
ähm... wat jetzt los? wollte den beitrag hier oben edieren, weil der code-tag irgendwie nicht mitkam.
sobald ich aber ediren möchte, steht der rest der seite mit drin.
ich meine der rest von dieser seite hier... also der komplette quellcode von dem formularfeld?
wenns geht, bitte mal den code-tag oben schliessen und diesen post löschen
---
Irren is Menschlich
Wer andern eine Grube gräbt,
sollte darüber nachdenken,
ob sie tief genug ist!!!!
Kameradschaft ist, wenn der
Kamerad schafft !!!!
Diese Nachricht wurde geändert von: raiserle |
 Profil
Editieren
Zitieren
|
Lexia
Pixelschubser
Beiträge: 13 |
Ja hätt ich vielleicht dazu sagen sollen, ich hatte vorher das Passwort md5-verschlüsselt in der Tabelle stehen und hab das Passwort auch mit md5 ausgelesen, also so:
1:
2: |
$query = "Select * from users where UserName='".$_POST["username"]."' and UserPass=MD5('".$_POST['password']."')"; |
Da es nicht geklappt hat, habe ich das Passwort direkt im Klartext in die Datenbank geschrieben mit phpmyadmin und dementsprechend auch den Code umgeändert:
1:
2:
3: |
$query = "Select * from users where UserName='".$_POST["username"]."' and UserPass=PASSWORD('".$_POST['password']."')";
|
Also daran liegt es wohl definitig nicht... :(
|
 Profil
E-Mail
Editieren
Zitieren
|
raiserle
Mausakrobat
Beiträge: 172 |
na wenn du nun das passwort im klartext also blank drin stehn hast dann
ist es wieder flasch
nun haste nen blank passwort mit dem gecrypteten verglich und das geht ja nun auch wieder nicht
---
Irren is Menschlich
Wer andern eine Grube gräbt,
sollte darüber nachdenken,
ob sie tief genug ist!!!!
Kameradschaft ist, wenn der
Kamerad schafft !!!!
|
 Profil
Editieren
Zitieren
|
Lexia
Pixelschubser
Beiträge: 13 |
Verstehe jetzt nicht direkt wie du das meinst... nachdem ich das Passwort im Klartext in die Datenbank eingetragen habe und den Code
genommen habe, wo vergleiche ich denn dann das gecryptete mit dem blank passwort?
|
 Profil
E-Mail
Editieren
Zitieren
|
raiserle
Mausakrobat
Beiträge: 172 |
=PASSWORD()
hatte ich doch aber schon geschrieben
MD5() //32 zeichen
PASSWORD() //16 zeichen
---
Irren is Menschlich
Wer andern eine Grube gräbt,
sollte darüber nachdenken,
ob sie tief genug ist!!!!
Kameradschaft ist, wenn der
Kamerad schafft !!!!
|
 Profil
Editieren
Zitieren
|
Lexia
Pixelschubser
Beiträge: 13 |
@raiserle:
Ja, das hatte ich schon verstanden!
$query = "Select * from users where UserName='".$_POST["username"]."' and UserPass=PASSWORD('".$_POST['password']."')";
?>
Dieser Code vergleicht doch ein KLARTEXT-Passwort aus der Datenbank mit einem KLARTEXT-Passwort aus dem vorherigen Formular, oder sehe ich das falsch?
Falls ich es richtig sehe liegt der Fehler mit der Ausgabe "Username + Passwort falsch" an etwas Anderem....
Ich hoffe du bist jetzt nicht total genervt von mir und antwortest mir trotzdem noch, ich werd mir Mühe geben das alles richtig zu verstehen...
|
 Profil
E-Mail
Editieren
Zitieren
|
languitar
Foren-Team
Beiträge: 2795 |
Nein, du verschlüsselst doch dein gepostetes Password mit der PASSWORD-Funktion. Folglich müsste das Passwort auch so verschlüsselt in der Datenbank liegen.
|
 Profil
Editieren
Zitieren
|
Lexia
Pixelschubser
Beiträge: 13 |
Oh ach so, sorry dann hab ich das falsch verstanden!
Ich habe jetzt testweise das Passwort admin mal als md5-Wert ausgeben lassen mit dieser kleinen Datei:
Habe es in der Datenbank gespeichert (übrigens varchar mit 32 chars, ist das falsch?) und die $query Abfrage so formuliert:
1:
2: |
$query = "Select * from users where UserName='".$_POST["username"]."' and UserPass=MD5('".$_POST['password']."')"; |
ES GEHT IMMER NOCH NICHT!!! Ich verzweifel noch an diesem Mist...
|
 Profil
E-Mail
Editieren
Zitieren
|
languitar
Foren-Team
Beiträge: 2795 |
Hm, dürfte daran eigentlich nicht liegen, aber benutz doch mal statt der MySQL-MD5-Funktion die PHP-Funktion im Query.
|
 Profil
Editieren
Zitieren
|
raiserle
Mausakrobat
Beiträge: 172 |
doch weil der md5 algorythmus von php und mysql verschieden ist
hier das md5 von admin aus der sql
21232f297a57a5a743894a0e4a801fc3
---
Irren is Menschlich
Wer andern eine Grube gräbt,
sollte darüber nachdenken,
ob sie tief genug ist!!!!
Kameradschaft ist, wenn der
Kamerad schafft !!!!
|
 Profil
Editieren
Zitieren
|
Lexia
Pixelschubser
Beiträge: 13 |
raiserle schrieb am 13.09.2006 13:50
doch weil der md5 algorythmus von php und mysql verschieden ist
hier das md5 von admin aus der sql
21232f297a57a5a743894a0e4a801fc3 |
Ja, das ist genau das gleiche was ich auch in der Datenbank stehen habe!
21232f297a57a5a743894a0e4a801fc3
Der Kommentar in der Datei //gibt 81dc9bdb52d04dc20036dbd8313ed055 aus bezog sich noch auf ein altes Passwort ...
Hab jetzt nochmal den Originalquellcode aus dem Tutorial genommen und nur die Namen der Datenbankwerte angepasst. so sieht es jetzt aus:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29: |
|
Und ich erhalte folgende Fehlermeldung:
Warning: Supplied argument is not a valid MySQL result resource in /www/htdocs/bla/login.php on line 10
Username or Password incorrect
Line 10 ist übrigens diese hier:
$result=mysql_query($query, $connection);
Diese Nachricht wurde geändert von: Lexia |
 Profil
E-Mail
Editieren
Zitieren
|