Frage von ikinikin, 101

Warum funktioniert es nicht Variablen bei PHP zu übergeben?

Hallo, auf der ersten PHP-Seite habe ich ein Formular welches nachdem man Submit gedrückt hat dir eine Html-Email schickt, wo auch der Name usw. drin steht den man bei dem Formular eingegeben hat. Das steht in der HTML email: (wen man auf "hier" drückt sollen die Daten die man im Fromular angegeben hat auf einer anderen Seite in eine .txt-Datei geschrieben werden)

<form method=\"get\" action=\"link \"> <input type=\"hidden\" value=\"$email\" name=\"email\" /> 
<input type=\"hidden\" value=\"$vname\" name=\"vname\" /> 
<input type=\"hidden\" value=\"$nname\" name=\"nname\" />
 <input type=\"hidden\" value=\"$code\" name=\"code\" /> 
<input type=\"hidden\" value=\"$geschlecht\" name=\"geschlecht\" />
 <input type=\"submit\" value=\"Hier\" /> 

auf der 2. Seite steht das:

$nr = date('sihdmY');
$mail = $_GET['email'];
 $vorn = $_GET['vname'];
 $gender = $_GET['geschlecht']; 
$nachn = $_GET['nname'];
$handle = fopen ( "speicher.txt", "a" );
 fwrite ( $handle, $mail );
 fwrite ( $handle, " | " );
 fwrite ( $handle, $gender ); 
fwrite ( $handle, " | " );
 fwrite ( $handle, $vorn ); fwrite ( $handle, " | " ); 
fwrite ( $handle, $nachn ); 
fwrite ( $handle, " || " );
 fwrite ( $handle, $nr );
 fwrite ( $handle, "\r\n");
 fclose ( $handle );
echo "Danke.";

exit;

Was ist das Problem? In die Text datei wird nur die Zahl von $nr reingeschrieben. Kann mir da jemand helfen? Danke im Voraus.

Antwort
von RakonDark, 36

Eine HTML Email gibt es so nicht .

Ich zweifel an deinem ganzem Konstrukt .

es gibt eine php seite z.b.

mailform.php
<?php $meinname="meinname"; ?>
<form method="GET" action="schreiben.php">
<input type="hidden" name="meinname" value="<?php echo $meinname;?>">
<input type="submit">
</form>

schreiben.php
<?php
// schreib was mit z.b. $_GET['meinname'] ....
?>
Kommentar von ikinikin ,

Ja das funktioniert ja und das weiss ich auch. Aber kann ich wenn ich ein Formular in eine HTML Email mache die Eingaben nicht an eine Seite leiten?

Kommentar von RakonDark ,

doch und es kommt ja auch was an , nur würde ich dann wiederum erstmal das ganze in einem STRING sammeln und dann schreiben .

Kommentar von ikinikin ,

Okey ich probiers  mal

Kommentar von ikinikin ,

Ich hab grad nochmal das ganze am getestet mit der Gmail app am Handy und da funktioniert alles. Aber am PC mit Mozilla Thunderbird nicht...

Kommentar von RakonDark ,

ich will dir nicht zu nahe treten , aber das was du da machst ist eine ganz böse sache , formulare werden in email clients generell überall anders unterstützt . eigentlich sollte eine id mit einem link einem zu einer webseite führen wo man dann die sachen abschliesst . den wenn der kunde nicht dumm ist dann gibt es schon mal gar keine html mail und wenn der client schlau ist dann mag der keine formulare . und es gibt noch weitere hürden , also lege deine daten in eine datenbank und hole via linkid entsprechendes und dann lass den kunden das dort abschliessen . emails und formulare sind böses zeugs .

Kommentar von ikinikin ,

Ja soll eh nicht öffentlich werden. Ich bin auch kein fortgeschrittener Programmierer oder so. Ich mach das grad nur für mich und versuche es zu lernen.

Kommentar von RakonDark ,

dann hänge das alles urlencodet an einen linkzudeinemscript drann , dort erzeugst du dann das formular mit den vorhandenen werten und lässt dein kunden das ausfüllen .

GET wird ja eh einfach an die URL gehängt :)

Antwort
von webflexer, 50

Furchtbarer Code!

Du hast im value im Formular ja nur die Variable angegeben! Dort mus auch ein echo Befehl rein damit diese im HTML ausgegeben wird!

Beispiel:

<input type="text" value="<?php echo $email; ?>" name="email"> 

Und wieso sind alle INPUT auf hidden gesetzt und nicht auf type="text" ?

Kommentar von ikinikin ,

Das Formular ist in einer mailtext variable. Also macht es doch eigentlich keinen Unterschied ob da 

<?php echo $email; ?>

steht oder einfach nur die Variable.

Die Inputs sind mit absicht auf hidden, da man sie in der Email nicht sehen soll.

Kommentar von RakonDark ,

du weisst aber schon das in der email die wohl als html formular ankommt kein PHP läuft . PHP läuft nur auf dem server und beim kunden im email programm auf jedenfall nicht .

deswegen wundern wir uns , was soll das eine mit dem anderem zu tun haben , entweder es ist ein webformular und kommt vom server oder es ist ein email formular und dann steht da schon das drinne was abgeschickt werden soll oder es sind type="text" damit der kunde was eingeben kann .

Kommentar von RakonDark ,

ich würde sagen , der urfrager hat uns einiges verheimlicht .

Kommentar von webflexer ,

Bitte das nächste mal KONKRET und DEUTLICH alles beschreiben, meine Glaskugel ist momentan defekt.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten