phpbar.de logo

Mailinglisten-Archive

[php] session oder nicht session

[php] session oder nicht session

Christian Hofmann php_(at)_privatesponsor.de
Mon, 31 Jan 2000 20:47:03 +0100


Hallo!

> Bedarf :-)

> Würde mich einfach mal interresieren, wie das gelöst hast.

kein Problem..... Ich habe das gestern geschrieben (und heute verbessert).
Indirekt könnte man sagen, dass Björn Schotte mitgeholfen hat, da er mich
gestern in der Mailinglist fast realtime unterstützt hat....

Ich bin für jeden Kommentar/Verbesserungsvorschlag dankbar!

nun das Script:

<?
function alteentwerten($verbindung,$zeitmarke)
  {
  $abfrage = "SELECT sessionid from session where
gueltigbis<\"$zeitmarke\"";
##  mysql_select_db("priv64");
  if (!$res = mysql_db_query("priv64",$abfrage,$verbindung))
    {
    print "Fehler!<br>MySQL sagte: ".mysql_error()."<br>\n";
    print "Fehler in alleentwerten";
    }
    else
    {
    while (list($sessionid) = mysql_fetch_row($res))
      {
      $abfrage = "DELETE from session where sessionid=\"$sessionid\"";
      mysql_db_query("priv64",$abfrage,$verbindung);
      }
    }

  }

function sessioniderstellen ($verbindung,$sessionid,$werber,$cybertechsid,
$loggedin, $gueltigbis, $schritt, $zeitmarke)
  {
  mt_srand((double)microtime()*1000000);
  $sessionid=mt_rand(2,9999)*$zeitmarke;
  $sessionid=$sessionid.(mt_rand(100000000,999999999));
  $gueltigbis=$zeitmarke+60*30;
  $loggedin="n";
  $abfrage = "insert into session
(sessionid,werber,cybertechsid,loggedin,gueltigbis, schritt) values
('$sessionid', '$werber', '$cybertechsid', '$loggedin', '$gueltigbis',
'$schritt')";
##  mysql_select_db("priv64");
  if (!$res = mysql_db_query("priv64",$abfrage,$verbindung))
    {
    print "Fehler!<br>MySQL sagte: ".mysql_error()."<br>\n";
    print "Fehler in Sessioniderstellen";
    }
    else
    {
    ## weitermachen
    }
  return array($sessionid,$werber,$cybertechsid, $loggedin, $gueltigbis,
$schritt, $zeitmarke);
  }

function gueltigkeit_erneuern($verbindung,$sessionid,$zeitmarke)
  {
  $abfrage = "UPDATE session set gueltigbis=($zeitmarke+60*30) WHERE
sessionid=$sessionid";
##  mysql_select_db("priv64");
  if (!$res = mysql_db_query("priv64",$abfrage,$verbindung))
    {
    print "Fehler!<br>MySQL sagte: ".mysql_error()."<br>\n";
    print "Fehler in gueltigkeit erneuern";
    }
    else
    {
    ## weitermachen
    }
  }


function variablenholen($verbindung,$sessionid,$werber,$cybertechsid,
$loggedin, $gueltigbis, $schritt, $zeitmarke)
  {
  $zeitmarke=time();
  if ($sessionid)
      {
      $abfrage = "SELECT
sessionid,werber,cybertechsid,loggedin,gueltigbis,schritt from session where
sessionid=\"$sessionid\"";
      $erg = mysql_db_query("priv64",$abfrage,$verbindung);
      if (!$erg)
        {
        list($sessionid,$werber,$cybertechsid, $loggedin, $gueltigbis,
$schritt,
$zeitmarke)=sessioniderstellen($verbindung,$sessionid,$werber,$cybertechsid,
$loggedin, $gueltigbis, $schritt, $zeitmarke);
        }
      else
        {
        list($sessionid, $werber, $cybertechsid, $loggedin, $gueltigbis,
$schritt) = mysql_fetch_row($erg);
        if (!$sessionid)
          {
          list($sessionid,$werber,$cybertechsid, $loggedin, $gueltigbis,
$schritt,
$zeitmarke)=sessioniderstellen($verbindung,$sessionid,$werber,$cybertechsid,
$loggedin, $gueltigbis, $schritt, $zeitmarke);
          }
          else
          {
          gueltigkeit_erneuern($verbindung,$sessionid,$zeitmarke);
          }
        }
      }
      else


      list($sessionid,$werber,$cybertechsid, $loggedin, $gueltigbis,
$schritt,
$zeitmarke)=sessioniderstellen($verbindung,$sessionid,$werber,$cybertechsid,
$loggedin, $gueltigbis, $schritt, $zeitmarke);
      }
  return array($sessionid,$werber,$cybertechsid, $loggedin, $gueltigbis,
$schritt, $zeitmarke);
  }

function seite_anzeigen($verbindung,$sessionid,$werber,$cybertechsid,
$loggedin, $gueltigbis, $schritt, $zeitmarke)
  {
  echo "sessionid: $sessionid <BR>\n";
  echo "werber: $werber <BR>\n";
  echo "cybertechsid: $cybertechsid <BR>\n";
  echo "loggedin: $loggedin <BR>\n";
  echo "schritt: $schritt <BR>\n";
  echo "<BR><BR><BR><BR><BR><BR>";
  echo "<a
href=\"http://www.privatesponsor.de/sessionid.php3?sessionid=$sessionid\">Mi
t ID laden</a>";
  }


$verbindung = _(at)_mysql_connect("localhost","trghtzuj56","6izuk68i67");
if (!$verbindung)
    {
    echo "Es ist ein Datenbankfehler aufgetreten. Bitte versuchen Sie es
sp&auml;ter wieder!\n";
    }
  else
    {
    list($sessionid,$werber,$cybertechsid, $loggedin, $gueltigbis, $schritt,
$zeitmarke)=variablenholen($verbindung,$sessionid,$werber,$cybertechsid,
$loggedin, $gueltigbis, $schritt, $zeitmarke);
    alteentwerten($verbindung,$zeitmarke);
    seite_anzeigen($verbindung,$sessionid,$werber,$cybertechsid, $loggedin,
$gueltigbis, $schritt, $zeitmarke);
    }
mysql_close($verbindung);
?>


na wie iss es? - Es funktioniert einwandfrei.....

Die Sessions sind für 30 Minuten gültig und werden dann gelöscht. Man kann
individuelle Variablen einfach einfügen.

Unter seite_anzeigen kann man dann einfach die Seite einfügen, wie man es
will und auf die Variablen zugreifen.

CU

I'm afraid for every comment!

Christian Hofmann
Christian.Hofmann_(at)_gmx.de







php::bar PHP Wiki   -   Listenarchive