matthias: Session ID's und explode

Also ohne die ersten drei Zeilen des Scripts, also ohne die suchmaschinenfreundliche Umgestaltung der URI hat der Script (damals natürlich leicht modifieziert aufgrund der benötigen "?") funktioniert. Nun nichtmehr.
die Angaben der Tabelle, Datenbank und so werden included, die stimmen.

$url=explode("/",$REQUEST_URI);
$H = $url[3];
$Kennung = $url[4];
Init_Shop();
mysql_connect("$MySQL_Host","$MySQL_User","$MySQL_Passw");
function get_id($id)
{
  global $db, $keep,$keep_time,$REMOTE_ADDR, $PHPSELF;
  if ($id != "") {
   $result=mysql("$db","SELECT * FROM besucher WHERE  Besucher='$id'");   //
   $anz=mysql_num_rows($result);
   if ($anz == "0") {
     $id=md5(uniqid(rand()));
     if ($keep) {
        setcookie("C_ID",$id,time()+$keep_time*24*60*60);
     }
     $DatumZ=date("z");
     mysql("$db","INSERT INTO besucher VALUES ('$id','$DatumZ')");
    Header("Location:artikelh.php/$H/$id");
     }
}
if ($id == "") {
   $id=md5(uniqid(rand()));
   if ($keep) {
       setcookie("C_ID",$id,time()+$keep_time*24*60*60);
   }
   $DatumZ=date("z");
   mysql("$db","INSERT INTO besucher VALUES ('$id','$DatumZ')");
  Header("Location:artikelh.php/$H/$id");
   }
return $id;
}
$Kennung=get_id($Kennung);

Warum geht das denn nun nicht?
Hilfe!
MfG
Matze

  1. Also ohne die ersten drei Zeilen des Scripts, also ohne die suchmaschinenfreundliche Umgestaltung der URI hat der Script (damals natürlich leicht modifieziert aufgrund der benötigen "?") funktioniert. Nun nichtmehr.

    *Was* geht nicht mehr? Fehlermeldung (welche?)? Was passiert?

    die Angaben der Tabelle, Datenbank und so werden included, die stimmen.

    $url=explode("/",$REQUEST_URI);
    $H = $url[3];
    $Kennung = $url[4];

    Steht denn in $H und $Kennung, was Du erwartest? Mußt schon ein bissl genauer werden - ohne zu wissen, wie z.B. in der konkreten Anwendung die $REQUEST_URI überhaupt aussieht, kann man Dir da nicht helfen.

    1. Also vorher hieß die URI z.b.
      xyz.de/ugruppe.php?H=101&Kennung=98s4f54dsf54s60d90
      oder so.
      nun lautet sie
      xyz.de/ugruppe.php/101/98s4f54dsf54s60d90
      was soweit auch funktioniert, alles bestens. Nur habe ich einen script auf der startseite, der dafür sorgt, dass Session Id's die älter als 2 tage sind aus der mysql datenbank gelöscht werden.
      Nun will ich mit dem oben geschreiben script herausfinden, ob die Session ID noch in der datenbank vorhanden ist.

      Also soll wenn eine abgelaufene Session-Id angegeben ist, oder überhaupt garkeine session id angegeben ist, eine neue verteilt werden.
      Das tat der script oben auch immer schön, bis ich halt den ersten teil mit den explode noch mit eingebaut hatte.

      Hmm.
      weiß nicht warum das net geht, mir persönlich is bis jetzt kein fehler aufgefallen.
      mfg
      matze

      1. Also vorher hieß die URI z.b.
        xyz.de/ugruppe.php?H=101&Kennung=98s4f54dsf54s60d90
        oder so.
        nun lautet sie
        xyz.de/ugruppe.php/101/98s4f54dsf54s60d90

        Und Du machst

        $url=explode("/",$REQUEST_URI);
        $H = $url[3];
        $Kennung = $url[4];

        Es ist aber $H == $url[2] und $Kennung == $url[3], weil Arrays ab 0 zählen.
        Aber das hätte Dir wie gesagt mein Tip mit "schau mal nach, ob in den Variablen das steht, was Du erwartest" schon gesagt, IOW elementares Debugging...