Archief - Hulp gevraagd web form

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Vulpturius

Legacy Member
Het is al enkele jaren geleden sinds ik voor het laatst een website heb gemaakt. Nu heeft mijn schoonbroer mij overhaalt om zijn website te maken en ben ik ermee terug begonnen.
Nu kwam ik aan de contact formulier en heb toch nog wat herinneringen kunnen ophalen hoe dit te maken.
Nu is mijn probleem dat ik de contact niet kan maken zoals ik wou, als ik op verzenden klik opent hij outlook en dus niet zoals ik het wil.
Ik heb op diverse sites (ook op 9lives) gevonden dat ik het via PHP moet doen.
Op sommige website gaven ze ook hun code mee waar je die kunt mee gebruiken. Dus ik dit geprobeerd maar steeds lukt da langs geen kanten.
Ik begrijp niet hoe de PHP code in mijn html file in te werken en wanneer ik denk dat het eindelijk juist is en ik het uitprobeer dan klik ik op verzenden en dan vraagt hij om een bestand te downloaden.

Ik ben hierin echt een leek, dus wouk ik vragen of sommige mensen mij misschien met dit probleem kan helpen sinds ik nu al bijna 4 dagen aan elkaar dit probleem op te lossen en ik al hardstikke koppijn ervan heb gekregen.

Om te tonen dat ik toch wat heb gezocht alvorens hier heb gepost hier de links van de codes.

Hier de meeste maar geen enkele kan ik laten werken
PHP Contact formulieren scripts

andere diverse
Websitemaken.be :: Alles voor je website - Tutorials - PHP & MySQL - Formulierverwerking - Contactformulier
Davici - PHP voorbeeld contactformulier

mijn code atm is als volgt :s dus ik weet niet waar ik de php moet toevoegen en ook niet hoe dit in mijn site te laten inwerken. moet ik mijn contact.html dan omzetten in contact.php?

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<meta http-equiv="imagetoolbar" content="no">

</head>

<body background="Offerte.jpg" style="font-family: 'Stencil Std'">
<form name="mail" method="post" action="mailto:[email protected]?subject=test" enctype="text/plain">
<table cellspacing="4" cellpadding="0" class="contact_table">
<tr>
<td>Uw naam:</td>
<td><input name="naam " type="text"/></td>
</tr>
<tr>
<td>Uw email-adres:</td>
<td><input name="emailadres " type="text"/></td>
</tr>
<tr>
<td>Uw adres:</td>
<td><input name="adres " type="text"/></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input name="adres 2" type="text"/></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>Onderwerp:</td>
<td><input name="onderwerp " type="text"/></td>
</tr>
<tr>
<td valign="top">Bericht:</td>
<td><textarea name="boodschap " cols="50" rows="10"></textarea>
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>
<input style="font-family:'Stencil Std'" type="submit" value="Verzenden"/>
<input style="font-family:'Stencil Std'" type="reset" value="Beginwaarden"/>
</td>
</tr>
</table>
</form>

</body>
</html>

j design

Legacy Member
Eerst en vooral moet je checken of je server php ondersteunt.
Ik heb een vaag vermoeden dat je dat niet zal hebben.

Verder kan ik je dit aanraden
Welkom | Gratis Contact Formulier Script | Gratis script downloaden , javascript en php contact formulier met uitstekende controle!
Door adrianhates, hier op het forum, ontwikkeld.
Heb er zelf nog niet met gewerkt, maar hem kennende zal dat wel goed werken.

php code is simpelweg tussen de lijnen html te verwerken.
Je moet enkel de aankondigingen doen.

<?php code ?>

-BVR-

Legacy Member
Ik gebruik het contactform van adrianhates. Werkt over het algemeen zoals het moet werken, hoewel ik soms vreemde reclame binnenkrijg over SEO en CMS.

Vulpturius

Legacy Member
De webserver ondersteund PHP zonder probleem, heb zopas de informatie gehad over de server en daar staat dat deze PHP, ASP, ... ondersteund.

Nu ik ga es die website van jullie controleren en hopelijk versta ik er iets van :oink:
Allesinds al hartelijk bedankt en mocht er iets niet lukken hoop ik dat ik jullie terug mag contacteren met behulp van deze forum.

dJeez

Legacy Member
Vulpturius zei:
Nu is mijn probleem dat ik de contact niet kan maken zoals ik wou, als ik op verzenden klik opent hij outlook en dus niet zoals ik het wil.
Dan zal je eerst de basis moeten leren. Het feit dat hij de default mail client opent ligt gewoon aan je code, met name de action mailto:... in je form. Neem dus eerst wat tutorials of een degelijk boek door, zodat alles duidelijk wordt (of net niet, trek daar dan de gepaste conclusies uit).

Vulpturius

Legacy Member
Ik heb dus een web form kunnen maken en ik denk dat de code zelf goed is (heb de code gebruikt van adrianhates)
Nu probeer ik de webform uit te proberen op mijn server maar dat gaat zo niet gemakkelijk merk ik. Ik weet dat je de rechten moet instellen maar zelfs met alles aan werkt het niet.
Ik krijg als ik naar de webform wil gaan de volgende error van de server:

Server fout!

Foutbericht:
Premature end of script headers: php

Indien u van oordeel bent dat deze server in fout is, gelieve de webmaster te contacteren.

Error 500
test.be
Mon Oct 25 21:12:24 2010
Apache/2.0.54 (Debian GNU/Linux) FrontPage/5.0.2.2635 mod_ssl/2.0.54 OpenSSL/0.9.7e

Ligt dit nu aan mijn web form zelf of ligt dat aan de rechten die niet kloppen of iets anders? Mijn server kan wel degelijk PHP aan

Sick-Boy

Legacy Member
Dit script van sitemasters.be heb ik net even getest en werkt. Zet dit op je server (is toch geen locale server op je eigen pc?), het enige wat je moet doen is bovenaan je eigen e-mailadres zetten ($naar = ...). Als het niet werkt dan scheelt er iets met je host. Het duurt wel even eer de mail effectief in je inbox zit, niet panikeren als je niet onmiddellijk resultaat hebt.

Het is een simpel script waaruit je de verwerking van formulieren kan achterhalen. Maar let wel op: de inhoud van het formulier wordt niet gecontroleerd op boosdoenerij! Als je dit publiekelijk maakt moet je beveiliging toevoegen.

PHP:
<?php  
$naar = "[email protected]";
if(isset($_POST['verzend']))
{  
	$email = $_POST['email'];

    if($_POST['naam'] == '')
    {  
        echo "U heeft geen naam ingevuld!<br />";  
        echo "<a href='javascript:history.back();' style='color: black; text-decoration:none;'>Klik hier om terug te gaan!</a>";   
    }  
    elseif($_POST['email'] == '')
    {  
        echo "U heeft geen e-mail adress ingevuld!<br />";  
        echo "<a href='javascript:history.back();' style='color: black; text-decoration:none;'>Klik hier om terug te gaan!</a>";  
    }  
    elseif($_POST['bericht'] == '')
    {  
        echo "U heeft geen bericht ingevuld!<br />";  
        echo "<a href='javascript:history.back();' style='color: black; text-decoration:none;'>Klik hier om terug te gaan!</a>";  
    }  
    elseif($_POST['onderwerp'] == '')
    {  
        echo "U heeft geen onderwerp ingevuld!<br />";  
        echo "<a href='javascript:history.back();' style='color: black; text-decoration:none;'>Klik hier om terug te gaan!</a>";  
    }  
    else  
    {  
        
            $bericht = " 
<html> 
<head> 
  <title>Contact</title> 
</head> 
<body> 
Beste ".$_POST['naam']."<br>U heeft vandaag het volgende bericht Gestuurd.
  <br>
  <br>
  <hr width='100%'>
  <table border='0' width='100%'> 
   <tr> 
    <td width='20%'>Het onderwerp:</td> 
    <td>".$_POST['onderwerp']."</td> 
   </tr> 
   <tr> 
    <td width='20%'>Het Bericht:</td> 
    <td>".$_POST['bericht']."</td> 
   </tr> 
  </table> 
  <hr width='100%'>
</body> 
</html> 
";  
            $headers = "MIME-Version: 1.0\r\n";  
            $headers.= "Content-type: text/html; charset=iso-8859-1\r\n";  
            $headers.= "From: ".$_POST['naam']." <".$_POST['email'].">\r\n";
            if(mail($naar, $_POST['onderwerp'],$bericht,$headers))
            {  
                echo 'Uw Bericht is naar de naar de webmaster verstuurd!<br>';  
            }  
            else
            {  
                echo 'Uw bericht is helaas niet verstuurd.';  
            }  
            $ond = "Uw bericht";
            if (mail($email,$ond,$bericht,$headers))
            {  
                echo 'We hebben een e-mail naar u terug gestuurd!';  
            }  
            else // Anders 
            {  
                echo 'Er is helaas niks naar u gestuurd.';  
            }  
          
    }  
}  
else  
{  
?>  
<!-- Formulier weergeven --> 
<center>Contact</center>
<table border='0' width='100%'> 
<form method='post'> 
<tr> 
  <td width='33%'>Naam:</td> 
  <td width="67%"><input type='text' name='naam' /></td> 
</tr> 
<tr> 
  <td width='33%'>E-mail adress:</td> 
  <td><input type='text' name='email' /></td> 
</tr> 
<tr> 
  <td width='33%'>Het onderwerp:</td> 
  <td><input type='text' name='onderwerp' /></td> 
</tr> 
<tr> 
  <td width='33%'>Het Bericht:</td> 
  <td><textarea name='bericht' cols="40" rows="5"></textarea></td> 
</tr> 
<tr> 
  <td colspan='2' align='center'><input type='submit' value='Verzend' name='verzend' /></td> 
</tr> 
</form> 
</table> 
<?php  
}  
?>

adrianhates

Legacy Member
mijn contactformulier is ni meer wa het geweest is.. da heeft dringend nen update nodig maar kheb er geen tijd voor..

Vulpturius

Legacy Member
krulle3 zei:
'k weet niet wat die test.be daar doet hoor?

Nomaal stond daar de website adres maar heb dit gewoon veranderd naar test.be omdat ik niet wou geflamed worden als mensen de site zouden zien en dan reacties erop. (ben geen prof in websites maken dusja)

@Sick boy

Nee de server is geen interne server maar een server van hostway. Ik ben nu bezig met uwe script aan het uit proberen.

Vulpturius

Legacy Member
@sick boy

Ik heb die test gebruikt en die werkt goed dus het ligt dus degelijk aan mijn code :cry::cry:

zie --> http://larbre.be/Offerte/Test.php

dus nu weet ik echt niet hoe dit op te lossen, dus hopelijk krijg ik nogmaals de hulp van jullie om dit op te lossen.

Daarom hier de code die ik gebruik, hopelijk is het niet al te om zeep geholpen :s

Offerte.php ziet er zo uit:

<?php
require_once('functions.php');
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>L'arbre</title>
<meta http-equiv="imagetoolbar" content="no">
<link rel="stylesheet" href="css/style-contact.css" type="text/css" media="screen" />
</head>

<body background="Offerte.jpg" style="font-family: 'lucida sans'"><div id="contactformulier">

<?php
if(isset($_POST['submit'])){
// haal de gegevens binnen voor de email
$naam = $_POST['naam'];
$email = $_POST['email'];
$adres1 = $_POST['adres1'];
$adres2 = $_POST['adres2'];
$onderwerp = $_POST['onderwerp'];
$bericht = $_POST['bericht'];
$spam = $_POST['spam'];
$uitkomst = $_POST['uitkomst'];

// spamcheck gegevens
$hidden = $_POST['hid1'];
$hidden2 = $_POST['hid2'];

// eindresultaat : zal bepalen of de mail wordt verzonden of niet
$resultaat = true;

// foutmelding array
// hier komen de foutmeldingen in
$foutmelding['naamleeg'] = 0;
$foutmelding['emailleeg'] = 0;
$foutmelding['emailfout'] = 0;
$foutmelding['berichtleeg'] = 0;
$foutmelding['spamleeg'] = 0;
$foutmelding['spamfout'] = 0;
$foutmelding['verzendenfout'] = 0;

// controleren of de hidden fields leeg zijn
// deze moeten leeg zijn
if(empty($hidden1) && empty($hidden2)){

// controleren of de naam is ingevuld
if(checkLength($naam)){
// foutmelding geen naam ingevuld
$foutmelding['naamleeg'] = 1;
$resultaat = false;
}

// controleren of de email is ingevuld
if(checkLength($email)){
// foutmelding geen geldig emailadres
$foutmelding['emailleeg'] = 1;
$resultaat = false;
}
else{
// controleren op geldigheid van emailadres
if(checkEmail($email)){
// foutmelding geen geldig emailadres
$foutmelding['emailfout'] = 1;
$resultaat = false;
}
}

// controleren of het bericht is ingevuld
if(checkLength($bericht)){
// foutmelding te kort bericht
$foutmelding['berichtleeg'] = 1;
$resultaat = false;
}

// controleren of de spamcontrole is ingevuld
if(checkLength($spam)){
// foutmelding geen spamresultaat ingevuld
$foutmelding['spamleeg'] = 1;
$resultaat = false;
}
else{
if(checkSpam($spam,$uitkomst)){
// foutmelding foutief spamresultaat
$foutmelding['spamfout'] = 1;
$resultaat = false;
}
}
}
else{
// foutmelding van ingevulde spamvelden
$resultaat = false;
}
if($resultaat){
// controleren of de email verstuurt is
if(verstuurMail($_POST)){
$_POST = null;
}
// de email is niet verstuurd
else{
$foutmelding['verzendenfout'] = 1;
$resultaat = false;
}
}
}


?>
<!--
Verborgen veld : afgehandeld
-->
<div id="succes"> <?php if($resultaat == false){ echo 'class="hidden"';}?>
<p>Uw bericht is succesvol verstuurd!</p>
</div>

<form method="post" action="">
<table cellspacing="4" cellpadding="0" class="contact_table">
<tr>
<td>Uw naam:</td>
<td><input name="naam" type="text" value="<?php echo $_POST['naam']; ?>"/> <p class="fout <?php if($foutmelding['naamleeg'] == 0) echo 'hidden';?>" id="naamleeg">Naam is verplicht!</p>
</td>
</tr>
<tr>
<td>Uw email-adres:</td>
<td><input name="email" type="text" value="<?php echo $_POST['email']; ?>"/>
<p class="fout <?php if($foutmelding['emailleeg'] == 0) echo 'hidden';?>" id="emailleeg">Email is verplicht!</p>
<p class="fout <?php if($foutmelding['emailfout'] == 0) echo 'hidden';?>" id="emailfout">Geldige email is verplicht!</p></td>
</tr>
<tr>
<td>Uw adres:</td>
<td><input name="adres1" type="text" value="<?php echo $_POST['adres1']; ?>"/></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input name="adres2" type="text" value="<?php echo $_POST['adres2']; ?>"/></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>Onderwerp:</td>
<td><input name="onderwerp" type="text" value="<?php echo $_POST['onderwerp']; ?>"/></td>
</tr>
<tr>
<td valign="top">Bericht:</td>
<td><textarea name="bericht" cols="50" rows="10"><?php echo $_POST['bericht']; ?></textarea><p class="fout <?php if($foutmelding['berichtleeg'] == 0) echo 'hidden';?>" id="berichtleeg">Bericht is verplicht!</p>
</td>
</tr>
<tr>
<td>Spamcontrole:</td>
<td>Hoeveel is <?php echo $_SESSION['random_cijfer_1'];?> plus (+) <?php echo $_SESSION['random_cijfer_2'];?>: <input type="text" name="spam" id="spam" class="spamtext" />
<p class="fout <?php if($foutmelding['spamleeg'] == 0) echo 'hidden';?>" id="spamleeg">Spam-uitkomst is verplicht!</p>
<p class="fout <?php if($foutmelding['spamfout'] == 0) echo 'hidden';?>" id="spamfout">Dit is niet de juiste uitkomst!</p>
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>
<input style="font-family:'lucida sans'" type="submit" value="Verzend bericht" name="submit"/><span id="loading"> Even geduld aub.. </span>
<p class="fout <?php if($foutmelding['vezendenfout'] == 0) echo 'hidden';?>" id="verzendenfout">Er was een fout bij het versturen van de email!</p></td>
</tr>
</table>
</form>
</div>
</body>
</html>

config.php ziet er zo uit:

<?php

/*
* Configuratie van de email settings
*/

// timezone en taalinstelling
date_default_timezone_set('Europe/Brussels');
setlocale(LC_TIME, 'NL_nl');

// het emailadres naar waar het contactformulier moet verzonden worden
define("ONTVANGER","hier is mijn email adres ingevuld");

// het onderwerp van de email
define("ONDERWERP","Contact via uw website");

// html emails(true) of niet(false)
define("HTMLEMAILS",true);

// Geef de maximum waarde voor de bereking van de spamuitkomst
define("MAX_CIJFER",8);

// Geef de minimum waarde voor de bereking van de spamuitkomst
define("MIN_CIJFER",2);


/*
* Configuratie van de spamsom
*/

// als de sessie variabelen nog niet gezet zijn
// genereer dan nieuwe variabelen
$_SESSION['test_uitkomst'] = null;
if($_SESSION['test_uitkomst'] == null){

// genereer het eerste random cijfer
// en zet het in de session
$random_cijfer_1 = intval(rand(MIN_CIJFER,MAX_CIJFER));
$_SESSION['random_cijfer_1'] = $random_cijfer_1;

// genereer het tweede random cijfer
// en zet het in de session
$random_cijfer_2 = intval(rand(MIN_CIJFER,MAX_CIJFER));
$_SESSION['random_cijfer_2'] = $random_cijfer_2;

// bereken de uitkomst
// en zet het in de session
$_SESSION['test_uitkomst'] = bcadd($random_cijfer_1,$random_cijfer_2);
}
?>

en functions.php ziet er als volgt uit:

<?php
// start een sessie of zet ze voort voor de spamcheck
session_start();

// include de config
require_once('config.php');

/*
* De functie controleert een gegeven email op geldigheid
* @return bool
*/
function checkEmail($email){
// definieer het patroon voor geldige emails
$patroon = "/^[A-z0-9\._-]+". "@". "[A-z0-9][A-z0-9-]*". "(\.[A-z0-9_-]+)*". "\.([A-z]{2,6})$/";

// vergelijk het patroon met de email
// bij geldige overéénkomst return true
// bij ongeldige overéénkomst return false
return preg_match($patroon, $email) ? FALSE : TRUE;
}

/*
* Deze functie controleert een gegeven waarde op lengte
* @return bool
*/
function checkLength($waarde){
// als de gegeven waarde leeg is
// return false
if(empty($waarde)){
return true;
}
// als de gegeven waarde niet leeg is
// return true
else{
return false;
}
}

/*
* Deze functie controleert een gegeven waarde op lengte
* @return bool
*/
function checkSpam($spam,$uitkomst){
// als het gegeven spamresultaat niet overéénkom met de uitkomst
// return false;
if(md5($spam) != $uitkomst){
return true;
}
// als het gegeven spamresultaat overéénkom met de uitkomst
// return true;
else{
return false;
}
}

/*
* Deze functie switched tussen de 2 types van email ( html en plaintext )
* @return bool
*/
function verstuurMail($waarden){

// resultaat van functie
$resultaat = false;

// als de configuratie html emails toelaat
if(HTMLEMAILS){
$resultaat = sendHtmlEmail($waarden);
}
// geen html emails toegelaten
else{
$resultaat = sendPlainTextEmail($waarden);
}

// return resultaat
return $resultaat;

}

/*
* Deze functie verstuurt de HTML email
* @return bool
*/
function sendHtmlEmail($waarden){

// time stamp
$timestamp = date("\o\p j F Y \o\m G\ui");

// stel het emailbericht samen
$message = "
<html>
<head>
<title>".ONDERWERP."</title>
</head>
<body>
<p style='font-size:0.9em;border-bottom:1px solid #000;padding-bottom:10px;'>$subject:</p>
<table cellpadding='0' cellspacing='0'>
<tr>
<td style='font-weight:bold;padding:0 10px 3px 0;'>Naam:</td>
<td>".$waarden['naam']."</td>
</tr>
<tr>
<td style='font-weight:bold;padding:0 10px 3px 0;'>Email:</td>
<td>".$waarden['email']."</td>
</tr>
<tr>
<td style='font-weight:bold;padding:0 10px 3px 0;'>Telefoon:</td>
<td>".$waarden['tel']."</td>
</tr>
<tr>
<td colspan='2'>&nbsp;</td>
</tr>
<tr>
<td colspan='2'>".$waarden['bericht']."</td>
</tr>
</table>
<p style='font-size:0.9em;border-top:1px solid #000;padding-top:10px;'>Deze email werd verstuurd $timestamp .</p>
</body>
</html>
";

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

// zet de headers
$headers .= "From: " .$waarden['naam']. "<".$waarden['email'].">"."\n";
$headers .= "Reply-To: " .$waarden['naam']. "<".$waarden['email'].">";

// Mail it
return mail(ONTVANGER, ONDERWERP, $message, $headers);
}

/*
* Deze functie verstuurt de PlainText email
* @return bool
*/
function sendPlainTextEmail($waarden){

// timestamp
$timestamp = date("\o\p j F Y \o\m G\ui");

// stel het emailbericht samen
$message .= ONDERWERP."\r\n\r\n";
$message .= "Naam: ".$waarden['naam']." \r\n";
$message .= "Email: ".$waarden['email']." \r\n";
$message .= "Telefoon: ".$waarden['tel']." \r\n\r\n";
$message .= $waarden['bericht']." \r\n\r\n";
$message .= "Deze email werd verstuurd $timestap ";

// zet de headers
$headers = "From: " .$waarden['naam']. "<".$waarden['email'].">"."\n";
$headers .= "Reply-To: " .$waarden['naam']. "<".$waarden['email'].">";

// Mail it
return mail(ONTVANGER, ONDERWERP, $message, $headers);
}
?>

Sick-Boy

Legacy Member
Jouw spam controle werkt niet, maar als dat niet in orde is wordt er geen mail verstuurd.
Je verwerkt gegevens die er niet zijn (hid1, hid2, uitkomst).
In de functie sendHtmlEmail staat ergens $subject, deze variabele bestaat niet en staat net als $timestamp gewoon in de tekst.

Als dat is opgelost krijg je normaal een e-mail (zonder stylesheet die wel in de head-sectie staat).

Vulpturius

Legacy Member
Aller eerst enrom bedankt dat jullei me willen helpen want ben een beetje radeloos aan het worden.
Oke ik heb dus atm die spam controle eruit gebonjourd en geprobeerd om het eerst te laten werken zonder.
Nu heb ik mijn 'nieuwe' versie online gegooid en nu krijg ik miljaarde deze error :s

Fatal error: Call to undefined function: date_default_timezone_set() in /home/d/5/9/3418/3418/public_html/Offerte/config.php on line 16

Sick-Boy

Legacy Member
Dan heb je een oudere versie van PHP die de functie niet ondersteunt.
Gewoon // voor die lijn zetten (en eventueel de lijn eronder).

Op PHP.net vind je bij elke functie vanaf welke versie ze gebruikt kunnen worden.

De versie op je webhost kan je nagaan door een bestand te maken met enkel <?php phpinfo(); ?> in

Vulpturius

Legacy Member
Oke ik heb eindelijk de web form voor de eertse keer kunnen gebruiken maar ik heb nog 1 heel klein probleempje.

Bovenaan de form staat er, als de form goed is ingevuld en verzonden, in het groen "Uw bericht is succesvol verstuurd!"
Maar bij mij staat dit al van het begin erbij. Dit zou eerst moeten ontzichtbaar zijn maar dit is zo niet op dit moment.
Er staat:

class="hidden"
Uw bericht is succesvol verstuurd!

Of bekijk het hier L'arbre

Hoe zou ik dit weg krijgen ??


Ps sorry voor de vele vragen maar toch enorm bedankt voor al jullie hulp

Sick-Boy

Legacy Member
Onmogelijk!




Bekijk de rest van de code eens en denk aan de vreugde die je gaat ervaren als je het zelf gevonden hebt.

Vulpturius

Legacy Member
Sick-Boy zei:
Onmogelijk!




Bekijk de rest van de code eens en denk aan de vreugde die je gaat ervaren als je het zelf gevonden hebt.

Onmogelijk om het op te lossen of mogelijk maar ik moet zelfs eerst proberen (wat ik nu al enkele uren aan het doen ben :$)

Sick-Boy

Legacy Member
Je hebt nochtans voorbeelden waar het wel werkt, nl. de foutmeldingen.

D3vilke

Legacy Member
Misschien moet je toch maar eerst een basis html aanleren. Want als je de fout hiervan niet inziet dan mis je toch een grote basis...

<div id="succes"> <?php if($resultaat == false){ echo 'class="hidden"';}?>
<p>Uw bericht is succesvol verstuurd!</p>
</div>

je kan niet zomaar ergens een class zetten. Dit moet aan een element toegewezen worden. Ik veronderstel dat je het hier aan de div wilt geven, maar die heb je daar vlak voor afgesloten.

dit zou wel moeten werken:

<div id="succes" <?php if($resultaat == false){ echo 'class="hidden"';}?>>
<p>Uw bericht is succesvol verstuurd!</p>
</div>

krulle3

Legacy Member
Het contactformulier is idd niet wat het zou moeten zijn, enkele weken terug was hier ook al iemand die er problemen mee had. Dan eens deftig de php code bekeken en toch wel enkele fouten gezien zoals de validatie bv.

Als het om dezelfde versie gaat van Adrianhates, dan heb 'k volgende opmerkingen nog eens opgevist uit m'n mailbox.

Ten eerste moet je altijd controleren of er wel ergens een waarde inzit en dit doe je met "isset".
In lijn 229 deed ik dit bv. om te zien of er al een mailadres was ingegeven.

<?php if (isset($_POST['email'])){echo $_POST['email'];} ?>

Indien er een email is gepost en je form niet volledig is dan vult het form opnieuw de email in.

Ik paste dit ook aan in lijn 220 en 240


Verder maakte je nog een grootte validatie fout bij de weergave van uw bericht is goed verzonden.
Eigenlijk controleer jij sowieso de variabele $resultaat bij het opstarten van je form.
Dit kan je doen maar niet zoals jij want dan heeft hij een foutmelding + de boodschap verzonden terwijl men nog op niks klikte.
Dit komt doordat je variabele $resultaat nog niet is gekend.

ik heb dit zo opgelost in lijn 201:

<?php if (isset($resultaat)){if($resultaat == false){ echo "class='hidden'";}} else { echo "class='hidden'";}?>

Dus indien je je form opstart en er dus nog geen waarde is gegeven aan de variabele $resultaat voeg je sowieso de class hidden toe.
else { echo "class='hidden'";}

Indien $resultaat wel een waarde heeft dan kan hij controleren of de waarde op false staat of op true.

Hopelijk ben je er iets mee.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan