[PHP] informatieformulier

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo mensen,

Zit met een probleempje. Heb php formulier gemaakt en werkt maar voor de helft. Probleem is dat ik constant op de errorpage uit kom en dus nooit het beoogde resultaat haal en een mail krijg.

PHP: filename
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
 
<?php


$Emailadres = Trim(stripslashes($_POST['Emailadres'])); 
$EmailTo = "************";
$Subject = "*************";
$Voornaam = Trim(stripslashes($_POST['Voornaam'])); 
$Achternaam = Trim(stripslashes($_POST['Achternaam'])); 
$Adres = Trim(stripslashes($_POST['Adres'])); 
$Postcode = Trim(stripslashes($_POST['Postcode'])); 
$Stad = Trim(stripslashes($_POST['City'])); 
$Telefoonnummer = Trim(stripslashes($_POST['Telefoonnummer'])); 
$Mobiel = Trim(stripslashes($_POST['Mobiel'])); 
$Bedrijf = Trim(stripslashes($_POST['Bedrijf']));
$Vraag = Trim(stripslashes($_POST['Vraag']));  


$validationOK=true;
if (Trim($Emailadres)=="") $validationOK=false;
if (Trim($Voornaam)=="") $validationOK=false;
if (Trim($Achternaam)=="") $validationOK=false;
if (Trim($Adres)=="") $validationOK=false;
if (Trim($Postcode)=="") $validationOK=false;
if (Trim($Stad)=="") $validationOK=false;
if (Trim($Telefoonnummer)=="") $validationOK=false;
if (!$validationOK) {
  print "<meta http-equiv=\"refresh\" content=\"0;URL=error.html\">";
  exit;
}


$Body = "";
$Body .= "Voornaam: ";
$Body .= $Voornaam;
$Body .= "\n";
$Body .= "Achternaam: ";
$Body .= $Achternaam;
$Body .= "\n";
$Body .= "Adres: ";
$Body .= $Adres;
$Body .= "\n";
$Body .= "Postcode: ";
$Body .= $Postcode;
$Body .= "\n";
$Body .= "Stad: ";
$Body .= $Stad;
$Body .= "\n";
$Body .= "Telefoonnummer: ";
$Body .= $Telefoonnummer;
$Body .= "\n";
$Body .= "Mobiel: ";
$Body .= $Mobiel;
$Body .= "\n";
$Body .= "Bedrijf: ";
$Body .= $Bedrijf;
$Body .= "\n";
$Body .= "Vraag: ";
$Body .= $Vraag;
$Body .= "\n";

$success = mail($EmailTo, $Subject, $Body, "From: <$Emailadres>");


if ($success){
  print "<meta http-equiv=\"refresh\" content=\"0;URL=bedankt.html\">";
}
else{
  print "<meta http-equiv=\"refresh\" content=\"0;URL=error.html\">";
}
?>


emailto is wel ingevuld maar hier even blank gelaten :) Ik heb alles nagekeken, kom er gewoon niet meer uit.

[ Voor 2% gewijzigd door Verwijderd op 13-01-2009 00:20 . Reden: aanvulling ]


Acties:
  • 0 Henk 'm!

  • simon
  • Registratie: Maart 2002
  • Laatst online: 21-09 00:18
Misschien moet je even vermelden wat de errror is en wat je gedaan hebt?

http://nl3.php.net/empty lijkt me ook handig

[ Voor 25% gewijzigd door simon op 13-01-2009 00:21 ]

|>


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Er is geen error, ik kom alleen op de error.html uit

Ergens wordt informatie als niet goed ingevuld beschouwd en loopt 'ie daar al spaak op. De opzet is natuurlijk dat alles wordt doorgemailed en de mensen naar bedankt.html worden geleid.

Acties:
  • 0 Henk 'm!

  • Luqq
  • Registratie: Juni 2005
  • Laatst online: 19-09 14:23
Ten eerste, gebruik empty() ipv trim() = "".
Ten tweede, geef aparte errors voor de validatie en de email success.
Ten derde, je $body opbouw..ach laat ook maar.


Volgens mij moet je ook meer headers meesturen met een email, maar dat weet ik zo niet.

Post de results eens na deze aanpassingen? :)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Okay, heb de empty() gebruikt maar geen resultaat. Heb de eerste error.html even veranderd in error1.html en daar kom ik op uit. Gaat dus wel fout bij het valideren.

PHP: filename
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
<?php

// get posted data into local variables
$Emailadres = Trim(stripslashes($_POST['Emailadres'])); 
$EmailTo = "***************";
$Subject = "*******************";
$Voornaam = Trim(stripslashes($_POST['Voornaam'])); 
$Achternaam = Trim(stripslashes($_POST['Achternaam'])); 
$Adres = Trim(stripslashes($_POST['Adres'])); 
$Postcode = Trim(stripslashes($_POST['Postcode'])); 
$Stad = Trim(stripslashes($_POST['City'])); 
$Telefoonnummer = Trim(stripslashes($_POST['Telefoonnummer'])); 
$Mobiel = Trim(stripslashes($_POST['Mobiel'])); 
$Bedrijf = Trim(stripslashes($_POST['Bedrijf']));
$Vraag = Trim(stripslashes($_POST['Vraag']));  

// validation
$validationOK=true;
if (Empty($Emailadres)) $validationOK=false;
if (Empty($Voornaam)) $validationOK=false;
if (Empty($Achternaam)) $validationOK=false;
if (Empty($Adres)) $validationOK=false;
if (Empty($Postcode)) $validationOK=false;
if (Empty($Stad)) $validationOK=false;
if (Empty($Telefoonnummer)) $validationOK=false;
if (!$validationOK) {
  print "<meta http-equiv=\"refresh\" content=\"0;URL=error1.html\">";
  exit;
}


Hier dus ergens

[ Voor 81% gewijzigd door Verwijderd op 13-01-2009 00:31 ]


Acties:
  • 0 Henk 'm!

  • Luqq
  • Registratie: Juni 2005
  • Laatst online: 19-09 14:23
Probeer het eerst eens met hard gesette waarden, die("error bij naam"); ipv $validation = false, om zo achter de boosdoener te komen:) en evt error_reporting(E_ALL); bovenaan.

Waarschijnlijk is dit een gevalletje formulier en php parser, die niet dezelfde namen gebruiken bij de form input names :)

[ Voor 17% gewijzigd door Luqq op 13-01-2009 00:32 ]


Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
En wat is de error? Oh wacht je had geen error, misschien dan eens error-detection inbouwen...

Als simpele debug stap zou ik even de $_POST printen en je meta-refresh op 10 seconden gooien zodat je de $_POST ook nog kan lezen.

Het zijn toch echt je eigen controles die de fout ingaan, sloop desnoods regel voor regel je validatie eruit tot het wel werkt. Bouw het dan regel voor regel weer op en je weet precies waar het fout gaat.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Opzich denk ik niet dat dat het probleem is, hij linkt em namelijk prima door naar error1.html. Dus geeft geen fouten in de code aan....

Acties:
  • 0 Henk 'm!

  • HyperioN
  • Registratie: April 2003
  • Laatst online: 24-05 15:42
code:
1
$Stad = Trim(stripslashes($_POST['City']));

Beetje onlogisch dat daar ineens een Engels begrip staat terwijl de rest Nederlands is. Any chance dat dat dus gewoon "Stad" moet zijn?
Zo nee, check sowieso eventjes de formfield-namen.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Okay, heb er een error-detection in gezet en blijkt mis te gaan op lijn 13 en 17:

Notice: Undefined index: City
In bladibladibladibla on line 13

Notice: Undefined index: Vraag
In bladibladibladibla on line 17

Acties:
  • 0 Henk 'm!

  • Luqq
  • Registratie: Juni 2005
  • Laatst online: 19-09 14:23
Vrij basic debugging dit hoor..maar OK het is laat :D Kijk je form nog eens door, blijkbaar bestaan city en vraag daar niet ;) Even een van de twee vervangen zodat ze gelijk zijn, en dan zou hij het moeten doen(het validatie gedeelte iig)

Acties:
  • 0 Henk 'm!

  • Noork
  • Registratie: Juni 2001
  • Niet online
Dit kun je prima zelf debuggen. Ook is het handig om even print_r($_POST) te doen ipv de redirect naar je error-document zoals hierboven reeds is vermeld.

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 21:47

Creepy

Tactical Espionage Splatterer

Welkom op GoT :)

De foutmeldingen geven toch echt duidelijk wat er aan de hand is. Je code dumpen en/of je foutmeldingen dumpen en hopen dat wij het voor je gaan oplossen is niet de bedoeling. We verwachten hier meer inzet van je. Dus wat heb je zelf nu al geprobeerd om je probleem op te lossen en wat lukte daar dan niet mee?

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • Precision
  • Registratie: November 2006
  • Laatst online: 12-08 21:08
je kunt prima kijken naar wat je binnen krijgt
code:
1
2
3
4
5
<?php
echo "<pre>";
print_r($_POST);
echo "</pre>";
?>

of in plaats van print_r($_POST) met var_dump($_POST);
Ik snap eigenlijk niet goed waarom je doorlinkt naar een pagina in plaats van met foutmeldingen te werken,maar goed.

Crisis? Koop slim op Dagoffer - Op zoek naar een tof cadeau?

Pagina: 1