37x Forum

37x Forum (http://www.37x.de/forum.php)
-   Internet Computer (http://www.37x.de/internet-computer/)
-   -   [Php] Sessions und ihr Sinn (http://www.37x.de/internet-computer/597-php-sessions-und-ihr-sinn.html)

Wuffel 10.07.2005 03:36

[Php] Sessions und ein simples Login Skript
 
Hi Leute :)

Ist mein erstes Tutorial, hoffe mal es wird verständlich. Ich schreibe euch über Sessions in PHP, wie ihr diese initialisiert und benutzt.


Sinn einer Session:
Sessions werden häufig bei Seiten benutzt, wo sich ein User einloggen muss. In Sessions kann man Variablen speichern die dann auf dem Server gespeichert sind und sozusagen global sind.

Eine Session läuft spätestens mit Schließen des Browserfensters ab. Man kann natürlich auch Cookies setzen, so dass die Sessions erneut geladen werden.

In einer Session kannst du z.B. den User ID eines Users speichern, die dazugehörigen Daten und evtl das Passwort, um so immer Vergleiche mit den eingegebenen Daten zu machen oder wenn du andere Daten des Users benötigst brauchst du nur auf die Sessionvariable mit dem user id zugreifen.


Verwendung von Sessions:
Um eine Session zu initialiesieren musst du vor jedem HTML Code folgende Zeile schreiben:
PHP-Code:

<?php session_start(); ?>

Damit werden im nachfolgedem Skript alle Session Variablen zugänglich.

Session Variablen zu erstellen und auszulesen geht am einfachstem über den Session Array. Es gibt auch eine andere Möglichkeit, die aber schon veraltet und kompliziert ist.

Um eine Variable zu setzen oder auszulesen nimmst du folgende Codes:

PHP-Code:

<?php 
$_SESSION
['variablenname'] = 'neuer wert';

if (
$_SESSION['eingeloggt'] == 1) echo 'User ist drin';?>

Auf diese Variablen kannst du nun von jeder Seite, bei der du session_start(); an den Anfang schreibst zugreifen, so lange das Browserfenster nicht geschlossen wurde.

Sollen alle Sessionvariablen frühzeitig gelöscht werden nutze folgende Funktion:

PHP-Code:

<?php session_destroy();?>

Der Name ist wohl selbsterklärend, ne? ;)

Zum Login Skript:

Ihr habt ein Formular welches zwei Textfelder names username und password hat. Außerdem ist ein unsichtbares Feld zur Uberprüfung mit dem Titel login und dem Wert 1 vorhanden.
Diese werden über action="post" an eine php Seite übergeben. Hier der Code der PHP Seite:

PHP-Code:

<?php session_start();

if (
$_POST['login'] == 1) {
  if ((
$_POST['username'] == 'Admin') AND ($_POST['password'] == 'geheim')) {
    
$_SESSION['username'] = $_POST['username'];
    
$_SESSION['password'] = $_POST['password'];
    echo 
'Willkommen Admin
'
;
    echo 
'Viel Spaß auf deiner Seite';
    ...
  }
}
?>

Auf der nächsten Seite prüft ihr mit folgendem Skript ob der Admin auch eingeloggt ist:

PHP-Code:

<?php session_start();

if (
$_SESSION['username'] == 'Admin') {
  echo 
'Mitglieder bearbeiten:
'
  
echo ' löschen - bearbeiten - hinzufügen';
  ...
}
?>

Hoffe euch geholfen zu haben :)

webmasterexergerer 20.07.2005 14:57

Sumas und Sessions
 
Manchmal ist es sinnvonn die Sessions so anzulegen, das die Session da gestartet wird wo sie auch benötigt werden.
Z.B bei Shopsystemen bei nach betätigen des Einkaufbuttons. Da das allerdings nicht bei allen Systemen möglich ist gibt es einen kleinen Code, der verhindert, das bots von Suchmaschinen eine Session angehängt bekommen.
PHP-Code:

 <?PHP
$spiders 
= array("Googlebot","WebCrawler","Mediapartners-Google","msnbot","FAST-WebCrawler","slurp","Yahoo","lycos_spider","lynx",);
$from_spider=FALSE;
foreach(
$spiders as $Val)
{
if (
eregi($Val$_SERVER["HTTP_USER_AGENT"]))
{
$from_spider=TRUE;
break;
}
}
// Session
if(!$from_spider)
@
session_start();
.
.
.
.


webmasterexergerer 20.07.2005 20:10

Besser ist es den o.G Code zu testen. Das kann man Hier machen

sires 08.02.2006 15:28

Hallo zusammen,

ich interessiere mich u.a. für Sessions. Kann man zusammenfassend sagen, daß die Session-Funktionalität dazu da ist, Variablen zu definieren, die über sämtliche Browser-Instanzen (o. bspw. FireFox-Tabs), erreichbar sind? Und was hat es mit der User-Id auf sich?

Gruß
<sires>

webmasterexergerer 08.02.2006 15:45

Bei Sessions werden Variablen während des Besuchs der Webseite gespeichert.


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:39 Uhr.

Powered by vBulletin