formulier

  • Onderwerp starter Onderwerp starter acra
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

acra

Gebruiker
Lid geworden
3 nov 2004
Berichten
241
Hoi,
Ik probeer een reactieformulier op een website te plaatsen. Nu heb ik wat code gejat van het internet maar ik kan het niet helemaal volgen. Wie kan me e.e.a. uitleggen en zeggen waar ik de mist in ga:

Eerst dus een boel html en dan komt dit waarbij ik de invoervelden ff wat simpel neergezet heb want anders werd 't zo'n lap tekst:
PHP:
<?php 
if (!$_POST['SUBMIT']) 
{ 
?>
<form method="post">

Uw emailadres:
<input name="mail" size="46" type="text">
Naam 1:
<input name="naam1" size="46" type="text">
            
</form>
<?php 
} 
else 
{ 
$naam1=$_POST['naam1'];
$mail=$_POST['mail'];
$bericht = "$naam1 $mail";
$bericht2 = "Dit is een mail ter bevestiging dat u zich heeft opgegeven";
$onderwerp = "onderwerp";

$headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type:
text/html; charset=iso-8859-1\r\n"; $headers .= "X-Priority: 3\r\n";
$headers .= "X-MSMail-Priority: Normal\r\n"; $headers .= "X-Mailer:
php\r\n"; $headers .= "From: \"".$naam1."\" &lt;".$mail."&gt;\n";


mail("mijnadres@derest.nl", $onderwerp, $bericht, $headers); 
mail($mail, $onderwerp, $bericht2);
echo "Uw bericht is verzonden."; }
//klaar
===========================================================
Nu mijn vragen:
De belangrijkste: Ik krijg steeds een error op hetgeen net na dat //klaar staat. Dus wat is er fout?
Dan: waar dient dit stukje voor:
PHP:
<?php 
if (!$_POST['SUBMIT']) 
{ 
?>
Tot slot: moeten al die headers?

Alvast bedankt, Nora
 
Laatst bewerkt door een moderator:
Ik heb m'n grootste fout zelf al gevonden. Ben maar weer teruggegaan naar een formulier wat wel werkte en zag toen dat ik op het eind nog een ?> miste. Stom dus. Het formulier werkt nu.
Toch nog een -denk ik- simpele vraag:
Kan zoiets eigenlijk: $bericht = "$naam1 $mail";
In dat oude formulier wordt dat op een andere manier gedaan en dat is haast niet te lezen of foutloos in te typen. Staat steeds zoiets ".$naam."
 
Dit kan idd; het plakt variabele 1 en 2 aan elkaar, met een spatie ertussen.
PHP:
$tekst = "$var1 $var2";

De andere die je bedoelt is waarschijnlijk deze:
PHP:
$tekst = $var1 . " " . $var2;

Dat doet hetzelfde, alleen gebruikt het de . operator, die ook strings aan elkaar plakt.

Die laatste werkt in alle situaties, dus het is wel aan te raden om hem te leren, want dit gaat bijv. niet werken:
PHP:
$tekst = "$var['var'] $var['var']";
 
Sowieso klopt hier niets van..

Als er gepost word laat hij het formulier zien, is niet verstandig.. kun je net zo goed op de huidige pagina gebruik maken van php_self en vervolgens een echo laten zien bijv. ( Zo zou ik het doen. )
 
Laatst bewerkt door een moderator:
Nee, hij laat het form niet zien als er gepost is.

Maar in plaats van

PHP:
if(!$_POST['SUBMIT']){

kun je beter gebruiken:

PHP:
if( $_SERVER[ 'REQUEST_METHOD' ] != 'POST' ) {

En dit kan trouwens niet:

PHP:
mail($mail, $onderwerp, $bericht2);

Daar moeten ook de headers nog bij.

Zo dus:

PHP:
mail($mail, $onderwerp, $bericht2, $headers);
 
Wat je nu zegt klopt niet helemaal.

Wanneer je het volgende gebruikt;
PHP:
if(!$_POST['SUBMIT']){

Als je een ! Gebruikt word er gecontroleerd of er een veld is leeggelaten.

Met vriendelijke groet,

B Jones
Mod: Reacties op de persoon boven je hoef je niet te quoten tenzij je op een bepaald gedeelte wilt reageren
 
Laatst bewerkt door een moderator:
Waar doel je nou op? Dat het formulier niet wordt weergegeven of dat dat niet de methode is om te controleren of een formulier verzonden is?
 
@Bjones:
Dan gaat het alleen maar om een veld.

Met
PHP:
if($_SERVER['REQUEST_METHOD'] != 'POST') {
}
kijk je of het formulier via POST wordt verzonden.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan