Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » PHP & MySQL » PHP-Programm vergisst nach 1. Durchlauf Variablenwert Antworten
PHP-Programm vergisst nach 1. Durchlauf Variablenwert

david_22
Pixelschubser


Beiträge: 4


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

Diese Nachricht wurde geändert von: david_22
  Profil   Editieren   Zitieren

languitar
Foren-Team


Beiträge: 2795


Zwischenspeichern?

Ohne Code ist das hier nicht nachvollziehbar. Aber bitte auf das wichtiste reduzieren.

---
Take a look here!
Lichtblick - Einblick - Ausblick

  Profil   E-Mail   Website   Editieren   Zitieren

david_22
Pixelschubser


Beiträge: 4


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>

Diese Nachricht wurde geändert von: david_22
  Profil   Editieren   Zitieren

GeneticMaster
Pixelschubser


Beiträge: 10


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...

Diese Nachricht wurde geändert von: GeneticMaster
  Profil   E-Mail   Editieren   Zitieren
 

Antworten
Nach oben