Avatar billede jokeren25 Nybegynder
04. marts 2008 - 21:55 Der er 16 kommentarer og
1 løsning

Check $_POST variabler

Hej eksperter,

er det muligt at checke og få en liste af alle post variabler som bliver sendt med vilkårlige navne.

Min ide er at lave en side som kan modtage mail formularer som har forskelligt indhold.

Håber der er nogen der kan hjælpe mig. På forhånd tak.
Avatar billede smitten1 Nybegynder
04. marts 2008 - 21:58 #1
du kan lave en foreach på post arrayet
Avatar billede showsource Seniormester
04. marts 2008 - 21:59 #2
echo"<pre>";
print_r($_POST);
echo"</pre>";

Ved ikke lige hvad du tænker på.
Avatar billede jokeren25 Nybegynder
04. marts 2008 - 22:02 #3
Checker den alle $_POST variablerne igennem som bliver sendt til en given side?

På forhånd tak.
Avatar billede showsource Seniormester
04. marts 2008 - 22:16 #4
Du kan f.eks. tjekke om et bestemt post navn er sat,

if(isset($_POST["fornavn"])) {

}

og tjekke om $_POST["fornavn"] er tom

if(trim($_POST["fornavn"]) == "") {

}

Men hvad vil du tjekke?
Avatar billede jokeren25 Nybegynder
04. marts 2008 - 22:21 #5
Tak det virker! Svar og der er point...
Avatar billede gvp Nybegynder
04. marts 2008 - 22:25 #6
foreach ($_POST as $value){
gør noget magi med din $value;
}
Er det den slags du skal?

Showsource har givet dig løsningen længere oppe hvis du bare skal skrive det hele ud. Det kommer an på på hvilken måde du skal bruge din data, hvad der er din løsningen.
Avatar billede jokeren25 Nybegynder
04. marts 2008 - 22:26 #7
Ville lave nogle generelle navne såsom "mail_to_sender" og resten kunne så være valgfrie og sende forskelligt indhold uanset formfeltets navn, hvis det giver mening?
Avatar billede showsource Seniormester
04. marts 2008 - 22:38 #8
Jeg er stadig ikke helt med, og en foreach kan jo også putte "key" på

foreach($_POST as $key => $value) {
echo $key." = ".$value."<br />";
}
Avatar billede jokeren25 Nybegynder
04. marts 2008 - 22:50 #9
showsource:

jeg sidder og laver lidt på lille cms system og det kunne være nice hvis man kunne have en side der kunne modtage forskelligt indhold fra mail formulare som brugerne selv laver. Min tanke var at hvis f.eks. scriptet fandt "mail_to_sender" så skulle den sende mail'en til denne.

Yderligere var det min tanke at lave et lille scrip hvor brugerne selv kunne oprette mailformulare med alle de formfelter de havde lyst til bare de havde udfyldt de obligatoriske.

Tak for nedenstående:

foreach($_POST as $key => $value) {
echo $key." = ".$value."<br />";
}

Nu skal jeg bare lave noget ala

if($key == "mail_to_sender"){$send_to = $value;}

også skal jeg bare lure på hvordan jeg skal lave de felter som er ukendte i en mail funktion...
Avatar billede showsource Seniormester
04. marts 2008 - 23:09 #10
$poststr = "";

foreach($_POST as $key => $value) {
$poststr .= "I ".$key." blev skrevet: ".$value."\r\n";
}

Så har du $poststr at putte ind. noget i den stil anyway.
Avatar billede jokeren25 Nybegynder
04. marts 2008 - 23:12 #11
Mange tak for hjælpen! Svar og der er point...
Avatar billede showsource Seniormester
04. marts 2008 - 23:30 #12
Jeg er ikke til point, og det var jo smitten1 som kom med foreach :O)
Avatar billede jokeren25 Nybegynder
04. marts 2008 - 23:31 #13
Her er det jeg er kommet frem til hvis det skulle have interesse:

$poststr = "";
foreach($_POST as $key => $value) {

echo $key." = ".$value."<br />";

if($key == 'mail_to'){$epost = $value; continue; }
if($key == 'header'){$header = $value; continue; }
if($key == 'content'){$indhold = $value; continue; }
if($key == 'subject'){$subject = $value; continue; }
if($key == 'confirm_massage'){$confirm = $value; continue; }

$poststr .= "I ".$key." blev skrevet: ".$value."<br /><br />\r\n";
}

echo '<br /><br /><br />Dette er ukendte:<br /><br />'.$poststr.'<br /><br /><br />';

mail($epost, $subject, $indhold, $header);

Tak til alle dem der har hjulpet...
Avatar billede smitten1 Nybegynder
04. marts 2008 - 23:40 #14
bare vær sikker på det er gennemtænkt, så du ikke fremstiller en spambot :)
Avatar billede olebole Juniormester
05. marts 2008 - 14:29 #15
<ole>

Med if-løsningen i (04/03-2008 23:31:41) er det mere end svært at få øje på årsagen til foreach-løkken. Hvorfor ikke bare spørge:

if (isset($_POST["mail_to"])) $epost = $_POST["mail_to"];
if (isset($_POST["header"])) $header= $_POST["header"];
// ... osv ... osv ...

Der er ingen grund til at bruge en løkke - og hvis endelig der insisteres på brug af en løkke, bør man nok vælge en alm. for-løkke, som jo er væsentligt hurtigere end en foreach  =)

/mvh
</bole>
Avatar billede smitten1 Nybegynder
05. marts 2008 - 15:42 #16
ole, hvordan vil du løbe $_POST igennem med en for-løkke?

og løkken er rigtig nok kun nødvendig, hvis der er ukendte navne iblandt
Avatar billede jokeren25 Nybegynder
08. marts 2008 - 00:25 #17
Takker for hjælpen allesammen! Da jeg kan se at der ikke er nogen der vil have points lukker jeg spørgsmålet.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester