Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » PHP & MySQL » Session+Login Antworten
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

<?php
session_start();
$_SESSION['name'] = $_POST;

?>





<html>
<head>
<body>

<form action="weiter.php?SESSID=" method="POST">
<input type="text" name="name">
<input type="submit" value="absenden">
</form>






und auf der weiter seite habe ich das rein gesetzt


<?php
session_start();

?>





Ich habe den Namen <?php echo $name,?>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.

1: 
2: 
3: 
4: 
5:
<?php
session_start();
$_SESSION['name'] = $_POST;

?>


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: <index.php>
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13:
<html>
   <head>
      <title>Variabelnübergabe mittels $_POST</title>
   </head>
   <body>

      <form action="weiter.php" method="POST">
         <input type="text" name="name">
         <input type="submit" value="Absenden">
      </form>

   </body>
</html>



2. Datei: Variabelnabfangen und ausgeben: <weiter.php>
1: 
2:
$username = $_POST['name'];
echo "Herzlich willkommen ".$username;



Hoffe geholfen zu haben

  Profil   E-Mail   Website   Editieren   Zitieren

Lexia
Pixelschubser


Beiträge: 13


languitar schrieb am 04.07.2004 20:03
Benutz mal die Suche und guck mal hier:
http://www.webwork-magazin.net/tricks/artikel/133
http://www.webwork-magazin.net/tricks/artikel/174


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:
<?PHP
session_start();
$_SESSION["authenticated"]=1;
?>
<form name="Userauthentication" method="post" action="login.php">
<input type="hidden" name="project" value="0">
<input type="text" name="username">
<input type="text" name="password">
<input type="submit" name="Abschicken" value="Abschicken">
</form>


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:
<?PHP
session_start();

include '../inc/config.inc';
 
if ($_SESSION["authenticated"]==1)
{
	$connection = mysql_connect($dbhost, $dbuser, $dbpw); 
	$db = mysql_select_db($dbname, $connection);
	$query = "Select * from users where UserName='".$_POST["username"]."' and UserPass='".($_POST["password"])."'";

	$result = mysql_query($query, $connection);
	$row = mysql_fetch_array($result);
	echo "<br>";
	echo "Username: ";
	echo $_POST["username"];
	echo "<br>";
	echo "Passwort: ";
	echo $_POST["password"];
	echo "<br>";
	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
Fachidiot


Beiträge: 144


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
1: 
2: 
3:
<?php
$query = "Select * from users where UserName='".$_POST["username"]."' and UserPass=PASSWORD('".$_POST['password']."')";    // wenns 16
$query = "Select * from users where UserName='".$_POST["username"]."' and UserPass=MD5('".$_POST['password']."')";    // wenns 32


---
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   E-Mail   Website   Editieren   Zitieren

raiserle
Fachidiot


Beiträge: 144


ä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   E-Mail   Website   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
Fachidiot


Beiträge: 144


na wenn du nun das passwort im klartext also blank drin stehn hast dann
1: 
2: 
3:
<?php
$query = "Select * from users where UserName='".$_POST["username"]."' and UserPass=PASSWORD('".$_POST['password']."')";
?>

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   E-Mail   Website   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
1: 
2: 
3: 
4: 
5:
<?php
$query = "Select * from users where UserName='".$_POST["username"]."' and UserPass=PASSWORD('".$_POST['password']."')";
?>

genommen habe, wo vergleiche ich denn dann das gecryptete mit dem blank passwort?

  Profil   E-Mail   Editieren   Zitieren

raiserle
Fachidiot


Beiträge: 144


=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   E-Mail   Website   Editieren   Zitieren

Lexia
Pixelschubser


Beiträge: 13


@raiserle:
Ja, das hatte ich schon verstanden!

<?php
$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.

---
Take a look here!
Lichtblick - Einblick - Ausblick

  Profil   E-Mail   Website   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:
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8:
<?php
$Passwort = "admin";
$VerschluesseltesPasswort = md5($Passwort);
echo$VerschluesseltesPasswort;
//gibt 81dc9bdb52d04dc20036dbd8313ed055 aus
?> 

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.

---
Take a look here!
Lichtblick - Einblick - Ausblick

  Profil   E-Mail   Website   Editieren   Zitieren

raiserle
Fachidiot


Beiträge: 144


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   E-Mail   Website   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:
<?PHP
session_start();
include 'config.inc';
if ($_SESSION["authenticated"]==1)
{
$connection = mysql_connect( $dbhost, $dbuser, $dbpw );
$db=mysql_select_db($dbname, $connection);
$query="Select * from Users where UserName=’".$_POST["username"]."’ and UserPass=’".md5($_POST["password"])."’";
$result=mysql_query($query, $connection);
$row=mysql_fetch_array($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:URLZURGEHEIMENSEITE");
}

?>

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
Seite 1 | 2 | 3  

Antworten
Nach oben