[Php] Formulier (Opgelost)
Simax - 07/09/2007 23:04 (laatste wijziging 09/09/2007 20:42)
Onbekend
Vraagje..
Is het mogelijk om de volgende manier eenvoudiger te maken?
if(isset($_GET['submit']))
{
$ontvanger_naam = $_POST['ontvanger_naam'];
$ontvanger_email = email@email.nl
$verzender_naam = $_POST['verzender_naam'];
$verzender_email = $_POST['verzender_email'];
$onderwerp = $_POST['onderwerp'];
$voorletters = $_POST['voorletters'];
$achternaam = $_POST['achternaam'];
$geslacht = $_POST['geslacht'];
$geboortedatum = $_POST['geboortedatum'];
$straat = $_POST['straat'];
$huisnummer = $_POST['huisnummer'];
$postcode = $_POST['postcode'];
$woonplaats = $_POST['woonplaats'];
$telefoon_prive = $_POST['telefoon_prive'];
$telefoon_werk = $_POST['telefoon_werk'];
$emailadres = $_POST['emailadres'];
$headers = "From: ".$verzender_naam." <".$verzender_email."> \r\n";
$headers = "Mime-version: 1.0 \r\n";
$headers = "Content-type: text/html; charset=iso-8859-1 \r\n";
$headers = "Reply to: ".$verzender_naam." <".$verzender_email."> \r\n";
$headers = "Bcc: ".$verzender_email." \r\n";
$bericht = "Beste ".$ontvanger_naam.",
".$verzender_naam." heeft een aanvraag voor een offerte ingediend.
---Persoonlijke gegevens---
".$voorletters, $achternaam."
---Bericht---";
mail($ontvanger_email, $onderwerp, $bericht, $headers);
}
if ( isset ( $_GET [ 'submit' ] ) ) {
$ontvanger_naam = $_POST [ 'ontvanger_naam' ] ;
$ontvanger_email = email@ email. nl
$verzender_naam = $_POST [ 'verzender_naam' ] ;
$verzender_email = $_POST [ 'verzender_email' ] ;
$onderwerp = $_POST [ 'onderwerp' ] ;
$voorletters = $_POST [ 'voorletters' ] ;
$achternaam = $_POST [ 'achternaam' ] ;
$geslacht = $_POST [ 'geslacht' ] ;
$geboortedatum = $_POST [ 'geboortedatum' ] ;
$straat = $_POST [ 'straat' ] ;
$huisnummer = $_POST [ 'huisnummer' ] ;
$postcode = $_POST [ 'postcode' ] ;
$woonplaats = $_POST [ 'woonplaats' ] ;
$telefoon_prive = $_POST [ 'telefoon_prive' ] ;
$telefoon_werk = $_POST [ 'telefoon_werk' ] ;
$emailadres = $_POST [ 'emailadres' ] ;
$headers = "From: " . $verzender_naam . " <" . $verzender_email . "> \r \n " ;
$headers = "Mime-version: 1.0 \r \n " ;
$headers = "Content-type: text/html; charset=iso-8859-1 \r \n " ;
$headers = "Reply to: " . $verzender_naam . " <" . $verzender_email . "> \r \n " ;
$headers = "Bcc: " . $verzender_email . " \r \n " ;
$bericht = "Beste " . $ontvanger_naam . ",
" . $verzender_naam . " heeft een aanvraag voor een offerte ingediend.
---Persoonlijke gegevens---
" . $voorletters , $achternaam . "
---Bericht---" ;
mail ( $ontvanger_email , $onderwerp , $bericht , $headers ) ; }
Nu krijg je een hele opsomming van alle post variabelen(voorletters, achternaam, etc)..
Alvast bedankt!
19 antwoorden
Gesponsorde links
marten - 07/09/2007 23:08
Beheerder
De variabele $_POST kan je als een array uitlezen. Dus met een foreach zou je alle $_POST variabelen kunnen uitlezen.
$i = 0;
foreach($_POST as $rij) {
$rij . $i = htmlspecialchars($rij);
}
$i = 0 ;
foreach ( $_POST as $rij ) {
}
Niet getest maar het is mogelijk
Simax - 08/09/2007 00:25 (laatste wijziging 08/09/2007 14:30)
Onbekend
Nog meer opties mogelijk?
Omdat ik veel variabelen ophaal uit het formulier,
zou het handig zijn om dit zo kort mogelijk te kunnen uitvoeren.
Koen - 08/09/2007 15:02
PHP expert
Gewoon..
$ontvanger_naam = $_POST['ontvanger_naam'];
$ontvanger_email = 'email@email.nl';
$verzender_naam = $_POST['verzender_naam'];
$verzender_email = $_POST['verzender_email'];
$onderwerp = $_POST['onderwerp'];
$voorletters = $_POST['voorletters'];
$achternaam = $_POST['achternaam'];
$geslacht = $_POST['geslacht'];
$geboortedatum = $_POST['geboortedatum'];
$straat = $_POST['straat'];
$huisnummer = $_POST['huisnummer'];
$postcode = $_POST['postcode'];
$woonplaats = $_POST['woonplaats'];
$telefoon_prive = $_POST['telefoon_prive'];
$telefoon_werk = $_POST['telefoon_werk'];
$emailadres = $_POST['emailadres'];
$ontvanger_naam = $_POST [ 'ontvanger_naam' ] ;
$ontvanger_email = 'email@email.nl' ;
$verzender_naam = $_POST [ 'verzender_naam' ] ;
$verzender_email = $_POST [ 'verzender_email' ] ;
$onderwerp = $_POST [ 'onderwerp' ] ;
$voorletters = $_POST [ 'voorletters' ] ;
$achternaam = $_POST [ 'achternaam' ] ;
$geslacht = $_POST [ 'geslacht' ] ;
$geboortedatum = $_POST [ 'geboortedatum' ] ;
$straat = $_POST [ 'straat' ] ;
$huisnummer = $_POST [ 'huisnummer' ] ;
$postcode = $_POST [ 'postcode' ] ;
$woonplaats = $_POST [ 'woonplaats' ] ;
$telefoon_prive = $_POST [ 'telefoon_prive' ] ;
$telefoon_werk = $_POST [ 'telefoon_werk' ] ;
$emailadres = $_POST [ 'emailadres' ] ;
Vervangen door:
$ontvanger_email = 'mail@mail.be';
foreach($_POST as $key => $value) {
${$key} = $value;
}
$ontvanger_email = 'mail@mail.be' ;
foreach ( $_POST as $key => $value ) {
${ $key } = $value ;
}
Zou moeten werken.
Simax - 08/09/2007 15:13
Onbekend
$ontvanger_naam, $ontvanger_email, $verzender_naam, $verzender_email, $onderwerp zijn vaste variabelen.
De overige gegevens zou ik zo makkelijk mogelijk willen ophalen.
En in $bericht willen gebruiken.
Koen - 08/09/2007 15:18
PHP expert
Rimex schreef:
[..]
En in $bericht willen gebruiken.
volgens mij gebruik je $mail en niet $bericht.
Maar dan nóg gebruik je toch gewoon foreach?
Simax - 08/09/2007 15:55
Onbekend
Maar hoe dan?
Ben nog geen php gevorderde, vandaar.
marten - 09/09/2007 09:03
Beheerder
Citaat:
Ben nog geen php gevorderde, vandaar.
Dat is gewoon standaard php. Hoef je echt geen gevorderde voor te zijn.
Simax - 09/09/2007 13:49
Onbekend
Maar misschien een beetje uitgebreider met
meer uitleg?
Simax - 09/09/2007 17:47
Onbekend
Ja,
maar iets meer uitleg mag.
Wat houd het in?
Koen - 09/09/2007 18:45
PHP expert
ik zal mij dan maar opofferen zeker
dus:
$_POST is en array met alle postgegevens erin.
Om de array door te lopen gebruiken we PHP.net: ForEach
$ontvanger_email = 'mail@mail.be'; // ontvanger.
ForEach($_POST as $key => $value) {
/* dus:
we lopen de array $_POST door, de sleutel ( $_POST['SLEUTEL'] )
stellen we voor als $key.
de waarde van die sleutel, stellen we voor als $value.
*/
${$key} = $value; /*
geeft bv: $verzender_name = 'Sliphead'.
zo dus: dollarteken variabelenaam = waarde
$ {$key} = $value;
*/
}
$ontvanger_email = 'mail@mail.be' ; // ontvanger.
ForEach ( $_POST as $key => $value ) {
/* dus:
we lopen de array $_POST door, de sleutel ( $_POST['SLEUTEL'] )
stellen we voor als $key.
de waarde van die sleutel, stellen we voor als $value.
*/
${ $key } = $value ; /*
geeft bv: $verzender_name = 'Sliphead'.
zo dus: dollarteken variabelenaam = waarde
$ {$key} = $value;
*/
}
ik hoop dat je het beetje snapt?
Simax - 09/09/2007 20:42 (laatste wijziging 11/09/2007 17:12)
Onbekend
Ok,
En hoe zou ik nu dan de input van een veld kunnen weergeven in $bericht?
Hoe komt mijn formulier eruit te zien?
Rik - 11/09/2007 17:30 (laatste wijziging 11/09/2007 17:42)
Crew algemeen
In plaats van de foreach kun je misschien makkelijker PHP.net: extract voor gebruiken.
In het script dat je poste overschrijf je $headers steeds.
$headers = '...';
$headers = '...';
$headers = '...';
$headers = '...' ;
$headers = '...' ;
$headers = '...' ;
moet zijn
$headers = '...';
$headers .= '...';
$headers .= '...';
$headers = '...' ;
$headers .= '...' ;
$headers .= '...' ;
De .= operater plakt twee strings aan elkaar.
Rimex schreef:
En hoe zou ik nu dan de input van een veld kunnen weergeven in $bericht?
Op dezelfde manier als dat je dat nu al doet.
Simax - 11/09/2007 19:56 (laatste wijziging 12/09/2007 18:26)
Onbekend
Oke..
Ik wil de input ophalen uit de velden & deze gebruiken in $bericht.
Hoe kan ik dit op een korte manier doen?,
dan wat ik nu heb..
$voorletters = $_POST['voorletters'];
$achternaam = $_POST['achternaam'];
$geslacht = $_POST['geslacht'];
$geboortedatum = $_POST['geboortedatum'];
$straat = $_POST['straat'];
$huisnummer = $_POST['huisnummer'];
$postcode = $_POST['postcode'];
$woonplaats = $_POST['woonplaats'];
$telefoon_prive = $_POST['telefoon_prive'];
$telefoon_werk = $_POST['telefoon_werk'];
$emailadres = $_POST['emailadres'];
$voorletters = $_POST [ 'voorletters' ] ;
$achternaam = $_POST [ 'achternaam' ] ;
$geslacht = $_POST [ 'geslacht' ] ;
$geboortedatum = $_POST [ 'geboortedatum' ] ;
$straat = $_POST [ 'straat' ] ;
$huisnummer = $_POST [ 'huisnummer' ] ;
$postcode = $_POST [ 'postcode' ] ;
$woonplaats = $_POST [ 'woonplaats' ] ;
$telefoon_prive = $_POST [ 'telefoon_prive' ] ;
$telefoon_werk = $_POST [ 'telefoon_werk' ] ;
$emailadres = $_POST [ 'emailadres' ] ;
Koen - 12/09/2007 18:48
PHP expert
Rimex schreef:
Oke..
Ik wil de input ophalen uit de velden & deze gebruiken in $bericht.
Hoe kan ik dit op een korte manier doen?,
dan wat ik nu heb..
[..code..]
Ben jij doof ofzo?
de 2 manieren hoe je dit kan doen zijn al lang verteld!
Simax - 12/09/2007 19:08
Onbekend
Dus $key kan zijn: $voorletters?
Simax - 12/09/2007 19:13 (laatste wijziging 13/09/2007 14:06)
Onbekend
Ja,
Als ik foreach gebruik, dan zou ik (in $bericht) $voorletters kunnen gebruiken ipv $_POST['voorletters'];
Edit
Maar het verzenden werkt, alleen ontvang ik geen antwoord per email, dus het werkt nog steeds niet..
foreach($_POST as $key => $value)
{
$bericht =
"Beste ".$ontvanger_naam.",
Er is een aanvraag voor een offerte ingediend.
---Persoonlijke gegevens---
".$voorletters."".$achternaam."
---Persoonlijke gegevens---
---Huidige werksituatie---
---Huidige werksituatie---
----Gewenste verzekering---
---Gewenste verzekering---";
}
foreach ( $_POST as $key => $value )
{
$bericht =
"Beste " . $ontvanger_naam . ",
Er is een aanvraag voor een offerte ingediend.
---Persoonlijke gegevens---
" . $voorletters . "" . $achternaam . "
---Persoonlijke gegevens---
---Huidige werksituatie---
---Huidige werksituatie---
----Gewenste verzekering---
---Gewenste verzekering---" ;
}
Resultaat..
Citaat:
Reply to: <> Bcc: Beste Roy van Breugel, Er is een aanvraag voor een offerte ingediend. ---Persoonlijke gegevens--- V ---Persoonlijke gegevens--- ---Huidige werksituatie--- ---Huidige werksituatie--- ---Gewenste verzekering--- ---Gewenste verzekering---
Er word dus niets opgehaald.
Gesponsorde links
Dit onderwerp is gesloten .