[PHP/mySQL] Session wie das?

Grisworld

fühlt sich hier wohl
Session wie das?

meine frage bezieht sich dadrauf ich bau mir ne webpage mit php/mysql und user können sich dort regestrieren nun die frage wie mach ich das mit der session funktion?

hab nen anmeldeformular (name:pass -> login) und wie wird das nun verarbeitet das er eingeloggt ist, also die session erstellt?

mfg Gris :)
 
In den neueren PGP-versionen (ab 4.1?) gibt es das superglobale Array $_SESSION, das sämtliche Session-Variablen enthält. In dieses musst Du einfach Deine Werte schreiben z.B. $_SESSION["name"]="Kurt";
In älteren Versionen musste man Sessionvariablen erst anmelden mit session_register.

Um Sessions zu verwenden muss auf jeder Seite session_start() verwendet werden. Lässt der Besucher Cookies zu, wird die Session automatisch übergeben, ansonsten musst Du selbst für einen Fallback sorgen bzw. eine entsprechend compilierte PHP-Version besitzen.
 
Original geschrieben von Pennywise
In den neueren PGP-versionen (ab 4.1?) gibt es das superglobale Array $_SESSION, das sämtliche Session-Variablen enthält.

Also...was PGP jetzt nicht alles kann...wirklich ein Multifunktionelles Tool...Daten verschlüsseln, Sessions speichern, Kuchen backen... :D :D :D
 
:ROFLMAO: :ROFLMAO: :ROFLMAO: :ROFLMAO:

Aber der Rest ist ja richtig.
Evtl. wäre da noch der Hinweis auf SelfPHP . Da einfach mal die Kapitel über sessions durchgehen.
 
soll heissen?

$_SESSION diese variable brauch ich nur?

dazu die frage was kann ich alles für werte übergeben oder wie ist es jetzt wenn ein user sagen wir mal in der DB die ID 111 hat wie mach ich es das er sich anmeldet und danach seine ganzen daten unter details zb ausgegeben werden?

oder wie mach ich das mit der session das die auf die seiten wos sein soll angewendet wird?

Gris der so keine ahnung von php hat :)
 
Zuletzt bearbeitet:
Es reicht eigentlich wenn Du in der Session die UserID übergibst. Das Anmelden geht üblicherweise geht das in mehreren Schritten.

1. User nicht angemeldet - keine Variablen in Session-Array vorhanden, User bekommt das Anmeldeformular präsentiert

2. User gibt Daten ein und schickt sie ab

3. Das Skript überprüft das Passwort indem es aus der Usertabelle den Datensatz mit dem übereinstimmenden Benutzernamen ausliest.

z.B. "SELECT id, passwort FROM user WHERE user=".POST["user"]

4. Die Überprüfung: War der Benutzername überhaupt vorhanden? War das Passwort richtig?
Wenn ja setze das Array $_SESSION mit $_SESSION=$ergebnis["id"];
sofern die Variable mit dem DB-Ergebnis $ergebnis heißt

Der User ist eingeloggt

War es falsch präsentiere das Eingabeformular erneut
 
öhm ich versteh es immer noch net^^

habt ihr tuts oder so oder schon gescriptetes davon was man auseinander nehmen kann und es sich anschauen kann?

Grisworld
 
ich hab ein problem

Code:
<?php session_start();
session_name('sess_id'); ?>
<html>
<form method=send action=index.php?.session_name().=.session_id()>
<a href=index.php?.session_name().=.session_id()>Back to future^^<a/>
</form>
<head>
</head>
</html>


wo ist dort der fehler?

wenn er die session id übergibt dann steht da
Code:
../index.php?.session_name().=.session_id()>

Gris :cry:
 
Zuletzt bearbeitet:
Den Teil musst Du wieder in PHP-Tags einfügen, also z.B.:

<form method=send action=
<?php echo "index.php?".session_name().=.session_id(); ?>>
 
also es geht jetzt ABER folgendes problem!!


Code:
<?php session_start();
include("XXXXXXX.php");
 $db = mysql_connect($db_host,$db_user,$db_pwd);
 mysql_select_db($db_db,$db);

if ($user_name) {
$result = mysql_query("SELECT * FROM XXXXX", $user_name); 
$reihen = mysql_num_rows($result); 
}

if ($reihen <= 0) {
echo("Unbekannter Benutzername!");
}
else {
session_register("login");
}
if (!session_unregister(login)){
session_unregister(login);
}

print("<a href=index.php>Back to future^^<a/>");
?>

was ist dadran falsch? er gibt immer folgendes aus:

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /www/htdocs/eeuubbay/login.php on line 7

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /www/htdocs/eeuubbay/login.php on line 8

achja der $user_name wird von einem formular (logindaten) von einem vorformular übergeben!!

Gris :cry:
 
Da stimmt wohl etwas mit deiner Querry nicht.

$result = mysql_query("SELECT * FROM XXXXX", $user_name);

Was soll der User Name hier bewirken ???
Ich denke mal, du willst ihn mit eingetragenen Werten vergleichen.
Dann musst du natürlich in der entsprechenden Tabellenspalte danach suchen lassen.
in etwa so (usertable ist die Spalte in der der Username steht, das musst Du entsprechend anpassen)

$result = mysql_query("SELECT * FROM XXXXX" where usertable = '$user_name');
 
Parse error: parse error, unexpected T_STRING in /www/htdocs/eeuubbay/login.php on line 7
T_T, Y_Y, X_X

Code:
if ($user_name) {
$result = mysql_query("SELECT * FROM eubay_user" where user_name = '$user_name');
$num_rows = mysql_num_rows($result);


was dadran falsch ><

Gris :cry:
 
Oooops, hatte da was übersehen, die Anführungszeichen sind falsch gesetzt.
Versuch es mal so:

$result = mysql_query("SELECT * FROM eubay_user where user_name = '$user_name'");
 
also neues problem^^

Code:
<?php session_start();
include("optionen.php");
 $db = mysql_connect($db_host,$db_user,$db_pwd);
 mysql_select_db($db_db,$db);
if ($u_name=="" && !session_is_registered(login) || $u_name!="" && !session_is_registered(login)) 
{
$result = mysql_query("SELECT * FROM eubay_user where user_name = '$u_name'");
$reihen = mysql_num_rows($result); 
if ($reihen <= 0) 
{
echo("Unbekannter Benutzername!");
}
}
if (session_is_registered(login)){
session_unregister(login);
}
if ($reihen == 1) 
{
session_register(login);
$login=0;
session_register(user_name);
$user_name=$u_name;
session_register(user_id);
}
print("<a href=index.php>Back to future^^<a/>");
?>

wie schaff ich es das hier nicht nur der username geprüft wird SONDERN auch das passwort?

Gris :cry:
 
Oben