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