login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[Php] Formulier (Opgelost)

Offline Simax - 07/09/2007 23:04 (laatste wijziging 09/09/2007 20:42)
Avatar van SimaxOnbekend Vraagje..

Is het mogelijk om de volgende manier eenvoudiger te maken?
  1. if(isset($_GET['submit']))
  2. {
  3. $ontvanger_naam = $_POST['ontvanger_naam'];
  4. $ontvanger_email = email@email.nl
  5.  
  6. $verzender_naam = $_POST['verzender_naam'];
  7. $verzender_email = $_POST['verzender_email'];
  8.  
  9. $onderwerp = $_POST['onderwerp'];
  10.  
  11. $voorletters = $_POST['voorletters'];
  12. $achternaam = $_POST['achternaam'];
  13. $geslacht = $_POST['geslacht'];
  14. $geboortedatum = $_POST['geboortedatum'];
  15. $straat = $_POST['straat'];
  16. $huisnummer = $_POST['huisnummer'];
  17. $postcode = $_POST['postcode'];
  18. $woonplaats = $_POST['woonplaats'];
  19. $telefoon_prive = $_POST['telefoon_prive'];
  20. $telefoon_werk = $_POST['telefoon_werk'];
  21. $emailadres = $_POST['emailadres'];
  22.  
  23. $headers = "From: ".$verzender_naam." <".$verzender_email."> \r\n";
  24. $headers = "Mime-version: 1.0 \r\n";
  25. $headers = "Content-type: text/html; charset=iso-8859-1 \r\n";
  26. $headers = "Reply to: ".$verzender_naam." <".$verzender_email."> \r\n";
  27. $headers = "Bcc: ".$verzender_email." \r\n";
  28.  
  29. $bericht = "Beste ".$ontvanger_naam.",
  30. ".$verzender_naam." heeft een aanvraag voor een offerte ingediend.
  31.  
  32. ---Persoonlijke gegevens---
  33. ".$voorletters, $achternaam."
  34. ---Bericht---";
  35.  
  36. mail($ontvanger_email, $onderwerp, $bericht, $headers);
  37. }


Nu krijg je een hele opsomming van alle post variabelen(voorletters, achternaam, etc)..

Alvast bedankt!

19 antwoorden

Gesponsorde links
Offline marten - 07/09/2007 23:08
Avatar van marten Beheerder De variabele $_POST kan je als een array uitlezen. Dus met een foreach zou je alle $_POST variabelen kunnen uitlezen.

  1. $i = 0;
  2. foreach($_POST as $rij) {
  3. $rij . $i = htmlspecialchars($rij);
  4. }


Niet getest maar het is mogelijk 
Offline Simax - 08/09/2007 00:25 (laatste wijziging 08/09/2007 14:30)
Avatar van Simax 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.
Offline Koen - 08/09/2007 15:02
Avatar van Koen PHP expert Gewoon..
  1. $ontvanger_naam = $_POST['ontvanger_naam'];
  2. $ontvanger_email = 'email@email.nl';
  3.  
  4. $verzender_naam = $_POST['verzender_naam'];
  5. $verzender_email = $_POST['verzender_email'];
  6.  
  7. $onderwerp = $_POST['onderwerp'];
  8.  
  9. $voorletters = $_POST['voorletters'];
  10. $achternaam = $_POST['achternaam'];
  11. $geslacht = $_POST['geslacht'];
  12. $geboortedatum = $_POST['geboortedatum'];
  13. $straat = $_POST['straat'];
  14. $huisnummer = $_POST['huisnummer'];
  15. $postcode = $_POST['postcode'];
  16. $woonplaats = $_POST['woonplaats'];
  17. $telefoon_prive = $_POST['telefoon_prive'];
  18. $telefoon_werk = $_POST['telefoon_werk'];
  19. $emailadres = $_POST['emailadres'];

Vervangen door:
  1. $ontvanger_email = 'mail@mail.be';
  2. foreach($_POST as $key => $value) {
  3. ${$key} = $value;
  4. }

Zou moeten werken.
Offline Simax - 08/09/2007 15:13
Avatar van Simax 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.
Offline Koen - 08/09/2007 15:18
Avatar van Koen 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?
Offline Simax - 08/09/2007 15:55
Avatar van Simax Onbekend Maar hoe dan?

Ben nog geen php gevorderde, vandaar.
Offline marten - 09/09/2007 09:03
Avatar van marten Beheerder
Citaat:
Ben nog geen php gevorderde, vandaar.


Dat is gewoon standaard php. Hoef je echt geen gevorderde voor te zijn.
Offline Simax - 09/09/2007 13:49
Avatar van Simax Onbekend Maar misschien een beetje uitgebreider met
meer uitleg?
Offline ikki007 - 09/09/2007 15:07
Avatar van ikki007 Gouden medailleGouden medaille

PHP ver gevorderde
Zie de reactie van sliphead dan.. z'n eerste
Offline Simax - 09/09/2007 17:47
Avatar van Simax Onbekend Ja,
maar iets meer uitleg mag.

Wat houd het in?
Offline Koen - 09/09/2007 18:45
Avatar van Koen 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
  1. $ontvanger_email = 'mail@mail.be'; // ontvanger.
  2. ForEach($_POST as $key => $value) {
  3. /* dus:
  4. we lopen de array $_POST door, de sleutel ( $_POST['SLEUTEL'] )
  5. stellen we voor als $key.
  6. de waarde van die sleutel, stellen we voor als $value.
  7. */
  8. ${$key} = $value; /*
  9. geeft bv: $verzender_name = 'Sliphead'.
  10. zo dus: dollarteken variabelenaam = waarde
  11.   $ {$key} = $value;
  12. */
  13. }


ik hoop dat je het beetje snapt? 
Offline Simax - 09/09/2007 20:42 (laatste wijziging 11/09/2007 17:12)
Avatar van Simax Onbekend Ok,

En hoe zou ik nu dan de input van een veld kunnen weergeven in $bericht?
Hoe komt mijn formulier eruit te zien?
Offline ikki007 - 11/09/2007 17:27
Avatar van ikki007 Gouden medailleGouden medaille

PHP ver gevorderde
Dan moet je de namen van de inputs in je formulier kloppend maken.
En dan gewoon die $_POST's in je $bericht drukken.
Offline Rik - 11/09/2007 17:30 (laatste wijziging 11/09/2007 17:42)
Avatar van Rik Gouden medailleGouden medaille

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.
  1. $headers = '...';
  2. $headers = '...';
  3. $headers = '...';
moet zijn
  1. $headers = '...';
  2. $headers .= '...';
  3. $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.
Offline Simax - 11/09/2007 19:56 (laatste wijziging 12/09/2007 18:26)
Avatar van Simax 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..
  1. $voorletters = $_POST['voorletters'];
  2. $achternaam = $_POST['achternaam'];
  3. $geslacht = $_POST['geslacht'];
  4. $geboortedatum = $_POST['geboortedatum'];
  5. $straat = $_POST['straat'];
  6. $huisnummer = $_POST['huisnummer'];
  7. $postcode = $_POST['postcode'];
  8. $woonplaats = $_POST['woonplaats'];
  9. $telefoon_prive = $_POST['telefoon_prive'];
  10. $telefoon_werk = $_POST['telefoon_werk'];
  11. $emailadres = $_POST['emailadres'];
Offline Koen - 12/09/2007 18:48
Avatar van Koen 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!
Offline Simax - 12/09/2007 19:08
Avatar van Simax Onbekend Dus $key kan zijn: $voorletters?
Offline Koen - 12/09/2007 19:12
Avatar van Koen PHP expert Nee.
Extract() of mijn functie, doorloopt de array $_POST.
daarna veranderd hij $_POST['********'] in $********( vb: $_POST['voorletters'] wordt $voorletters, met dezelfde waarde.
Snap je het nu? 
Offline Simax - 12/09/2007 19:13 (laatste wijziging 13/09/2007 14:06)
Avatar van Simax 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..

  1. foreach($_POST as $key => $value)
  2. {
  3. $bericht =
  4. "Beste ".$ontvanger_naam.",
  5. Er is een aanvraag voor een offerte ingediend.
  6.  
  7. ---Persoonlijke gegevens---
  8. ".$voorletters."".$achternaam."
  9. ---Persoonlijke gegevens---
  10.  
  11. ---Huidige werksituatie---
  12. ---Huidige werksituatie---
  13. ----Gewenste verzekering---
  14. ---Gewenste verzekering---";
  15. }


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.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.291s