WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik


Homepage und Webhosting-Forum

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. Fragen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.


Forum » PHP & MySQL » PHP-Programm vergisst nach 1. Durchlauf Variablenwert » Antworten
Benutzername:
Passwort: Passwort vergessen?
Inhalt der Nachricht: Fett | Kursiv | Unterstrichen | Link | Bild | Smiley | Zitat | Zentriert | Quellcode| Kleiner Text
Optionen: Emailbenachrichtigung bei Antworten
 

Die letzten 5 Postings in diesem Thema » Alle anzeigen
von GeneticMaster
Servus,

...also ich hoffe ich habe dich richtig verstanden. Bei PHP ist es so dass alle Variablen die angelegt wurden nach beendigung des Scripts wieder verloren gehen. D.h. du musst die Variable Zwischenspeichern indem du z.B. mit Sessions arbeitest... Wenn dein Script das 2. mal aufgerufen wird, startest du die Session und prüfst, ob die Variable schon gesetzt ist oder nicht...



1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17:
session_start(); # am Anfang des Scripts Session starten bzw. anlegen

[...]

if (!session_is_registered('start')) # falls Var start noch nicht initialisiert wurde dann...
   {
   $amonat = date("m");  
   $ajahr  = date("Y");  
   $_SESSION['start'] = 1; # Var in Session schreiben damit beim nächsten Aufruf verfügbar
   echo "Werte 1.Aufruf: xstart= $xstart <p>";
   echo "Monat/Jahr= $amonat.$ajahr <p>";
   } 

[...]



Ganz wichtig ist noch dass du bevor du session_start() aufrufst keinerlei Ausgaben per print oder echo machst...
von david_22
Unten habe ich den Quellcode angegeben. Die if (xstart-Schleife) soll eigentlich nur beim Seitenstart durchlaufen werden, da dann $xstart =1 gesetzt wird. Nachdem der Knopf einmal gedrückt wurde, sollte in der dritten Echo-Zeile statt 06.2006 05.2006 stehen. Aber das Programm vergisst den Variablenwert wie gesagt am Ende.

P.S.: Was ist bei PHP mit Zwischenspeichern gemeint?

1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
28: 
29: 
30: 
31: 
32: 
33: 
34: 
35: 
36: 
37: 
38: 
39: 
40: 
41: 
42: 
43: 
44: 
45: 
46: 
47: 
48: 
49: 
50: 
51: 
52: 
53: 
54: 
55: 
56: 
57: 
58:
<!-- PHP - Bereich --- PHP - Bereich --- PHP - Bereich --- PHP - Bereich --- PHP - Bereich -->

<? 
//--- Bereich für automatische Bildanzeige (beim Aufruf der Seite) =>Bild des Monats -------

// Ermittlung des Monats und des Jahres
echo "Startwert xstart= $xstart <p>";


if ($xstart <> 1) //soll nur beim ersten Start der Seite abgearbeitet werden
   {
   $amonat = date("m");  
   $ajahr  = date("Y");  
   $xstart = 1;
   echo "Werte 1.Aufruf: xstart= $xstart <p>";
   echo "Monat/Jahr= $amonat.$ajahr <p>";
   
   } 
//--- Pfeil zurueck  

if ($submit=="vorher")
   {
   $amonat=$amonat-1;
 
   if ($amonat==0)
      {
      $ajahr=$ajahr-1;
      $amonat=12;
      }
   if ( $amonat<10)
      {
      $cmonat="0".$amonat;
      $amonat=$cmonat;
      }
    echo "Werte If-Zweig Vormonat: xstart= $xstart <p>  Monat/Jahr= $amonat.$ajahr <p>  ";
    
      
   } 

$foto="C:/Praktikant/Dokumente/Fotoclub/fotoclub-wismar/bild_des_monats/".$ajahr.$amonat.".jpg";

?>

<!-- HTML - Bereich --- HTML - Bereich --- HTML - Bereich --- HTML - Bereich --- HTML - Bereich -->
<form action='<?$PHP_SELF?>' method='post'> 
<table align='center'>
<tr><td align='center'><input type='submit' name='submit' value='vorher'></td>
</tr>
</table>

<?  // Testausgabe Variablen
    echo "Werte Button Vormonat gedrückt: xstart= $xstart <p>  Monat/Jahr= $amonat.$ajahr <p>  ";
    
?>

</form>
</BODY>
</HTML>
von languitar
Zwischenspeichern?

Ohne Code ist das hier nicht nachvollziehbar. Aber bitte auf das wichtiste reduzieren.
von david_22
Bei meinem PHP-Programm tritt folgendes Problem auf: Am Anfang wird der "Hauptvariablen" ein Wert zugewiesen.
Nachdem das Programm einmal bis zum Ende durchgelaufen ist (bei dem Programmdurchlauf (eine If-Schleife und eine If-else Schleife) wird der Variablenbwert geändert), vergisst das Programm den Wert der "Hauptvariablen".
Das heisst, dass die Variable beim nächsten Programmdurchlauf leer ist.

Gibt es dafür eine Lösung, z. Bsp. einen Befehl der den Variablenwert wieder zum Anfang des Programmes mitnimmt?

Es wäre nett, wenn ihr mir schnell helfen könntet.

Danke

Nach oben