maxim: Login-Script

Hallo,
ich bin gerade dabei ein Login in meiner Webseite einzubauen über PHP, das funktioniert auch soweit, habe es erst mit session register gemacht und jetzt mit $_SESSION[''] probiert, beides funktioniert auch solange mit dem Einloggen bis der Angemeldete ein FOrmular abschicken soll, bei dem Absenden wird dann aufeinmal die Session aufgelöst bzw der Nutzer wird als unregistriert betrachtet.
Herzlichen Dank im voraus

  1. jetzt mit $_SESSION[''] probiert, beides funktioniert auch solange mit dem Einloggen bis der Angemeldete ein FOrmular abschicken soll, bei dem Absenden wird dann aufeinmal die Session aufgelöst bzw der Nutzer wird als unregistriert betrachtet.

    Dann hast Du wohl einen Fehler gemacht. Schau in Deinen PHP-Code, dann wirst Du ihn schon finden.

    1. Echt?
      Wie kommst du denn jetzt darauf?... Findest du dich toll?
      Warum kann ich mich denn einloggen und zwischen den Seiten blättern, aber wenn ich ein Formular absende ist es vorbei....
      mfg maxim

      1. Echt?

        Ja.

        Findest du dich toll?

        Nee.

        Wie kommst du denn jetzt darauf?...

        Tja, meine kombinatorischen Fähigkeiten sind gefürchtet und bewundert. Dass da ein Fehler sein muss, habe ich aus Deinen Äußerungen gefolgert, …

        Warum kann ich mich denn einloggen und zwischen den Seiten blättern, aber wenn ich ein Formular absende ist es vorbei....

        … aber eine Glaskugel, mit der ich Deinen Code durchforsten könnte, um selbst den Fehler zu finden, habe ich leider nicht (und hättest Du dabei Hilfe gewünscht, hättest Du den Code sicher preisgegeben, anstatt uns einfach nur von dem betrüblichen Zustand zu erzählen). Deshalb habe ich mich darauf beschränkt, Dir einfach nur Mut zuzusprechen.

        1. Nagut okay, dass wollte ich eigentlich ersparen, weil der sehr komplex ist, aber egal:

          <?php
          require('angaben.php');
          $tabelle_user='user';
          $ip=$_SERVER['REMOTE_ADDR'];

          If ($_POST['sentlog']==login)
           {
           $username=$_POST['username'];
           $kwort=$_POST['kwort'];
           $kwort=md5($kwort);
           $sql="Select ID, kwort From $tabelle_user where username='$username' ";
           $information=mysql_query($sql,$db);
           if (mysql_num_rows($information)==1)
            {
            If($kwort!=mysql_result($information,0,'kwort'))
             {$meldung.="Bitte kontrollieren Sie ihr Kennwort<br>";}
            else
             {
             $id=mysql_result($information,0,'ID');
             $sql="UPDATE $tabelle_user set ip='$ip' WHERE ID='$id'";
             mysql_query($sql, $db);
             $_SESSION['login']=true;
             //$_SESSION['username']=$username;
             }

          }
           else
            {$meldung.="Bitte kontrollieren Sie Ihren Benutzernamen";}
           }
          //Loeschen der Sessions; und der Ip aus der DB
          Elseif($_POST['sentlog']==logout)
           {
           $ip=$_SERVER['REMOTE_ADDR'];
           $sql="UPDATE $tabelle_user set ip='' WHERE ip='$ip'";
           mysql_query($sql, $db);
           $_SESSION['login']=false;
           }

          //Logout

          If($_SESSION['login']==true)
           {
           echo " Status:eingeloggt
             <form action=".$_SERVER['PHP_SELF']." method='POST'>
             <input type=hidden name=sentlog value=logout>
             <input type=submit value=logout>";
           }
          //Login Formular
          else
           {
           echo "
            <p>".$meldung."</p>
             <form action=".$_SERVER['PHP_SELF']." method='POST'>
              <input type=hidden name=sentlog value=login>
              <p>
               <input size=20 type=text name=username ";

          echo "value='Benutzername' onfocus=value=''>
               <br>
               <input type=password name=kwort onfocus=value=''>
               <br>
               <input type=submit value=login>
             </form>";

          }
          ?>
            das ist das LoginScript vielleicht bringt es etwas

          1. Nagut okay, dass wollte ich eigentlich ersparen, weil der sehr komplex ist

            Wenn Dein Auto kaputt ist, erzählst Du der Werkstatt dann auch, sie möge bitte den Fehler finden, aber Du hättest das Auto lieber zu Hause gelassen, weil es sehr komplex sei?

            <?php
            require('angaben.php');
            $tabelle_user='user';
            $ip=$_SERVER['REMOTE_ADDR'];

            If ($_POST['sentlog']==login)

            […]

            das ist das LoginScript vielleicht bringt es etwas

            a) Du solltest einen Blick in das Fehlerprotokoll des Webservers werfen (mit gesetztem error_reporting(E_ALL)).

            b) Du schriebst, dass der Anmeldevorgang funktioniert und erst danach bei irgendeinem Formular die Sitzung entfleucht ("bis der Angemeldete ein FOrmular abschicken soll"). Falls ich das richtig gedeutet habe: Das demnach funktionierende Login-Skript ist bei der Fehlersuche ebenso nutzlos, wie wenn Du statt Deines kaputten Autos das Fahrrad in die Werkstatt bringst.

            So, und nun gehe ich backen.

          2. Hi,

            Nagut okay, dass wollte ich eigentlich ersparen, weil der sehr komplex ist, aber egal

            Auch wenn ich nicht ganz verstehe, dass die anderen beiden hier gleich so lospoltern ... allzu hilfreich ist der gepostete Code immer noch nicht - session_start() sehe ich dich darin nirgends verwenden, was aber zur Wiederaufnahme einer Session zwingend noetig ist.

            Solltest du das im betreffenden Script drin haben (und in aller Regel auch in allen moeglicherweise "zwischengelagerten" Scriptaufrufen), dann kann man, wenn die Sessiondaten ploetzlich "verloren" gehen, davon ausgehen, dass die Uebermittlung der Session-ID nicht geklappt hat - so dass session_start() dann zwangsweise eine neue, "leere" Session start.

            Die Session-ID kann per Cookie uebergeben werden, oder ersatzweise auch als GET- oder POST-Parameter. Fuer alle diese Wege hat PHP Automatismen - die aber von den Sessions betreffenden Einstellungen abhaengig sind.
            Schau dir also (bspw. ueber phpinfo()) an, wie diese gesetzt sind - ob standardmaessig Cookies verwendet werden sollen, und welche "Fallback"-Mechanismen aktiviert sind. Dabei sind insb. session.use_cookies, session.use_only_cookies, session.use_trans_sid und url_rewriter.tags interessant. Wenn use_trans_sid auf on steht, dann gibt url_rewriter.tags an, welche HTML-Elemente automatisch mit einem Session-ID-Parameter versehen werden, wenn festgetsellt wurde, dass die Uebergabe ueber Cookies nicht geklappt hat - form muesste dann dabei sein, wenn die Session-ID automatisch in POST-Formulare eingefuegt werden soll.

            MfG ChrisB

            1. Hallo, also so sieht das bei mir aus
              Directive Local Value Master Value
              session.auto_start Off Off
              session.bug_compat_42 Off Off
              session.bug_compat_warn On On
              session.cache_expire 180 180
              session.cache_limiter nocache nocache
              session.cookie_domain no value no value
              session.cookie_httponly Off Off
              session.cookie_lifetime 0 0
              session.cookie_path / /
              session.cookie_secure Off Off
              session.entropy_file no value no value
              session.entropy_length 0 0
              session.gc_divisor 1000 1000
              session.gc_maxlifetime 1440 1440
              session.gc_probability 1 1
              session.hash_bits_per_character 5 5
              session.hash_function 0 0
              session.name PHPSESSID PHPSESSID
              session.referer_check no value no value
              session.save_handler files files
              session.save_path C:\DOKUME~1\Besitzer\LOKALE~1\Temp\php\session C:\DOKUME~1\Besitzer\LOKALE~1\Temp\php\session
              session.serialize_handler php php
              session.use_cookies On On
              session.use_only_cookies Off Off
              session.use_trans_sid 0 0

              heißt dass, die Konstante SID nicht erkannt wird und ich eine Session ID per Unique erzeugen müsste, damit ein Loginprogramm funktioniert?
              Mit Cookies möchte ich nicht arbeiten.
              Bezugnehmend, dass session_start fehlt, muss ich sagen, dass diese Loginscript in zahlreichen Dateien implementiert wird, eine Davon sieht folgendermaßen aus
              <?php
              session_start(SID);

              include("frames/counter.php");
              ?>
              <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
              <html xmlns="http://www.w3.org/1999/xhtml">
              <head>
              <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
              <title>1.Ju-Jutsu Verein Bushido Schönebeck</title>
              <script src="dynamic.js" language="javascript" type="text/javascript">
              </script>
              <link rel="stylesheet" type="text/css" href="sframe.css">
              <link rel="stylesheet" type="text/css" href="oframe.css">
              <link rel="stylesheet" type="text/css" href="seitenlayout.css">
              <style type="text/css" >
              </style>
              </head>
              <body>
              <div id="Kopf">
              <table>
               <tr>
                <td rowspan=2 align=left>
                 <img  width="200" src="logo.JPG" />
                </td>

              <td align=right>

              <?php require("login.php")?>

              </td>
               </tr>
               <tr>
                <td align=right valign="bottom">
                 Besucher:
                 <?php include("frames/counteranzeige.php"); ?>
                </td>
                </tr>
               </table>
              </div>

              <?php
               include('admin_abfrage.php');
               if ($admin==1 and session_is_registered('username'))
                {include ("frames/navigationa.php");}

              ?>
              <div id="Seite">
               <?php
               if(session_is_registered('username'))
                {include ("frames/navigationu.php");}
               else
                {include("frames/navigation.php");}
               ?>
              </div>

              <div id="Info">
               <?php include("frames/info.php"); ?>
              </div>

              <div id="Inhalt">
                <div id="Kontakt">
                <h2>Kontaktformular</h2>
                <?php
                $sent=$_POST['sent'];
                $vorname=$_POST['vorname'];
                $nachname=$_POST['nachname'];
                $email=$_POST['email'];
                $betreff=$_POST['betreff'];
                $anliegen=$_POST['anliegen'];
                  If ($sent==1)
                   {
                // Leerzeichen entfernen (nicht unbedingt)
                   $vorname=  trim($vorname);
                   $nachname=  trim($nachname);
                   $email=  trim($email);
                $betreff= trim($betreff);
                $anliegen= trim($anliegen);
                   //Html-Tags entfernen
                $vorname=  strip_tags($vorname);
                $nachname= strip_tags($nachname);
                $betreff= strip_tags($betreff);
                $anliegen= strip_tags($anliegen);
                   //Prüfen ob alles ausgefüllt ist
                If ($vorname and $nachname and $email and $betreff and $anliegen)
                      {
                      $header="\n Content-Type: text/html";
                      If(mail("Maxim_Germer@web.de",$betreff, $message, "from: $email", $header))
                  {
                  echo   "Sehr geehrte/r $vorname $nachname,".
                       "<br />".
                     "Ihr Anliegen wurde erfolgreich an das zust&auml;ndige Personal weitergeleitet.";
                       $message=  "$anliegen".
                       "\n".
                     "Kontakt bei $email".
                     "\n".
                   "  von $vorname $nachname";
                  }
                 Else
                  {echo "Die Informationsübertragung schlug fehl, bitte versuchen Sie es zu einem späteren Zeitpunkt nocheinmal.";}
                      }
                   //Nichts ist ausgefüllt
                Elseif(!$vorname and !$nachname and !$email and !$betreff and !$anliegen)
                 {unset($sent);}
                   //vereinzelt fehlen Angaben
                Else
                      {
                      echo "<h4>"."Angaben unvollst&auml;ndig:"."</h4>";
                   If (!$vorname)
                  {$fehler.= "Vornamen<br />";}
                 //{echo "Vornamen"."<br />";unset($sent);}
                      If (!$nachname)
                  {$fehler.= "Nachnamen<br />";}
                      If (!$email)
                  {$fehler.= "Email<br />";}
                     If (!$betreff)
                  {$fehler.= "Betreff<br />";}
                      If (!$anliegen)
                  {$fehler.= "Anliegen<br />";}
                 If ($fehler)
                  {
                  echo $fehler;
                  unset($sent);
                  }
                      }
                   }
                If (!$sent)
                {
                ?>
                  <h4>Bitte machen Sie zu folgenden Angaben eine Aussage</h4>
               <form action="<?php echo $_SERVER['PHP_Self'] ?>" method=post/>
                    <input type=hidden  name=sent  value=1 />
                    <!sent existiert erst wenn Formular abgeschickt wurde>
                    Vorname <br />
                    <input type=text name=vorname value="<?php echo $vorname; ?>" size=20><br />
                                  <!Textfeld mit Vorname                Wert bleibt bei Best&auml;tigung erhalten>
                    Nachname <br /><input type=text name=nachname value="<?php echo $nachname; ?>" size=20><br />
                    E-Mail <br /><input type=text name=email value="<?php echo $email; ?>" size=30><br />
                    Betreff <br /><input type=text name=betreff value="<?php echo $betreff; ?>" size=30><br />
                    <h4>Ihr Anliegen:</h4><textarea name=anliegen rows=10 cols=25><?php echo $anliegen; ?></textarea><br />
                    <input type=submit name=submit value="abschicken">
                    </form>
                    <?php
                    }
                    ?>
                 </div>
                 </div>
                </body>
              </html>

              1. Hello,

                session.save_path C:\DOKUME~1\Besitzer\LOKALE~1\Temp\php\session C:\DOKUME~1\Besitzer\LOKALE~1\Temp\php\session

                Welche Rechte hat der PHP-Prozess hier? Darf er schreiben, löschen und Dateien anlegen?

                Wo seht "open_basedir"?

                Harzliche Grüße aus
                Sankt Andreasberg
                und Frohes Neues Jahr

                Tom

                --
                Nur selber lernen macht schlau

              2. Hi,

                session.use_cookies On On
                session.use_only_cookies Off Off
                session.use_trans_sid 0 0

                heißt dass, die Konstante SID nicht erkannt wird und ich eine Session ID per Unique erzeugen müsste, damit ein Loginprogramm funktioniert?

                Was die einzelnen Einstellungen bedeuten, kannst du im Manual auf der Seite ueber Sessions nachlesen.

                Mit Cookies möchte ich nicht arbeiten.

                Cookies versucht PHP mit der aktuellen Einstellung aber zu nutzen, und da use_trans_sid auf 0/off steht, fuegt es selber keine SID in Links, Formulare etc. ein.

                Wie du die Einstellungen aendern kannst, findest du ebenfalls im Handbuch (ini_set, etc.)
                Andernfalls muesstest du die SID an den notwendigen Stellen wirklich selber einfuegen.

                MfG ChrisB

                1. Hi

                  Wie du die Einstellungen aendern kannst, findest du ebenfalls im Handbuch (ini_set, etc.)

                  diese Einstellungen sind nicht nur bei mir, sondern auch auf meinem Webserver, und da kann ich diese Einstellungen mit Sicherheit nicht ändern. Gibt es eine Möglichkeit an die Session_id heranzukommen mit der funktion session_id() wird diese mir wie gesagt nicht ausgegeben sondern nur die Anzahl der abgesandten Variablen.
                  Oder muss ich in einer Session eine uniqueID speichern, und dann beim senden übermitteln?

                  1. Hi,

                    Wie du die Einstellungen aendern kannst, findest du ebenfalls im Handbuch (ini_set, etc.)

                    diese Einstellungen sind nicht nur bei mir, sondern auch auf meinem Webserver, und da kann ich diese Einstellungen mit Sicherheit nicht ändern.

                    Nach dieser Aussage vermute ich mal, dass du dich _mit Sicherheit_ nicht entsprechend informiert hast, wie ich vorschlug.

                    Lesen, jetzt: http://www.php.net/manual/en/configuration.changes.php

                    Gibt es eine Möglichkeit an die Session_id heranzukommen

                    Natuerlich - beschreibt das Handbuch zu Sessions auch recht ausfuehrlich. Bspw. auch, welche Konstante den Wert sessionname=sessionid zum einfachen Einfuegen als GET-Parameter liefert.

                    mit der funktion session_id() wird diese mir wie gesagt nicht ausgegeben sondern nur die Anzahl der abgesandten Variablen.

                    Das klingt kaum vorstellbar. Da existiert keinerlei Zusammenhang.

                    Oder muss ich in einer Session eine uniqueID speichern, und dann beim senden übermitteln?

                    Die Session-ID selbst ist bereits "unique" - andernfalls wuerde das ganze Konzept "Sessions" nicht funktionieren.

                    MfG ChrisB

                    1. Hallo,
                      okay die session_id()liefert aufeinmal doch eine UniqueID.
                      Wenn ich nun aber mein Formular abschicken lasse
                      <form action="<?php echo $_SERVER['PHP_SELF'].'?'.$sid; ?>" method="post">
                       <input type=hidden name=sent value=1  />
                        <input type="hidden" name="PHPSESSID" value="<?php echo $sid; ?>" />
                       <input type="hidden" name=zeit value="<?php echo time()+microtime(); ?>" />
                       <table>
                         <tr>
                         <td><h4>Veranstaltung:</h4></td>
                         </tr>
                         <tr>
                          <td><input type=text size=40 name="termin" value="<?php echo $termin; ?>" /></td>
                         </tr>
                         <tr>
                          <td><h4>Kategorie:</h4></td>
                         </tr>
                         <tr>
                          <td>
                          <select name=kategorie>
                          <?php
                          //Dynamisches Erzeugen von  einem Optionsmenü ausgehend von Array katego
                          For ($i=0;$i<count($katego);$i++)
                                {
                           echo "<option ";
                                if($kategorie==$katego[$i])
                            {
                            echo " selected ";
                            $kategorie=$katego[$i];
                            }
                                echo ">$katego[$i]</option>";
                                }
                            ?>
                          </select>
                            </td>
                         </tr>
                         <tr>
                          <td><h4>Veranstaltungsort:</h4></td>
                         </tr>
                         <tr>
                          <td><input type="text" name=ort value="<?php echo $ort;?>" /></td>
                         </tr>
                         <tr>
                          <td><h4>Datum:</h4></td>
                         </tr>
                         <tr>
                          <td><input type=text name="datum" value="<?php If($sent==1){echo $datum;} ?>" /></td>
                         </tr>
                         <tr>
                          <td><h4>Zeitraum(für länger andauernde Termine):</h4></td>
                         </tr>
                         <tr>
                          <td><input type=text name="zeitraum" value="<?php echo $zeitraum;?>" /></td>
                         </tr>
                         <tr>
                          <td>
                          <input type="submit" value="Abschicken" />
                          </td>
                         </tr>
                       </table>

                      </form>

                      egal welche Adresse in form action eingetragen wird, keine wird aufgerufen.

                      1. Selbst auf diesen Teil vollständig reduziert, tacuht dasselbe Problem auf
                        <?php
                        session_start(SID);
                        $sentlog=$_POST['sentlog'];
                        If ($sentlog==login)
                         {

                        $_SESSION['login']=true;
                           //$_SESSION['username']=$username;
                           }

                        //Loeschen der Sessions; und der Ip aus der DB
                        Elseif($sentlog==logout)
                         {
                         $_SESSION['login']=false;
                         }

                        //Logout

                        If($_SESSION['login']==true)
                         {
                         echo " Status:eingeloggt
                           <form action=".$_SERVER['PHP_SELF']." method='POST'>
                           <input type=hidden name=sentlog value=logout>
                           <input type=submit value=logout>";
                         }
                        //Login Formular
                        else
                         {
                         echo "
                          <p>".$meldung."</p>
                           <form action=".$_SERVER['PHP_SELF']."?PHPSESSID=".session_id()." method='POST'>
                            <input type=hidden name=sentlog value=login>
                            <p>
                             <input size=20 type=text name=username ";

                        echo "value='Benutzername' onfocus=value=''>
                             <br>
                             <input type=password name=kwort onfocus=value=''>
                             <br>
                             <input type=submit value=login>
                           </form>";

                        }

                        if  ($_SESSION['login']==true ) {

                        ?>
                        <h2>Eingabe der Veranstaltung:</h2>
                        <form action="<?php echo $_SERVER['PHP_SELF'].'?PHPSESSID='.$sid; ?>" method="POST">
                         <input type=hidden name=absenden value=gesendet  />
                          <input type="hidden" name="PHPSESSID" value="<?php echo $sid; ?>" />
                         <table>
                           <tr>
                           <td><h4>Veranstaltung:</h4></td>
                           </tr>

                        <td>
                            <input type="submit" value="Abschicken" />
                            </td>
                           </tr>
                         </table>

                        </form>
                        <?php } ?>

                        Beim Absenden des formulars, wird man automatisch "gekickt"

                        1. Hello,

                          Selbst auf diesen Teil vollständig reduziert, tacuht dasselbe Problem auf
                          <?php
                          session_start(SID);

                          Wozu machst Du denn das?
                          Die Funktion session_start() suhct nach der bereits vergebenen und vom Client mitgesandten Session-ID in den ihr bekannten Variablen ($_COOKIE, $_POST, $_GET) unter dem Elementnamen, den man mit session_name() abfragen oder auch setzen kann.

                          Wenn man eine Session vom Client also wieder aufnehmen will, braucht man also session_start() keine Daten zu übergeben. Das Übergeben einer ID würde dazu führen, dass eine bestimmte Sessiondatei wiederbenutzt wird, die aber nicht in Zusammenhang mit dem Client stehen muss.

                          Außerdem bin ich mir im Moment unsicher, ob die Konstante SID überhaupt schon existiert, bevor man session_start() aufgerufen hat. Nach meiner Erinnerung wird die nämlich erst dadurch erzeugt und in das superglobale Scope des Scriptes importiert, dass man session_start() aufruft. Wenn session_start() in den vorbezeichneten Variablen eine gültige Sessionnummer gefunden hat, ist diese Konsante außerdem ein Leerstring.

                          Das was Du dort oben versuchst, wird entweder die Session mit dem String 'SID' versuchen, oder  aufgrund der Typumwandlung von PHP dazu führen, dass eine Session mit dem Wert 0 aufgebaut werden soll (das habe ich nicht nachgeschaut, was ankommt). Beides stellt aber keine gültige Sessionnummer dar. Die muss eine hexadezimale Zahl von 32 Stellen Länge sein, sonst lehnt PHP sie ab und versucht, eine neue Session zu starten.

                          Harzliche Grüße aus
                          Sankt Andreasberg
                          und Frohes Neues Jahr

                          Tom

                          --
                          Nur selber lernen macht schlau

                          1. Hallo

                            session_start(SID);

                            Wozu machst Du denn das?

                            Gute Frage, das habe ich einmal im Quelltext von einem Freund gelesen.

                            Selbst wenn ich aber nur session_start(); benutze taucht immer wieder das Problem auf.
                            Liegt es daran, dass ich 2 Formulare habe? Dann müsste trotzdem noch die Session existieren.
                            Weiterhin bezugnehmend auf $_SERVER['PHP_SELF'] so sollte dass doch der eher sichere Weg sein, wenn globals=off sind. (Aber das ist nebensächlich)

                            1. Hello,

                              Weiterhin bezugnehmend auf $_SERVER['PHP_SELF'] so sollte dass doch der eher sichere Weg sein, wenn globals=off sind. (Aber das ist nebensächlich)

                              Das hat mit register globals überhaupt nichts zu tun.
                              $PHP_SELF und $_SERVER['PHP_SELF'] sind daher gleichermaßen betroffen.
                              Man darf beide nicht ungeprüft in das action-Attribut seines Formulares aufnehmen, wenn einem die Daten, die über das Formular übertragen werden, lieb sind.

                              Dann sollte man $_SERVER['SCRIPT_NAME'] für den Selbstbezug benutzen, oder aber die Pfadergänzug (Apache Pathinfo) sicher abschneiden. Pfadergänzung bedeutet hier:

                              http://example.org/scriptname.php/noch/ein/paar/Ergaenzungen/beliebiger/Art
                                                                   -------------------------------------------

                              Da kann man auch böse Dinge anhängen, die ich aber nicht nochmal vorführen werde hier.

                              Harzliche Grüße aus
                              Sankt Andreasberg
                              und Frohes Neues Jahr

                              Tom

                              --
                              Nur selber lernen macht schlau

                          2. echo $begrüßung;

                            Außerdem bin ich mir im Moment unsicher, ob die Konstante SID überhaupt schon existiert, bevor man session_start() aufgerufen hat.

                            Ergänzung: Das bekommt man ja schnell mit, wenn man das error_reporting auf E_ALL stehen hat. Eine nicht vorhandene Konstante ergibt dann eine Meldung, die sonst in der Grundeinstellung von error_reporting verschwiegen würde.

                            echo "$verabschiedung $name";

                            1. Hallo
                              .. ihr seid doch alle DOOOOOOFFFF, oder ich ;-)
                              Ich habe es: mein Problem lag darin, dass ich beim Absenden des Formulars Werte wie login und logout gewählt habe, und da hat mir der Fehlerreport folgendes angezeigt:
                              [Wed Jan 02 11:20:03 2008] [error] [client 192.168.178.20] PHP Notice:  Use of undefined constant login - assumed 'login' in D:\Server\WWW\Jujutsu\neu\session.php on line 5, referer: http://maxim/Jujutsu/neu/session.php?PHPSESSID=htje7kmrqnvpaquhjdq77ni1v3
                              [Wed Jan 02 11:20:03 2008] [error] [client 192.168.178.20] PHP Notice:  Use of undefined constant logout - assumed 'logout' in D:\Server\WWW\Jujutsu\neu\session.php on line 14, referer: http://maxim/Jujutsu/neu/session.php?PHPSESSID=htje7kmrqnvpaquhjdq77ni1v3

                              also hätte ich diese Variablen gar nicht benutzen dürfen.

                              Vielen Dank für eure Hilfe ;-)
                              Einen schönen Tag noch
                              Maxim

                              1. Hallo,

                                [Wed Jan 02 11:20:03 2008] [error] [client 192.168.178.20] PHP Notice:  Use of undefined constant login - assumed 'login' in D:\Server\WWW\Jujutsu\neu\session.php on line 5, referer: http://maxim/Jujutsu/neu/session.php?PHPSESSID=htje7kmrqnvpaquhjdq77ni1v3
                                [Wed Jan 02 11:20:03 2008] [error] [client 192.168.178.20] PHP Notice:  Use of undefined constant logout - assumed 'logout' in D:\Server\WWW\Jujutsu\neu\session.php on line 14, referer: http://maxim/Jujutsu/neu/session.php?PHPSESSID=htje7kmrqnvpaquhjdq77ni1v3

                                also hätte ich diese Variablen gar nicht benutzen dürfen.

                                Ähm... Die Fehlermeldung sieht aber VERDAMMT danach aus, dass Du sowas hast wie $_POST[login] oder $_POST[logout] oder sowas in der Art - korrekt wäre aber $_POST['login'] und $_POST['logout'] (siehe auch PHP-Handbuch).

                                Viele Grüße,
                                Christian

                                1. Hi,

                                  Ähm... Die Fehlermeldung sieht aber VERDAMMT danach aus, dass Du sowas hast wie $_POST[login] oder $_POST[logout] oder sowas in der Art - korrekt wäre aber $_POST['login'] und $_POST['logout'] (siehe auch PHP-Handbuch).

                                  ich glaube, das hat er auch schon gepostet: https://forum.selfhtml.org/?t=164279&m=1070569.

                                  Viele Grüße
                                  Jörg

                      2. Hello,

                        <form action="<?php echo $_SERVER['PHP_SELF'].'?'.$sid; ?>" method="post">

                        Nur so nebenbei erwähnt: Die ungefilterte Verwendung von $_SERVER['PHP_SELF'] in einem Action-Attribut eines <form>-Elementes macht das betroffene Formular bei üblicher Servereinstellung entfürhbar.
                        Nimm daher lieber $_SERVER['SCRIPT_NAME'], das enthält tatsächlich nur den (Teil-)Pfad zur Ressource und keine Pfadergänzungen.

                        Pfadergänzugnen bitte nicht mit Query-String verwechseln.

                        Harzliche Grüße aus
                        Sankt Andreasberg
                        und Frohes Neues Jahr

                        Tom

                        --
                        Nur selber lernen macht schlau

  2. Hello,

    ich bin gerade dabei ein Login in meiner Webseite einzubauen über PHP, das funktioniert auch soweit,

    Das ist eine relativ hilfreiche Aussage für die Fehlersuche

    habe es erst mit session register gemacht

    Was interessiert uns hier, mit wem Due es gemacht hast?

    und jetzt mit $_SESSION[''] probiert,

    Sg mal, findest Du überhaupt kein Maß?

    beides funktioniert auch solange mit dem Einloggen bis der Angemeldete ein FOrmular abschicken soll,

    Was soll das den jetzt schon wieder heißen? Findest Du nicht, dass Du hier im falschen Forum bist?

    bei dem Absenden wird dann aufeinmal die Session aufgelöst bzw der Nutzer wird als unregistriert betrachtet.

    Ach so, hat doch 'was zu tun mit HTTP und Sessions und Wiedererkennung eines Users usw...
    Das hättest Du auch gleich sagen können.

    Dann wäre es hilfreich, wenn Du uns kurz die ca. drei Zeilen des Initialisierungsscriptes posten könntest und dann mitteilen würdest, was der "User" als Antwort bekommt, also den HTTP-Header, der beim Client ankommt.

    Den kann man z. B. mit http://web-sniffer.net feststellen. Es gibt aber noch bessere Adressen dafür, die kann ich mir nur nicht merken, solange die nicht dauerbeständig hier im Kopf des Forums eingebunden sind. ;-((

    Harzliche Grüße aus
    Sankt Andreasberg
    und Guten Rutsch

    Tom

    --
    Nur selber lernen macht schlau