[php] Invoer van formulier niet verzenden

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Petor
  • Registratie: Mei 2002
  • Niet online
Voor deze site heb ik mbv een boek het volgende formulier gemaakt. Ik heb al begrepen dat bepaalde dingen achterhaald zijn maar dat wil ik laten voor wat het is omdat het zo ook werkt en ik een n00b in PHP ben :P

Het probleem:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
$recipient = "mail@email.com";
$subject = "Formulier via site";
$header = "From: " . $email . "\n";
$mail_body = "Het contactformulier werd op " . date("d-m-Y") . " om " . date("H:i") . " uur uitgevoerd.\n";
$mail_body .= "De volgende gegevens werden ingevoerd:\n\n";
$mail_body .= "Voornaam: " . $voornaam . "\n";
$mail_body .= "Achternaam: " . $achternaam . "\n";
$mail_body .= "Adres: " . $adres . "\n";
$mail_body .= "Postcode: " . $postcode . "\n";
$mail_body .= "Woonplaats: " . $woonplaats . "\n";
$mail_body .= "Telefoonnummer: " . $telefoonnummer . "\n";
$mail_body .= "Email: " . $email . "\n\n"; 
$mail_body .= "Vraag: " . $tekst . "\n\n -- Einde van automatisch gegenereerd bericht --";
if($Submit) {
// Formulier uitgevoerd: melding weergeven
mail($recipient, $subject, $mail_body, $header);
echo "Hartelijk dank voor uw reactie.";
}
else
{
// Formulier nog niet uitgevoerd: formulier opnieuw weergeven
?>
<link href="code/styles.css" rel="stylesheet" type="text/css">
<form name="contact" id="contact" method="post" action="<?php echo $PHP_SELF ?>" onsubmit="javascript: return validateForm();">
<input type="hidden" name="action=" value="contact">
 -knip --> formuliercode-
</form>
<?php
}
?>


Het formulier wordt helemaal goed weergegeven dus dat is het probleem niet. Het gaat alleen mis met het verzenden. Bij de klik op verzenden ga je meteen terug naar de default page en zie je niet: Bedankt voor het verzenden. Erger is dat er helemaal niets wordt verzonden.
De check doet het wel. De site werkt met include:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
          switch ($_GET['page'])
            {
            case home:
            include ("code/home.php");
            break;
            case ontwerp:
            include ("code/ontwerp.php");
            break;
            case ontwerpschetsen:
            include ("code/ontwerpschetsen.php");
            break;
            case onderhoud:
            include ("code/onderhoud.php");
            break;
            case offerte:
            include ("code/offerte.php");
            break;
            case contact:
            include ("code/contact.php");
            break;
            default:
            ?>


In de head is het volgende opgenomen:
PHP:
1
2
3
4
<? if ($page == "contact") {
echo ('<script language = "JavaScript" src="code/validate.js"></script>');
}
?> 

Deze check werkt.

[ Voor 15% gewijzigd door Petor op 22-07-2004 19:58 ]


Acties:
  • 0 Henk 'm!

  • JayVee
  • Registratie: Mei 2002
  • Laatst online: 31-08 10:22

JayVee

shibby++!

highlight je code even met code=php, dat is beter leesbaar.

PHP:
1
2
3
4
if($Submit) { // in plaats hiervan moet je
if ( isset( $_POST[] ) { // dit checken
  print_r( $_POST[] );  // zo kijken wat er gepost is
}

[ Voor 19% gewijzigd door JayVee op 22-07-2004 19:43 ]

ASCII stupid question, get a stupid ANSI!


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Je geeft wel een hidden field op met een waarde voor page, maar je controleert de $_GET array, terwijl je de waarden verzendt met via een $_POST method. Voor deze pagina zou je dus naar de $_REQUEST array kunnen kijken, waar beiden in zitten, of je moet specifiek naar de $_POST array kijken. Verder ben ik bang dat je volgende probleem iets wordt met register_globals.... :)

Bovendien moeten de waarden in je case statements tussen haakjes, dus
PHP:
1
case "home":
enzo. :)

[ Voor 13% gewijzigd door NMe op 22-07-2004 20:04 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.