Hej,
Jeg er relativt ny i PHP, så det er nok muligt, jeg spørger om noget
åbenlyst, men:
Jeg er igang med at lave en formmail-ting, som kan alt det sædvanlige
med at tage indholdet af en formular og sende det i et eller andet
format til en e-mail adresse. Selve formularen skal kunne bygges i
almindelig HTML, og scriptet ved ikke på forhånd, hvor mange felter og
værdier, der er i formularen. Ikke noget overraskende der...
Okay - jeg er nået så langt, som til at konstatere, at $HTTP_POST_VARS
nok er min bedste ven i den sammenhæng - min method er "POST", så jeg
går ud fra, det er den, jeg skal have fat i.
Jeg har lavet et lille testscript, der udskriver indholdet af
$HTTP_POST_VARS efter at have submittet en bestemt form (se nedenfor).
Resultatet bliver sådan her:
($variabel = værdi)
--------------------------------------------------
lmsoren@hotmail.com=
fornavn= Lars
efternavn= Sørensen
email= lmsoren@hotmail.com
radioknap= Rødhætte
checkbox= Ja tak
kommentar= hej fra Lars Michael!
kommentar fra webstedet=
=
Lars=
Sørensen=
lmsoren@hotmail.com=
Rødhætte=
Ja tak=
hej fra Lars Michael!=
send ind=
----------------------------------
Outputtet ved de "tomme" værdier ser ud til at være et mellemrum. Det er
jo til at forholde sig til, men jeg har alligevel et problem her:
I kildekoden har jeg angivet en række "hidden"-felter, som
tilsynelandene ikke dukker op, bortset fra "recipient", der står på
variabel-pladsen...
....
<input type="hidden" name="recipient" value="lmsoren@hotmail.com">
<input type="hidden" name="required"
value="fornavn,efternavn,email,radioknap,checkbox,kommentar">
<input type="hidden" name="subject" value="kommentar fra webstedet">
<input type="hidden" name="file" value="<?php __FILE__ ?>">
....
Jeg forventer ikke problemer med at lave et brugbart array ud af
$HTTP_POST_VARS, men hvordan får jeg så fat i "hidden"-felterne, som
åbenbart ikke er med her? Som udgangspunkt ved scriptet jo ikke, hvor
mange hidden-felter der er i formularen.
Hvis det er nogen hjælp, er formularen på
http://www.lmsoren.dk/feedback_form.php
Kildekoden til testscriptet er: - Og jo, der er sikkert hurtigere måder
at gøre det på, men det virker
-----------------------
<?php
$vars = implode($HTTP_POST_VARS,",");
$variables = explode (",",$vars);
for ($n=0; $n<count($variables);$n++)
{
print ("$variables[$n]= ${$variables[$n]} <br>");
}
?>
---------------------
Derudover savner jeg en oversigt med dybdegående information om, hvordan
de prædefinerede variable er skruet sammen - jeg har checket manualen og
flere PHP-sites (bl.a. PHPBuilder, PHP.net, samt nogle danske), uden at
blive rigtig meget klogere.
På forhånd tak,
lms