PDA

Bekijk Volledige Versie : [php]form valideren en mail versturen



Poster666
02/01/04, 20:15
Hoi,
onderstaand script zou in "formulier.php" moeten valideren of een deel
velden zijn ingevuld, en dan de ingevulde informatie doorsturen. Maar ik
krijg een error op lijn 38. Ook weet ik dat de if-reeks, die controleert of
de velden niet leeg zijn, anders kan.
Kan iemand mij helpen om het script aan het werk te krijgen, en eventueel
die if-reeks op te ruimen? (naam, voornaam, gsm, email en zo zijn variabelen
die uit formulier.php komen, $Info en $geslacht komen uit zo'n keuzelijst
waar je een keuze moet aanvinken)
Dank bij voorbaat,
me
----------------------------------
<?php
/* Validate form */
if ($Info = "")
{
header("Location: /error.php");
}
if ($naam = "")
{
header("Location: /error.php");
}
if ($voornaam = "")
{
header("Location: /error.php");
}
if ($adres = "")
{
header("Location: /error.php");
}
if ($postcode = "")
{
header("Location: /error.php");
}
if ($gemeente = "")
{
header("Location: /error.php");
}
if ($geboortedatum = "")
{
header("Location: /error.php");
}
if ($geslacht = "")
{
header("Location: /error.php");
}

/* Set subject */
$subject = "Informatie-aanvraag"
if ($Info = "kopen1")
{
$subject = "Aankoop chip (25 euro)"
}
elseif ($Info = "kopen2")
{
$subject = "Aankoop chip,chipclip en enkelband (30 euro)"
}
else
{
$subject = "Informatie-aanvraag"
}

$sender = $email
$to = "ericspam.van.eynde@pandoraspam.be"

/* message */
$message = '
<html>
<head>
<title>$subject</title>
</head>
<body>
<p>Het formulier op uw website is gebruikt.</p>
<table>
<tr>
<td>Naam</td><td>$naam</td>
</tr>
<tr>
<td>Voornaam</td><td>$voornaam</td>
</tr>
<tr>
<td>Adres</td><td>$adres</td>
</tr>
<tr>
<td>Postcode</td><td>$postcode</td>
</tr>
<tr>
<td>Gemeente</td><td>$gemeente</td>
</tr>
<tr>
<td>Geboortedatum</td><td>$geboortedatum</td>
</tr>
<tr>
<td>Geslacht</td><td>$geslacht</td>
</tr>
<tr>
<td>Telefoon</td><td>$tel</td>
</tr>
<tr>
<td>GSM</td><td>$gsm</td>
</tr>
<tr>
<td>E-mail</td><td>$email</td>
</tr>
<tr>
<td>Commentaar/Vragen:</td><td>$comment</td>
</tr>
</table>
</body>
</html>
';

/* To send HTML mail, you can set the Content-type header. */
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

/* additional headers */
$headers .= "To: Championchip Vlaanderen
(ericspam.van.eynde@pandoraspam.be)\r\n";
$headers .= "From: $sender\r\n";

/* and now mail it */
mail($to, $subject, $message, $headers);
?>
-------------------------------------------------------------


---
This mail has been checked by AVG Antivirus
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.554 / Virus Database: 346 - Release Date: 20/12/2003

Poster666
02/01/04, 20:15
"Poster666" <eric.van.eynde@pandoraSPAM.be> schreef in bericht
news:ufjJb.111182$ck3.4977694@phobos.telenet-ops.be...
> Hoi,
> onderstaand script zou in "formulier.php" moeten valideren of een deel
> velden zijn ingevuld, en dan de ingevulde informatie doorsturen. Maar ik
> krijg een error op lijn 38.
<knip>

Als ik de code zo schrijf, met ;'s toegevoegd, krijg ik dezelfde error (oei,
ik zie nog een ; die ik vergeten ben, even aanpassen en proberen)
---------------------------------------
$subject = "Informatie-aanvraag"
if ($Info = "kopen1")
{
$subject = "Aankoop chip (25 euro)";
}
elseif ($Info = "kopen2")
{
$subject = "Aankoop chip,chipclip en enkelband (30 euro)";
}
else
{
$subject = "Informatie-aanvraag";
}
---------------------------------------------------------------------



---
This mail has been checked by AVG Antivirus
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.554 / Virus Database: 346 - Release Date: 20/12/2003

Poster666
02/01/04, 20:30
"Poster666" <eric.van.eynde@pandoraSPAM.be> schreef in bericht
news:bljJb.111192$m94.5034013@phobos.telenet-ops.be...
>
> Als ik de code zo schrijf, met ;'s toegevoegd, krijg ik dezelfde error
(oei,
> ik zie nog een ; die ik vergeten ben, even aanpassen en proberen)
>
<knip>

; erbij haalt de foutmelding al weg, maar ik krijg een leeg scherm.
De mail is wel gestuurd, maar er is geen validatie gebeurd (ik had het
naam-veld ingevuld), rest niet, dus zou ik naar error.php moeten gaan).
Nu staat er dit in de mail: (dat is dus niet de bedoeling, er moet de
variabele staan ipv $naam)
-------------------------------------------------
Het formulier op uw website is gebruikt.

Naam $naam
Voornaam $voornaam
Adres $adres
Postcode $postcode
Gemeente $gemeente
Geboortedatum $geboortedatum
Geslacht $geslacht
Telefoon $tel
GSM $gsm
E-mail $email
Commentaar/Vragen: $comment

----------------------------------------------


---
This mail has been checked by AVG Antivirus
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.554 / Virus Database: 346 - Release Date: 20/12/2003

Daniel Tryba
02/01/04, 20:30
Poster666 <eric.van.eynde@pandoraspam.be> wrote:
> Kan iemand mij helpen om het script aan het werk te krijgen, en eventueel
> die if-reeks op te ruimen? (naam, voornaam, gsm, email en zo zijn variabelen
> die uit formulier.php komen, $Info en $geslacht komen uit zo'n keuzelijst
> waar je een keuze moet aanvinken)

Je "script" is vergeven van fouten:
-missende ';'
-toekenningen in de if()
-foutief gebruik van variabelen (in strings)

Je zou er niet slecht aan doen om enkele tutorials te lezen.

Enkele zinnige links:
http://nl.php.net/manual/en/language.basic-syntax.instruction-separation.php
http://nl.php.net/manual/en/language.variables.php#language.variables.basics
http://nl.php.net/manual/en/language.operators.assignment.php
http://nl.php.net/manual/en/language.operators.comparison.php
http://nl.php.net/manual/en/language.types.string.php
http://nl.php.net/manual/en/security.registerglobals.php

--

Daniel Tryba

Poster666
02/01/04, 20:30
"Daniel Tryba" <news_nl.internet.www.server-side@canopus.nl> schreef in
bericht news:bt4gia$787$1@news.tue.nl...
<knip>
>
> Je "script" is vergeven van fouten:
> -missende ';'
> -toekenningen in de if()
> -foutief gebruik van variabelen (in strings)
>
> Je zou er niet slecht aan doen om enkele tutorials te lezen.
>
<knip>

Bedankt voor de links. Als ik het goed begrijp moet ik = = gebruiken ipv = ,
klopt dat? En wat bedoel je met gebruik van variabelen (in strings)?


---
This mail has been checked by AVG Antivirus
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.554 / Virus Database: 346 - Release Date: 20/12/2003

Poster666
02/01/04, 20:45
"Poster666" <eric.van.eynde@pandoraSPAM.be> schreef in bericht
news:ufjJb.111182$ck3.4977694@phobos.telenet-ops.be...
> Hoi,
> onderstaand script zou in "formulier.php" moeten valideren of een deel
> velden zijn ingevuld, en dan de ingevulde informatie doorsturen. Maar ik
<knip>

Het is opgelost. Bedankt, Daniel Tryba, dankzij je hints zag ik in wat
verkeerd was


---
This mail has been checked by AVG Antivirus
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.554 / Virus Database: 346 - Release Date: 20/12/2003

Daniel Tryba
02/01/04, 23:15
Poster666 <eric.van.eynde@pandoraspam.be> wrote:
> Bedankt voor de links. Als ik het goed begrijp moet ik = = gebruiken ipv = ,

Correct (maar dan zonder de spatie)

> klopt dat? En wat bedoel je met gebruik van variabelen (in strings)?

Je bent er zo te zien al achter gekomen maar een string die wordt
geconstrueerd met single quotes worden variabelen niet geexpand. Spot
the difference:

<?php
$foo='bar';

echo "foo= $foo\n";
echo 'foo= $foo\n';
?>

--

Daniel Tryba