cyberchris: PHP Script korrekt?

Hi,
ist mein Script eigentlich korrekt geschrieben?
Denn es funzt nicht richtig.

<?php
$curdir = dirname($_SERVER["PHP_SELF"]);
if ($curdir == "/") { $curdir = ""; }
session_name("sid");
session_start();
$userx = $_SESSION["userx"];
if (file_exists("../daten/mdata/$userx.pwl")) {
$tf = fopen ("../daten/mdata/$userx.pwl", "r-");
$user = fgets ($tf,30);
$user = trim ($user);
$pwd = fgets ($tf,15);
$pwd = trim ($pwd);
$status = fgets ($tf,5);
fclose ($tf); }
else {
header("location: http://".$_SERVER["SERVER_NAME"].$curdir."/mlog.php?msg=Vorgang fehlgeschlagen. Bitte einloggen!1");
exit; }
if (!isset($_SESSION["pwdx"]) OR $_SESSION["pwdx"] != $pwd){
header("location: http://".$_SERVER["SERVER_NAME"].$curdir."/mlog.php?msg=Vorgang fehlgeschlagen. Bitte einloggen!2");
exit; }
?>

vielen dank
gruss chris

  1. Hallo,
    ich glaube ich habe den Fehler: In der vorgehenden Datei überträgt er die Variablen nicht. Aber wieso?:

    ....
    session_start();
    session_name("sid");
    $_SESSION["userx"] = $userx;
    $_SESSION["pwdx"] = $pwdx;
    $_SESSION["status"] = $status;
    header("location: http://".$_SERVER["SERVER_NAME"].$curdir."/main.php?".session_name()."=".session_id());
    exit; }
    ?>

    Seht ihr einen Fehler?
    vielen dank

    1. Hallo!

      ich glaube ich habe den Fehler: In der vorgehenden Datei überträgt er die Variablen nicht. Aber wieso?

      In neueren PHP-Versionen funktioniert das so nicht mehr, Du musst die Parameter über passende Superglobale Arrays aufrufen: http://de2.php.net/manual/de/language.variables.predefined.php

      siehe auch:

      http://tut.php-q.net/get.html
      http://tut.php-q.net/formulare.html
      http://de2.php.net/manual/de/language.variables.external.php
      http://de2.php.net/register_globals

      Grüße
      Andreas

      --
      SELFHTML Tipps & Tricks: http://aktuell.de.selfhtml.org/tippstricks/
    2. Hi cyberchris,

      session_start();
      session_name("sid");

      Du kannst nach session_start() den Session Namen nicht mehr setzen:

      <Zitat PHP Manual session_name()>Der Session-Name wird auf den Ausgangswert zurückgesetzt, der zu Beginn in session.name gespeichert wurde. Deshalb muss session_name()  bei jeder Anfrage aufgerufen werden (und bevor session_start() oder session_register() aufgerufen wurden).</Zitat>

      MfG, Dennis.

      --
      Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
      Wissen ist gut, Können ist besser, aber das Beste und Interessanteste ist der Weg dahin! (Detlef G.)
  2. Hello,

    leider hast Du weder beschrieben, was die Aufgabe des Scriptes ist, noch was nicht funktioniert.
    Und Fehlermeldungen hast Du uns auch nicht mitgeteilt.

    Welche Fehlermeldungen sind denn überhaupt eingeschaltet? Ich hoffe doch, alle!

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau