Cookie oder Session?

wal

Erfahrenes Mitglied
Hallo,

ich möchte mittels Cookies bestimmte Formulare meiner Intranetseite immer wieder füllen lassen und bin mir aber nicht sicher, ob das über Cookies überhaupt funktioniert. Vielleicht ist es aber auch besser, Sessions zu verwenden ... wenn das der bessere Weg sein sollte.

Hintergrund:
Ich habe im Intranet mehrere Fromulare in denen die User z.B. Probleme weitermelden können. Dazu müssen sie immer wieder ihren Namen, Durchwahl, Bereich usw. eingeben. Also immer wieder die selben Daten. Nun würde ich dies gerne so gestalten, das sie diese Daten einmal eingeben müssen und beim nächsten Aufruf sollen die entsprechenden Formularfelder der HTML Seite dann bereits ausgefüllt sein.

Meine Fragen nun dazu:
Wie kann ich soetwas gestalten - über Cookies oder Sessions?
Kann ich überhaupt diverse Formular-Daten im Cookie speichern?
Kennt jemand ein Beispielscript, in dem verschiedene Formulare in Cookies gespeichert werden, um zu sehen wie soetwas funktioniert?

Ich bedanke mich schon mal vorab für eure Hilfen und Tipps
 
So, wie es du beschreibst würde ich eher auf cookies tendieren, denn sessions werden gelöscht, sobald du den browser zumachst.

wie das mit den cookies genau geht musst du nachlesen. habe es momentan auch nicht gerade abruf bereit. aber es gibt ja genügend nachschlage werke.
 
Hi,

vielen Dank für eure Antworten ... und für den Link. Das sieht sehr gut aus! Super
So, jetzt werde ich mal schauen, ob ich es umsetzen kann ...

Vielen Dank nochmals auch das es so schnell ging. :) :)
 
Hallo,
ich bin es leider nochmal. Es hat leider nicht so richtig geklappt mit dem Anlegen des Cookies und auch wieder Auslesen dieses Cookies.

Es wird zwar ein Cookie geschrieben, doch dieser nennt sicher einfach nur:
Anmeldenamen@Formulare[2].txt

Ich habe eine Html Seite in der ich die Daten eingebe und diese werden dann an eine PHP Seite weitergeleitet.

Anbei mal mein Testcode für den Überblick:

Html:
PHP:
<html>
<head
<title>Cookie-Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="keywords" lang="de" content="">
</head>

<body bgcolor="#FFFFFF">
<table>
 <tr>
   <td>
     <form name="formular" action="cookie.php" method="post">
        <table border="1" cellpadding="2" cellspacing="0" width="100%" bordercolor="#C0C0C0">
            <tr>
              <td  colspan="2" class="font_owner">Persönliche Daten des Call-Verfassers</td>
            </tr>
            <tr>
              <td  class="t_content" width="110">Vorname: <!-- vornamefehler --></td>
              <td  class="t_content"><input name="vorname" type="text" id="vorname" size="20"></td>
            </tr>
            <tr>
              <td  class="t_content">Name:<!-- nachnamefehler --></td>
              <td  class="t_content"><input name="nachname" type="text" id="nachname" size="20">&nbsp;</td>
            </tr>
            <tr>
              <td  class="t_content" valign="top" align="left">SLx/COD:<!-- slxfehler --></td>
              <td  class="t_content"><input name="slx" type="text" id="slx" size="5"></td>
            </tr>
            <tr>
              <td  class="t_content">Rechner-Nr.:<!-- rechnerfehler --></td>
              <td  class="t_content"><input name="rechner" type="text" id="rechner" size="10"></td>
            </tr>
            <tr>
              <td  class="t_content">Bereich:<!-- bereichfehler --></td>
              <td  class="t_content"><input name="bereich" type="text" id="bereich" size="20"></td>
            </tr>
            <tr>
              <td  class="t_content">Durchwahl:<!-- durchwahlfehler --></td>
              <td  class="t_content"><input name="durchwahl" type="text" id="durchwahl" size="5"></td>
            </tr>
          </table>
       <br>
      <input type="submit" value="Absenden" name="senden">
 &nbsp;
      <input type="submit" value="Zurücksetzen" name="delete">
    </form>
  </td>
  </tr>
 </table>
</body>
</html>

Und hier die PHP Seite:
PHP:
<?php
 $done=false;

 if (isset($_POST["delete"])) {
    displayStart();
	$done=true;
 }
 
 if (!$done) {
  if (isset($_POST["senden"])) {  
     displayStartAgain();
     $done=true;
   }
 }

 if (!$done) {
  displayStart();
  $done=true;
 }

 // Start-HTML ausgeben (1:1 - Wiedergabe der HTML-Datei mit fpassthru)
 function displayStart() { 
  $fileName="cookie.htm";
  $fp=fopen($fileName,"rb");
  // $s_Inhalt=fread($fp, filesize($fileName));
  fpassthru($fp);
  fclose($fp);
 }

 // Function unvollst. Eingabe
 function displayStartAgain() { 

	//cookie setzen
	$verf_data=$_REQUEST['vorname']."#".$_REQUEST['nachname']."#".$_REQUEST['slx']."#".$_REQUEST['rechner']."#".$_REQUEST['bereich']."#".$_REQUEST['durchwahl'];
	setcookie("testcookie", $verf_data, time()+3600);

	//Cookie auslesen
	$cookievar = preg_split("/#/", $testcookie);

	// Inhalt von $verf_data ausgeben
                echo $verf_data."<br>";
  
 }
?>

Leider wird kein Cookie mit dem Namen Testcookie gesetzt, auch erhalte ich eine Fehlermeldung bzgl. der $testcookie - Variablen:

Notice: Undefined variable: testcookie in:
Laufwerk:\Formulare\cookie.php on line 38

Kann mir jemand bitte sagen, ob ich da eine falsche Syntax verwendet habe oder funktioniert das so nicht, wie ich mir das gedacht habe?

Vielen Dank für eure Hilfe...
 
ich würde anstatt $_REQUEST $_POST nehmen. zudem kannst du es auch mit $_COOKIE['testcookie'] überprüfen anstatt nur mit $testcookie;

wahrscheinlich sind die global register off geschalten.
 
Hi,

vielen Dank für alle Antworten. Nun habe ich es hinbekommen soweit. Das Cookie wirde gesetzt und ich kann es auslesen. Ja, es war auch richtig. Meine Globals waren und sind auf off. Daher musste ich diese extra definieren als Globels im Script

Bis jetzt sieht es gut aus. ;-) :)

Danke an alle hat superschnell geklappt!
 
Zurück