php contactformulier werkt niet

Status
Niet open voor verdere reacties.

loekvh

Gebruiker
Lid geworden
18 jun 2008
Berichten
45
Ik heb een probleempje met mijn contactformulier, het werkt namelijk niet. Misschien kan iemand de foutjes ontdekken, php is namelijk niet mijn ding :P

Alvast bedankt voor alle hulp!
de html:
HTML:
<form method="post" action="contact.php">
          <table>
        <tr>
            <td>Naam</td>
            <td><input type="text" name="Naam" class="verplicht" /></td>
           </tr>
        <tr>
            <td>Adres</td>
            <td><input type="text" name="Adres" class="verplicht" /></td>
          </tr>
        <tr>
            <td>Postcode</td>
            <td><input type="text" name="Postcode" class="verplicht" /></td>
          </tr>
        <tr>
            <td>Woonplaats</td>
            <td><input type="text" name="Woonplaats" class="verplicht" /></td>
          </tr>
        <tr>
            <td>Telefoonnummer(1)</td>
            <td><input type="text" name="Tel" class="verplicht" /></td>
          </tr>
        <tr>
            <td>Telefoonnummer(2)</td>
            <td><input type="text" name="Tell" /></td>
          </tr>
        <tr>
            <td>Emailadres</td>
            <td><input type="text" name="Email" class="verplicht" /></td>
          </tr>
        <tr>
            <td>Workshop</td>
            <td>
                <select name="Workshop">
                <option selected="selected">Kies uw workshop</option>
                <option>optie 1</option>
                <option>optie 2</option>
                <option>optie 3</option>
                <option>optie 4</option>
                </select> 
            </td>
          </tr>
        <tr>
            <td>Datum(dd-mm)</td>
            <td><input type="text" name="Datum" /></td>
          </tr>
        <tr>
            <td>Tijdstip</td>
            <td><input type="text" name="Tijdstip" /></td>
          </tr>
        <tr>
            <td>Aantal deelnemers</td>
            <td><input type="text" name="Deelnemers" /></td>
          </tr>
        <tr>
            <td>eventuele<br /> Opmerkingen</td>
            <td><textarea cols="16" rows="5" name="Message"> </textarea></td>
          </tr>
        <tr><td></td>
              <td><input style="width: 188px; background: #91f8d5" type="submit" name="submit" value="Verzenden" /></td></tr>
           </table>
        </form>

En de bijbehorende php code

PHP:
<?php

$EmailFrom = "contactpagina@domein.nl";
$EmailTo = "mijneigen@email.nl";
$Subject = "Inschrijving";
$Naam = trim(stripslashes($_POST['Naam'])); 
$Adres = trim(stripslashes($_POST['Adres']));
$Postcode = trim(stripslashes($_POST['Postcode']));
$Woonplaats = trim(stripslashes($_POST['Woonplaats']));
$Tel = trim(stripslashes($_POST['Telefoonummer(1)']));
$Tell = trim(stripslashes($_POST['Telefoonummer(2)'])); 
$Email = trim(stripslashes($_POST['Email'])); 
$Workshop = trim(stripslashes($_POST['Workshop'])); 
$Datum = trim(stripslashes($_POST['Datum'])); 
$Tijdstip = trim(stripslashes($_POST['Tijdstip'])); 
$Deelnemers = trim(stripslashes($_POST['Deelnemers'])); 
$Message = trim(stripslashes($_POST['Opmerkingen'])); 


$validationOK=true;
if (trim($Naam)=="") $validationOK=false;
if (trim($Adres)=="") $validationOK=false;
if (trim($Postcode)=="") $validationOK=false;
if (trim($Woonplaats)=="") $validationOK=false;
if (trim($Tel)=="") $validationOK=false;
if (trim($Email)=="") $validationOK=false;
if (!$validationOK) {
  print "<meta http-equiv=\"refresh\" content=\"0;URL=mislukt.html\">";
  exit;
}

 
$body = "";
$body .= "Naam: ";
$body .= $Naam;
$body .= "\n";
$body .= "Adres: ";
$body .= $Adres;
$body .= "\n";
$body .= "Postcode: ";
$body .= $Postcode;
$body .= "\n";
$body .= "Woonplaats: ";
$body .= $Woonplaats;
$body .= "\n";
$body .= "Telefoonnummer(1): ";
$body .= $Tel;
$body .= "\n";
$body .= "Telefoonnummer(2): ";
$body .= $Tell;
$body .= "\n";
$body .= "Emailadres: ";
$body .= $Email;
$body .= "\n";
$body .= "Workshop: ";
$body .= $Workshop;
$body .= "\n";
$body .= "Datum: ";
$body .= $Datum;
$body .= "\n";
$body .= "Tijdstip: ";
$body .= $Tijdstip;
$body .= "\n";
$body .= "Hoeveelheid Deelnemers: ";
$body .= $Deelnemers;
$body .= "\n";
$body .= "Opmerkingen: ";
$body .= $Message;
//
$success = mail($EmailTo, $Subject, $body, "From: <". $EmailFrom .">"); 

//
if ($success){
  print "<meta http-equiv=\"refresh\" content=\"0;URL=gelukt.html\">";
}
else{
  print "<meta http-equiv=\"refresh\" content=\"0;URL=mislukt.html\">";
}
?>
 
Hoe zou ik die puinhoop dan het beste kunnen opruimen volgens jou?
 
Code:
$validationOK=true;
if (trim($Naam)=="") $validationOK=false;
if (trim($Adres)=="") $validationOK=false;
if (trim($Postcode)=="") $validationOK=false;
if (trim($Woonplaats)=="") $validationOK=false;
if (trim($Tel)=="") $validationOK=false;
if (trim($Email)=="") $validationOK=false;
if (!$validationOK) {
  print "<meta http-equiv=\"refresh\" content=\"0;URL=mislukt.html\">";
  exit;
}

in eerste instantie geef je de validationOK een waarde, dat moet tussen aanhalingstekens
$validationOK = "true";

je werkt bij de succes (onderaan) met de goeie vorm van de if else, maar op de een of andere manier doe je dat hier niet.
if ( "condition/voorwaarde" ) {
uitvoering
}

dus:
if (trim($Naam)==""){
$validationOK=false;
}
else if .. etc...

Ik weet trouwens ook niet of je de body zo ook wel kunt plaatsen, maar dat weet ik ff niet zeker
 
in eerste instantie geef je de validationOK een waarde, dat moet tussen aanhalingstekens
$validationOK = "true";
Alleen strings moeten tussen aanhalingstekens. True is een boolean waarde en hoeft dus niet tussen aanhalingstekens.

je werkt bij de succes (onderaan) met de goeie vorm van de if else, maar op de een of andere manier doe je dat hier niet.
if ( "condition/voorwaarde" ) {
uitvoering
}
De manier die de TS hier gebruikt mag wel. Als er maar een statement uitgevoerd hoeft te worden in een "if" mag je de accolades weglaten (al is het aan te raden ze wel te plaatsen voor het overzicht).


@TS, je zegt dat je formulier niet werkt. Wat werkt er precies niet?
 
Laatst bewerkt:
Wat er niet werkt aan het formulier is dat je, zelfs wanneer je alle velden in vult, het formulier niet verzonden wordt. Je wordt nog steeds doorgelinkt naar de "mislukt" pagina.
 
PHP:
$Tel = trim(stripslashes($_POST['Telefoonummer(1)']));
$Tell = trim(stripslashes($_POST['Telefoonummer(2)']));
Deze kloppen niet. Er zijn geen velden met als naam 'Telefoonummer(1)' of 'Telefoonummer(2)'. Ze heten 'Tel' en 'Tell':
HTML:
<td>Telefoonnummer(1)</td>
            <td><input type="text" name="Tel" class="verplicht" /></td>
          </tr>
        <tr>
            <td>Telefoonnummer(2)</td>
            <td><input type="text" name="Tell" /></td>
Je moet bovenstaande regels PHP dus veranderen in:
PHP:
$Tel = trim(stripslashes($_POST['Tel']));
$Tell = trim(stripslashes($_POST['Tell']));
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan