Stephan: Hilfe bei Sessions

Hi,

also ich kapiere dieses Session ding nicht:

<?php
session_start ();
include("config.inc.php");
$db = @mysql_pconnect($host, $user, $pass) or die ("Verbindung mit MySQL-Server fehlgechlagen!");
@mysql_select_db($database, $db) or die ("Verbindung zur Datenbank fehlgeschlagen!");

$sql = mysql_query("SELECT * FROM user WHERE (name like '$username') AND (pass = '$password')", $db) or die('mySQL ERROR (' . __LINE__ . '): '.mysql_error());
$num_rows = mysql_num_rows ($sql);
if ($num_rows > 0) {
$datenrichtig = true;
$user_eingeloggt = true;
} else {
$datenrichtig = false;
$user_eingeloggt = false;
$rechte = 0;
}

session_register ("user_eingeloggt");
?>
  <?php if ($datenrichtig) { ?>
  <meta http-equiv="Refresh" content="2; url=index.php?<?=session_name()?>=<?=session_id()?>">
  <?php } ?>

und  dann auf jeder Seite

<?php
session_start();
if ((session_is_registered ("user_eingeloggt")) AND ($user_eingeloggt)) {
?>
<?php
include ("config.inc.php");
?>

Wie kann ich da noch einen Usernamen mitliefern?

Danke schonmal

Stephan

  1. Hallo,

    also ich kapiere dieses Session ding nicht:

    Du hast vor allem eine veraltete Quelle, wo Du
    den Quellcode abgeschrieben hast.

    session_register() ist veraltet.
    Heute arbeitet man mit $_SESSION

    session_register ("user_eingeloggt");

    => Entfernen bzw. gleich $_SESSION['user_eingeloggt'] den Wert (true/false) zuweisen.

    <?php if ($datenrichtig) { ?>
      <meta http-equiv="Refresh" content="2; url=index.php?<?=session_name()?>=<?=session_id()?>">
      <?php } ?>

    Warum so kompliziert?

    Warum ein unzuverlaessiges Gebastel (META), wenn Du mit header()
    auch eine anstaendige HTTP-Umleitung machen kannst?

    Warum verwendest Du nicht die Konstante SID bzw. die Variable $PHPSESSID ?

    if ((session_is_registered ("user_eingeloggt")) AND ($user_eingeloggt)) {

    ???

    if ($_SESSION['user_eingeloggt']==true)
      { /* ... */ }

    Wie kann ich da noch einen Usernamen mitliefern?

    Den solltest Du eben am Anfang in der Session speichern.
    z.B. in $_SESSION['username']

    Gruesse,

    Thomas

    --
    Bitte keine Mails mit Fachfragen - dafuer gibt es das Forum!
    Ich mag es, wenn URLs verlinkt sind (</faq/#Q-19>).
    Oft gestellte PHP-Fragen beantwortet die dclp-FAQ bestens: http://www.dclp-faq.de/
    1. Ähm, ok, gibts dazu ein Tut?

    2. Moin!

      Warum verwendest Du nicht die Konstante SID bzw. die Variable $PHPSESSID ?

      Es gibt die Konstante SID, aber es gibt keine Variable $PHPSESSID.

      Es sei denn, register_globals ist ON, und session_name() ergibt "PHPSESSID".

      Man verlasse sich also niemals auf $PHPSESSID, sondern benutze session_id() zum Ermitteln der aktuellen Session-ID, und session_name() zum Ermitteln des Session-Namens.

      - Sven Rautenberg

      --
      "Habe den Mut, dich deines eigenen Verstandes zu bedienen!" (Immanuel Kant)
      1. Hallo Sven,

        Man verlasse sich also niemals auf $PHPSESSID, sondern benutze session_id() zum Ermitteln der aktuellen Session-ID, und session_name() zum Ermitteln des Session-Namens.

        Danke fuer die Aufklaerung/Berichtigung!

        mfg, Thomas