Variablen über mehrere Dateien behalten
Bernd
- php
0 Peter Pan0 Bernd0 Vinzenz Mai0 Bernd0 Peter Pan0 ChrisB0 Vinzenz Mai
0 ChrisB
Hallo,
als PHP Anfänger bin ich mittlerweile soweit:
In html-Datei:
[ Auszug ]
<h1 align="center">Rechnungsdaten</h1>
<form method="post" action="test1.php">
<table border="0" cellpadding="4">
<tr>
<td> </td>
<td>Anrede:</td>
<td><input type="text" name="anrede" size="10"></td>
</tr>
<tr>
Diese Variable "anrede" übergebe ich an die test1.php
Hier passiert nun folgendes:
<?php
$anrede = $_POST["anrede"];
<?php echo "<b>$anrede<hr>" ?>
Diese Datei soll dann an eine test2.php übergeben werden, also wieder mit method="post" action="test2.php"
In der Test2.php haben die Variablen keinen Inhalt mehr.
Scheinbar "verliert" php die Variableninhalte sobald Sie über mehrere Dateien geschickt werden.
Hi!
Diese Datei soll dann an eine test2.php übergeben werden, also wieder mit method="post" action="test2.php"
Das kann man machen, z.B: als Wert eines input[type=hidden]-Elementes, aber: wahrscheinlich interessierst Du Dich eher für Sessions.
off:PP
wahrscheinlich interessierst Du Dich eher für Sessions.
Hallo,
ok das PHP Variablen nur über eine Datei "speicher" hab ich mittlerweile rausgefunden.
Im Endeffekt soll mein Testformular eine Eingabe aufnehmen können, dieses in der HTML-Datei.
Dann wird das ganze an eine PHP Datei weitergebeben und soll dort erst mal ausgegeben werden zur Prüfung. Und dann gehts in die nächste PHP Datei die den Inhalt dann per Mail versendet.
Lange Rede kurzer Sinn.......Der Sonntag Nachmittag ist Lesetag Thema Sessions.
P.S. Auch als Mitleser des selfhtml Forums bekommt man wirklich genug Wissen mit. Manchmal sind Antworten etwas ruppig aber wenn man dann mal richtig nachdenkt ist eines wichtig. Man kann nur dann was lernen wenn man es selber erarbeitet hat. Es ist ähnlich wie in der Schule. Am liebsten hat man beim Lehrer nachgefragt und wollte gleich die Lösung haben aber man lernt nur etwas durch selbst erarbeiten.
Ich hoffe meine Frage war daher nicht zu naiv gestellt aber trotz google und Fachliteratur bin ich nicht so weit vorgestoßen.
Hallo Bernd,
wahrscheinlich interessierst Du Dich eher für Sessions.
Im Endeffekt soll mein Testformular eine Eingabe aufnehmen können, dieses in der HTML-Datei.
Dann wird das ganze an eine PHP Datei weitergebeben und soll dort erst mal ausgegeben werden zur Prüfung. Und dann gehts in die nächste PHP Datei die den Inhalt dann per Mail versendet.
die Technik des Affenformulars ist ebenfalls etwas für Dich.
Freundliche Grüße
Vinzenz
die Technik des Affenformulars ist ebenfalls etwas für Dich.
Vinzenz
Hallo Vinzenz,
Du kannst mich gerne kritisieren aber eine Eingabe sollte in einer html-Datei erfolgen und die Verarbeitung in einer PHP-Datei, um zu verhindern, daß jemand eine vielleicht vorhandene Sicherheitslücke ausnutzt?!
Abgesehen davon glaube ich nicht das es möglich ist in einer html-Datei folgenden Ablauf zu implementieren:
Eingabe
|
Ausgabe der Eingabe
|
Entscheidung "Willst du diese Eingabe absenden?"
|
Bei Ja Sende email an xxx@xxx.de
Bei Nein javascript back
Hi!
Abgesehen davon glaube ich nicht das es möglich ist in einer html-Datei folgenden Ablauf zu implementieren:
Vinzenz sprach von einem Affenformular, welches in Deinem Fall durch PHP serverseitig HTML-Code erzeugt.
off:PP
Hi,
die Technik des Affenformulars ist ebenfalls etwas für Dich.
Du kannst mich gerne kritisieren aber eine Eingabe sollte in einer html-Datei erfolgen und die Verarbeitung in einer PHP-Datei, um zu verhindern, daß jemand eine vielleicht vorhandene Sicherheitslücke ausnutzt?!
Das verhindert kaum irgendetwas dergleichen.
Spätestens auf der Folgeseite des Formulars, wo du die Daten noch mal zur Kontrolle ausgeben willst, bekommst du damit Probleme, wenn du es nicht richtig machst.
Der Artikel Kontextwechsel erkennen und behandeln vermittelt dir ein genaueres Verständnis für die ganz allgemeine Problematik des Umgangs mit Daten in verschiedenen Kontexten.
Abgesehen davon glaube ich nicht das es möglich ist in einer html-Datei folgenden Ablauf zu implementieren:
Eingabe
|
Ausgabe der Eingabe
|
Entscheidung "Willst du diese Eingabe absenden?"
|
Bei Ja Sende email an xxx@xxx.de
Bei Nein javascript back
Das ist mit *einem* Script, welches jeweils die passende Verarbeitung und Ausgabe durchführt, sehr wohl möglich. Es ist das grundlgende Prinzip des Affenformulars.
(Nur der letzte Schritt wird ggf. problematisch in dem Sinne, dass der Browser beim Zurück-Gehen auf eine Seite, die per POST „aufgerufen“ wurde, ggf. eine Sicherheitsabfrage bringt. Aber dieser letzte Schritt kann auch ersatzlos entfallen - wenn ich die Daten nicht verschicken möchte, dann schliesse ich entweder das Tab/Fenster, oder navigiere wieder woanders hin.)
MfG ChrisB
Hallo Bernd,
die Technik des Affenformulars ist ebenfalls etwas für Dich.
Du kannst mich gerne kritisieren
mein Beitrag war nicht als Kritik gedacht, sondern als Tipp.
aber eine Eingabe sollte in einer html-Datei erfolgen und die Verarbeitung in einer PHP-Datei, um zu verhindern, daß jemand eine vielleicht vorhandene Sicherheitslücke ausnutzt?!
Im Endeffekt soll mein Testformular eine Eingabe aufnehmen können, dieses in der HTML-Datei.
Dann wird das ganze an eine PHP Datei weitergebeben und soll dort erst mal ausgegeben werden zur Prüfung. Und dann gehts in die nächste PHP Datei die den Inhalt dann per Mail versendet.
Dein Szenario mit einer HTML-Datei und zwei PHP-Datei läßt sich durch das Affenformular auf einziges PHP-Skript reduzieren. Die Gesamtkomplexität der Lösung wird verringert. Dazu vermeidet sie außerdem das wirklich unschöne
Bei Nein javascript back
Freundliche Grüße
Vinzenz
Hi,
Diese Variable "anrede" übergebe ich an die test1.php
Hier passiert nun folgendes:
<?php
$anrede = $_POST["anrede"];<?php echo "<b>$anrede<hr>" ?>
Diese Datei soll dann an eine test2.php übergeben werden, also wieder mit method="post" action="test2.php"
In der Test2.php haben die Variablen keinen Inhalt mehr.
Hast du sie denn auch per Formular o.ä. erneut übergeben?
Scheinbar "verliert" php die Variableninhalte sobald Sie über mehrere Dateien geschickt werden.
Variablen sind in PHP immer nur in der aktuellen Scriptinstanz gültig.
Wenn du sie von einer Instanz zu einer anderen „transportieren“ willst, dann musst du sie an diese explizit übergeben. Entweder per GET/POST (Formular), oder in einer Session hinterlegt.
MfG ChrisB