Goedemorgen,

Hierbij een hersenkraker op de vroege morgen.. In vorige posts van mij heb ik dit met een AJAX gebasseerde code proberen op te lossen, maar daaruit bleek dat het beter was als ik opnieuw zou beginnen.

Dit heb ik gedaan, maar ik loop vast. Ik begin me sterk af te vragen of het wel mogelijk is wat ik probeer te bereiken??

Het idee is als volgt.
Men voert zijn gegevens in op INVOER.PHP

INVOER.PHP

<form action="result.php" method="post">

Aanhef: <label class="label_aanhef" for="aanhef_1"><input name="aanhef" id="aanhef_1" type="radio" /> Dhr.</label><label class="label_aanhef" for="aanhef_2"><input name="aanhef" id="aanhef_2" type="radio" /> Mevr.</label>
Contactpersoon: <input type="text" name="contactpersoon" />
Bedrijfsnaam: <input type="text" name="bedrijfsnaam" />
Telefoon: <input type="text" name="telefoon" />
E-mail: <input type="text" name="email" />

<input type="submit" />
</form>



Zodra men op submit klik, dienen de volgende functies geactiveerd te worden:
- Validatie check of alle velden ingevuld zijn
- E-mail versturen naar administrator
- Data toevoegen in Mysql database
- Gegevens tonen op Result.php


RESULT.PHP

Aanhef: <?php echo $_POST["aanhef"]; ?><br />
Contactpersoon: <?php echo $_POST["contactpersoon"]; ?><br />
Bedrijfsnaam: <?php echo $_POST["bedrijfsnaam"]; ?><br />
Telefoon: <?php echo $_POST["telefoon"]; ?><br />
E-mail: <?php echo $_POST["email"]; ?><br />



Mijn eerste uitdaging is de validatie aan de gang krijgen en de gegevens tonen op result.php, problemen die ik tegen ben gekomen:
- Validatie heeft gewerkt, maar daarvoor moet ik de "action=result.php" verwijderen. Ik heb ook met location headers gewerkt, maar die nemen mijn data niet mee naar result.php. Hoe kan ik dit oplossen zodat de ingevoerde data uit invoer.php wordt meegenomen naar result.php?


Ik hoor graag van jullie :)
Mag ik even vragen waarom je per se zowel een pagina invoer als een pagina result wenst?

Wat je prima kan doen is als er nog niets gepost is, dan toon je het formulier. Wanneer er gepost is kom je in de 'andere kant' van je if/else. In het else blok ga je dan weer een paar statements plaatsen, die controleren of de input wel valide is. Indien niet, dan toon je bijvoorbeeld opnieuw het formulier. Indien wel, toon je gewoonweg netjes je resultaat.

Beste Write Down,

ik heb een speciaal ontwerp op result.php en wou ik eigenlijk apart houden op een andere pagina vanwege het overzicht in mijn code.
Doe eerst je validatie met PHP door je $_POST te controleren, indien alles goed zet je het tijdelijk in een $_SESSION, dan kan je het later oproepen...
Sebas V op 20/09/2012 09:46:52

... heb ik dit met een AJAX gebasseerde code proberen op te lossen, maar daaruit bleek dat het beter was als ik opnieuw zou beginnen.

Dit heb ik gedaan, maar ik loop vast.


Sorry, maar dit is niet: ik loop vast met Ajax.
Ik zie geen letter javascript. Ik zie een formulier en de bijpassende POST-variabelen.

Toon eens echt wat je probeerde. Dan kunnen we zien en tonen waar het vast op liep en hoe het wel kan.
@Kris/Allen:

Dit was mijn originele code, maar hierin zag ik de bomen door het bos niet meer..

Bedoeling is:
- Validatie check of alle velden ingevuld zijn
- E-mail versturen naar administrator
- Data toevoegen in Mysql database
- Gegevens tonen op Result.php

Ik hoop dat we deze code aan de praat kunnen krijgen, zou me een goed weekend geven hehe..


ZIE CODE ONDERAAN
Sebas je laatste code is niet echt leesbaar. (enorme lange tabs) kun je eens proberen om deze nog eens te posten?
@Frank: Is het zo beter te lezen?
veel beter :)

nou ja toch nog even met de tab toets bezig geweest (waarmee schrijf jij jouw code?)

Ik kan je wel helpen maar dat wordt niet eerder als vanavond.

gr
Oke top, ik hoor graag van je! Ik schrijf me code in Dreamweaver

[size=xsmall]Toevoeging op 21/09/2012 10:47:56:[/size]

Met onderstaande code werken de volgende functies:
- Content sturen naar database
- E-mail verzenden naar admin

Deze functies werken echter nog niet:
- Validatie check (wordt niet gecheckt)
- Data wordt niet meegenomen naar result.php


QUIZ.PHP

<?php

require_once("php/db.php");                 /* Database Class */
require_once('php/utils/is_email.php');     /* Email Validation Script */
											
if(isset($_POST['newcontact'])){
$contact = new Contact();
} else{

//header('Location: result.php');
}
											
/* Class Contact */
class Contact{
											
private $db;                        /* the database obj */
											
//we have to init $errors array, as otherwise form will produce errors on missing array entry
private $errors = array(            /* holds error messages */

'aanhef' => '',
'contactpersoon' => '',
'bedrijfsnaam' => '',
'email' => '',
'telefoon' => '',
'vraag1_antwoorden' => '',
'vraag2_antwoorden' => ''
);
											
private $num_errors;                /* number of errors in submitted form */

public function __construct(){

$this->db = new DB();
if(isset($_POST['newcontact']))
$this->processNewMessage();
}
											
public function processNewMessage(){

$aanhef			= $_POST['aanhef'];			
$contactpersoon		= $_POST['contactpersoon'];		
$bedrijfsnaam		= $_POST['bedrijfsnaam'];
$telefoon		= $_POST['telefoon'];
$email			= $_POST['email'];
$vraag1_antwoorden	= $_POST['vraag1_antwoorden'];
$vraag2_antwoorden	= $_POST['vraag2_antwoorden'];

/* Server Side Data Validation */
if(!isset($aanhef)) {
$this->errors['aanhef'] = 'Vul uw aanhef in';
}
if(!isset($contactpersoon)) {
$this->errors['contactpersoon'] = 'Vul uw contactpersoon in';
}
if(!isset($bedrijfsnaam)) {
$this->errors['bedrijfsnaam'] = 'Vul uw bedrijfsnaam in';
}
if(!isset($telefoon)) {
$this->errors['telefoon'] = 'Vul uw telefoon in';
}
if(!isset($vraag1_antwoorden)) {
$this->errors['vraag1_antwoorden'] = 'Selecteer een antwoord a.u.b.';
}
		
if(!isset($vraag2_antwoorden)) {
$this->errors['vraag2_antwoorden'] = 'Selecteer een antwoord a.u.b.';
}
if(!isset($email)) {
$this->errors['email'] = 'Vul uw e-mail in';
}
/* No errors, insert in db

else*/
if($this->countErrors() == '') {
if(($ret = $this->db->dbNewMessage($aanhef, $contactpersoon, $bedrijfsnaam, $email, $telefoon, $vraag1_antwoorden, $vraag2_antwoorden)) > ''){
//$json = array('result'         => 1);
if(SEND_EMAIL)
$this->sendEmail($aanhef,$contactpersoon,$bedrijfsnaam,$email,$telefoon,$vraag1_antwoorden,$vraag2_antwoorden);
//This is for relocating to successful result page
header('Location: result.php');
} else {   
											
//This will need special treatment. You have to prepare an errorpage
//for database-related issues.

header("Location: database-error.html");
}
}
}
											
public function sendEmail($aanhef,$contactpersoon,$bedrijfsnaam,$email,$telefoon,$vraag1_antwoorden,$vraag2_antwoorden){
/* Just format the email text the way you want ... */
$message_body   = "<div style=\"font-size:12px; font-weight:normal;\">Hallo,<br><br>"
."Het volgende bedrijf heeft zich zojuist aangemeld voor de Quiz:</div><br>"
."<table cellpadding=\"1\" cellspacing=\"1\" width=\"550px\"><tr><td style=\"font-size:12px; color:#000000\">Bedrijfsnaam:</td><td style=\"font-size:12px; color:#000000\">".$bedrijfsnaam."</td></tr><tr><td style=\"font-size:12px; color:#000000\">Aanhef:</td><td style=\"font-size:12px; color:#000000\">".$aanhef."</td></tr><tr><td style=\"font-size:12px; color:#000000\">Contactpersoon:</td><td style=\"font-size:12px; color:#000000\">".$contactpersoon."</td></tr><tr><td style=\"font-size:12px; color:#000000\">Telefoonnummer:</td><td style=\"font-size:12px; color:#000000\">".$telefoon."</td></tr><tr><td style=\"font-size:12px; color:#000000\">E-mail:</td><td style=\"font-size:12px; color:#000000\">".$email."</td></tr><tr><td style=\"font-size:12px; color:#000000\">Antwoord vraag 1:</td><td style=\"font-size:12px; color:#000000\">".$vraag1_antwoorden."</td></tr><tr><td style=\"font-size:12px; color:#000000\">Antwoord vraag 2:</td><td style=\"font-size:12px; color:#000000\">".$vraag2_antwoorden."</td></tr></table><br>";
												
// Geef GELDIGE adressen op
// Een korte benaming voor jouw website

$website_naam = 'Aanmelding Quiz';
// Jouw eigen geldige emailadres
$eigen_emailadres = 'MY EMAIL';
// Een geldig emailadres voor errors
$error_emailadres = 'MY EMAIL';
// De naam van de verzender
$naam_verzender = ''.$bedrijfsnaam.'';
// Het geldige emailadres van de afzender
$email_verzender = ''.$email.'';
// Een geldig emailadres of helemaal leeg laten
$bcc_emailadres = '';
// HTML mail? True/False
$html = true;
													
// De headers samenstellen
$headers	 = 'From: ' . $website_naam . ' <' . $eigen_emailadres . '>' . PHP_EOL;
$headers	.= 'Reply-To: ' . $naam_verzender . ' <' . $email_verzender . '>' . PHP_EOL;
$headers	.= 'Return-Path: Mail-Error <' . $error_emailadres . '>' . PHP_EOL;
$headers	.= ($bcc_emailadres != '') ? 'Bcc: ' . $bcc_emailadres . PHP_EOL : '';
$headers	.= 'X-Mailer: PHP/' . phpversion() . PHP_EOL;
$headers	.= 'X-Priority: Normal' . PHP_EOL;
$headers	.= ($html) ? 'MIME-Version: 1.0' . PHP_EOL : '';
$headers	.= ($html) ? 'Content-type: text/html; charset=iso-8859-1' . PHP_EOL : '';
										
mail(EMAIL_TO,MESSAGE_SUBJECT,$message_body,$headers);
											
}
											
public function setError($field, $errmsg){
$this->errors[$field]   = $errmsg;
$this->num_errors       = count($this->errors);
}
											
public function error_value($field){
if(array_key_exists($field,$this->errors))
return $this->errors[$field];
else
return '';
}
											
public function countErrors(){
return $this->num_errors;
}
};
?>    


<table width="675px" cellpadding="0" cellspacing="0">
<form id="contact_form" method="post" action="">
<label class="label_aanhef" for="aanhef_1"><input name="aanhef" id="aanhef_1" type="radio" value="Dhr." /> Dhr.</label><label class="label_aanhef" for="aanhef_2"><input name="aanhef" id="aanhef_2" type="radio"  value="Mevr." /> Mevr.</label>
<span class="error"><?php echo $contact->error_value['aanhef']; ?></span>

<input id="contactpersoon" name="contactpersoon" maxlength="120" type="text" onFocus="window.scrollTo(0, 0);"/><span class="error"><?php echo $contact->error_value['contactpersoon']; ?></span>
<input id="bedrijfsnaam" name="bedrijfsnaam" maxlength="120" type="text" onFocus="window.scrollTo(0, 0);"/><span class="error"><?php echo $contact->error_value['bedrijfsnaam']; ?></span>
<input id="email" name="email" maxlength="120" type="text" onFocus="window.scrollTo(0, 0);"/><span class="error"><?php echo $contact->error_value['email']; ?></span>
<input id="telefoon" name="telefoon" maxlength="120" type="text" onFocus="window.scrollTo(0, 0);"/><span class="error"><?php echo $contact->error_value['telefoon']; ?></span>


<label class="label_radio" for="vraag1_A"><input name="vraag1_antwoorden" id="vraag1_A" value="A. Dat is helaas fout, het goede antwoord is: C) < 1 Ohm" type="radio" />A) Geen eis</label>
<label class="label_radio" for="vraag1_B"><input name="vraag1_antwoorden" id="vraag1_B" value="B. Dat is helaas fout, het goede antwoord is: C) < 1 Ohm" type="radio"  />B) < 0,1 Ohm</label>
<label class="label_radio" for="vraag1_C"><input name="vraag1_antwoorden" id="vraag1_C" value="C. Gefeliciteerd dat is het goede antwoord." type="radio"  />C) < 1 Ohm</label>
<label class="label_radio" for="vraag1_D"><input name="vraag1_antwoorden" id="vraag1_D" value="D. Dat is helaas fout, het goede antwoord is: C) < 1 Ohm" type="radio" />D) < 10 Ohm</label>
<span id="vraag1_antwoorden" class="foutmelding_quiz">
<?php echo $contact->error_value['vraag1_antwoorden']; ?>
</span>
					
<label class="label_radio" for="vraag2_A"><input name="vraag2_antwoorden" id="vraag2_A" value="A. Gefeliciteerd dat is het goede antwoord." type="radio" />A) Geen eis</label>
<label class="label_radio" for="vraag2_B"><input name="vraag2_antwoorden" id="vraag2_B" value="B. Dat is helaas fout, het goede antwoord is: A)  Geen eis" type="radio" />B) < 0,1 Ohm</label>
<label class="label_radio" for="vraag2_C"><input name="vraag2_antwoorden" id="vraag2_C" value="C. Dat is helaas fout, het goede antwoord is: A)  Geen eis" type="radio" />C) < 1 Ohm</label>
<label class="label_radio" for="vraag2_D"><input name="vraag2_antwoorden" id="vraag2_D" value="D. Dat is helaas fout, het goede antwoord is: A)  Geen eis" type="radio" />D) < 10 Ohm</label>
<span id="vraag2_antwoorden" class="foutmelding_quiz">
<?php echo $contact->error_value['vraag2_antwoorden']; ?>
</span>
<input class="button submit" type="submit" value="" /><input id="newcontact" name="newcontact" type="hidden" value="1"></input>
</form>



RESULT.PHP



Aanhef: <?php echo $_POST["aanhef"]; ?><br />
Contactpersoon: <?php echo $_POST["contactpersoon"]; ?><br />
Bedrijfsnaam: <?php echo $_POST["bedrijfsnaam"]; ?><br />
Telefoon: <?php echo $_POST["telefoon"]; ?><br />
E-mail: <?php echo $_POST["email"]; ?><br /> 


[size=xsmall]Toevoeging op 21/09/2012 13:30:26:[/size]

Hallo,

iemand claimt mijn code gefixed te hebben, echter ik krijg de volgende foutmelding:
Fatal error: Call to a member function errors() on a non-object

Het gaat fout bij deze regel:
<span class="error"><?php echo $contact->errors('aanhef'); ?></span>

Weet iemand hoe je dit kan oplossen?


    <?php
     
    require_once("php/db.php");                 /* Database Class */
    require_once('php/utils/is_email.php');     /* Email Validation Script */
     
    if(!empty($_POST['newcontact'])){
            $contact = new Contact();
    } else{
            //header('Location: result.php');
    }
     
    /* Class Contact */
    class Contact
    {
            private $db;                        /* the database obj */
     
            //we have to init $errors array, as otherwise form will produce errors on missing array entry
            private $errors = array(            /* holds error messages */
                    'aanhef' => '',
                    'contactpersoon' => '',
                    'bedrijfsnaam' => '',
                    'email' => '',
                    'telefoon' => '',
                    'vraag1_antwoorden' => '',
                    'vraag2_antwoorden' => ''
            );
     
            private $has_errors;                /* number of errors in submitted form */
     
            public function __construct()
            {
                    $this->db = new DB();
                    if (!empty($_POST['newcontact'])) {
                            $this->processNewMessage();
                    }
            }
            public function processNewMessage()
            {
                    $aanhef             = $_POST['aanhef'];
                    $contactpersoon     = $_POST['contactpersoon'];
                    $bedrijfsnaam       = $_POST['bedrijfsnaam'];
                    $telefoon           = $_POST['telefoon'];
                    $email              = $_POST['email'];
                    $vraag1_antwoorden  = $_POST['vraag1_antwoorden'];
                    $vraag2_antwoorden  = $_POST['vraag2_antwoorden'];
     
                    /* Server Side Data Validation */
                    if (empty($aanhef)) {
                            $this->setError('aanhef', 'Vul uw aanhef in');
                    }
     
                    if (empty($contactpersoon)) {
                            $this->setError('contactpersoon', 'Vul uw contactpersoon in');
                    }
     
                    if (empty($bedrijfsnaam)) {
                            $this->setError('bedrijfsnaam', 'Vul uw bedrijfsnaam in');
                    }
     
                    if (empty($telefoon)) {
                            $this->setError('telefoon', 'Vul uw telefoon in');
                    }
     
                    if (empty($vraag1_antwoorden)) {
                            $this->setError('vraag1_antwoorden', 'Selecteer een antwoord a.u.b.');
                    }
     
                    if (empty($vraag2_antwoorden)) {
                            $this->setError('vraag2_antwoorden', 'Selecteer een antwoord a.u.b.');
                    }
     
                    if (empty($email)) {
                            $this->setError('email', 'Vul uw e-mail in');
                    }
     
                    /* No errors, insert in db
                    else*/
     
                    if(!$this->has_errors) {
                            if(($ret = $this->db->dbNewMessage($aanhef, $contactpersoon, $bedrijfsnaam, $email, $telefoon, $vraag1_antwoorden, $vraag2_antwoorden)) > '') {
                                    //$json = array('result'         => 1);
                                    if (SEND_EMAIL) {
                                            $this->sendEmail($aanhef,$contactpersoon,$bedrijfsnaam,$email,$telefoon,$vraag1_antwoorden,$vraag2_antwoorden);
                                            //This is for relocating to successful result page
                                            header('Location: result.php');
                                            exit;
                                    } else {
                                            //This will need special treatment. You have to prepare an errorpage
                                            //for database-related issues.
     
                                            header("Location: database-error.html");
                                            exit;
                                    }
                            }
                    }
            }
     
            public function sendEmail($aanhef,$contactpersoon,$bedrijfsnaam,$email,$telefoon,$vraag1_antwoorden,$vraag2_antwoorden)
            {
            /* Just format the email text the way you want ... */
                    $message_body   = "<div style=\"font-size:12px; font-weight:normal;\">Hallo,<br><br>"
                    ."Het volgende bedrijf heeft zich zojuist aangemeld voor de Veiligheids Quiz:</div><br>"
                    ."<table cellpadding=\"1\" cellspacing=\"1\" width=\"550px\"><tr><td style=\"font-size:12px; color:#000000\">Bedrijfsnaam:</td><td style=\"font-size:12px; color:#000000\">".$bedrijfsnaam."</td></tr><tr><td style=\"font-size:12px; color:#000000\">Aanhef:</td><td style=\"font-size:12px; color:#000000\">".$aanhef."</td></tr><tr><td style=\"font-size:12px; color:#000000\">Contactpersoon:</td><td style=\"font-size:12px; color:#000000\">".$contactpersoon."</td></tr><tr><td style=\"font-size:12px; color:#000000\">Telefoonnummer:</td><td style=\"font-size:12px; color:#000000\">".$telefoon."</td></tr><tr><td style=\"font-size:12px; color:#000000\">E-mail:</td><td style=\"font-size:12px; color:#000000\">".$email."</td></tr><tr><td style=\"font-size:12px; color:#000000\">Antwoord vraag 1:</td><td style=\"font-size:12px; color:#000000\">".$vraag1_antwoorden."</td></tr><tr><td style=\"font-size:12px; color:#000000\">Antwoord vraag 2:</td><td style=\"font-size:12px; color:#000000\">".$vraag2_antwoorden."</td></tr></table><br>";
     
                    // Geef GELDIGE adressen op
                    // Een korte benaming voor jouw website
     
                    $website_naam = 'Aanmelding Quiz';
                    // Jouw eigen geldige emailadres
                    $eigen_emailadres = 'MY MAIL';
                    // Een geldig emailadres voor errors
                    $error_emailadres = 'MY MAIL';
                    // De naam van de verzender
                    $naam_verzender = ''.$bedrijfsnaam.'';
                    // Het geldige emailadres van de afzender
                    $email_verzender = ''.$email.'';
                    // Een geldig emailadres of helemaal leeg laten
                    $bcc_emailadres = '';
                    // HTML mail? True/False
                    $html = true;
     
                    // De headers samenstellen
                    $headers     = 'From: ' . $website_naam . ' <' . $eigen_emailadres . '>' . PHP_EOL;
                    $headers    .= 'Reply-To: ' . $naam_verzender . ' <' . $email_verzender . '>' . PHP_EOL;
                    $headers    .= 'Return-Path: Mail-Error <' . $error_emailadres . '>' . PHP_EOL;
                    $headers    .= ($bcc_emailadres != '') ? 'Bcc: ' . $bcc_emailadres . PHP_EOL : '';
                    $headers    .= 'X-Mailer: PHP/' . phpversion() . PHP_EOL;
                    $headers    .= 'X-Priority: Normal' . PHP_EOL;
                    $headers    .= ($html) ? 'MIME-Version: 1.0' . PHP_EOL : '';
                    $headers    .= ($html) ? 'Content-type: text/html; charset=iso-8859-1' . PHP_EOL : '';
     
                    mail(EMAIL_TO,MESSAGE_SUBJECT,$message_body,$headers);
            }
     
            public function setError($field, $errmsg)
            {
                    $this->has_errors     = true;
                    $this->errors[$field] = $errmsg;
            }
     
            public function errors($field)
            {
                    if (array_key_exists($field,$this->errors)){
                            return $this->errors[$field];
                    }
                   
                    return '';
            }
    };
    ?>
     
    <table width="675px" cellpadding="0" cellspacing="0">
    <form id="contact_form" method="post" action="">
    <label class="label_aanhef" for="aanhef_1"><input name="aanhef" id="aanhef_1" type="radio" value="Dhr." /> Dhr.</label><label class="label_aanhef" for="aanhef_2"><input name="aanhef" id="aanhef_2" type="radio"  value="Mevr." /> Mevr.</label>
    <span class="error"><?php echo $contact->errors('aanhef'); ?></span>
     
    <input id="contactpersoon" name="contactpersoon" maxlength="120" type="text" onFocus="window.scrollTo(0, 0);"/><span class="error"><?php echo $contact->errors('contactpersoon'); ?></span>
    <input id="bedrijfsnaam" name="bedrijfsnaam" maxlength="120" type="text" onFocus="window.scrollTo(0, 0);"/><span class="error"><?php echo $contact->errors('bedrijfsnaam'); ?></span>
    <input id="email" name="email" maxlength="120" type="text" onFocus="window.scrollTo(0, 0);"/><span class="error"><?php echo $contact->errors('email'); ?></span>
    <input id="telefoon" name="telefoon" maxlength="120" type="text" onFocus="window.scrollTo(0, 0);"/><span class="error"><?php echo $contact->errors('telefoon'); ?></span>
     
     
    <label class="label_radio" for="vraag1_A"><input name="vraag1_antwoorden" id="vraag1_A" value="A. Dat is helaas fout, het goede antwoord is: C) < 1 Ohm" type="radio" />A) Geen eis</label>
    <label class="label_radio" for="vraag1_B"><input name="vraag1_antwoorden" id="vraag1_B" value="B. Dat is helaas fout, het goede antwoord is: C) < 1 Ohm" type="radio"  />B) < 0,1 Ohm</label>
    <label class="label_radio" for="vraag1_C"><input name="vraag1_antwoorden" id="vraag1_C" value="C. Gefeliciteerd dat is het goede antwoord." type="radio"  />C) < 1 Ohm</label>
    <label class="label_radio" for="vraag1_D"><input name="vraag1_antwoorden" id="vraag1_D" value="D. Dat is helaas fout, het goede antwoord is: C) < 1 Ohm" type="radio" />D) < 10 Ohm</label>
    <span id="vraag1_antwoorden" class="foutmelding_quiz">
    <?php echo $contact->errors('vraag1_antwoorden'); ?>
    </span>
     
    <label class="label_radio" for="vraag2_A"><input name="vraag2_antwoorden" id="vraag2_A" value="A. Gefeliciteerd dat is het goede antwoord." type="radio" />A) Geen eis</label>
    <label class="label_radio" for="vraag2_B"><input name="vraag2_antwoorden" id="vraag2_B" value="B. Dat is helaas fout, het goede antwoord is: A)  Geen eis" type="radio" />B) < 0,1 Ohm</label>
    <label class="label_radio" for="vraag2_C"><input name="vraag2_antwoorden" id="vraag2_C" value="C. Dat is helaas fout, het goede antwoord is: A)  Geen eis" type="radio" />C) < 1 Ohm</label>
    <label class="label_radio" for="vraag2_D"><input name="vraag2_antwoorden" id="vraag2_D" value="D. Dat is helaas fout, het goede antwoord is: A)  Geen eis" type="radio" />D) < 10 Ohm</label>
    <span id="vraag2_antwoorden" class="foutmelding_quiz">
    <?php echo $contact->errors('vraag2_antwoorden'); ?>
    </span>
    <input class="button submit" type="submit" value="" /><input id="newcontact" name="newcontact" type="hidden" value="1"></input>
    </form>
waarschijnlijk gaat er iets fout bij

<?php
$contact->errors('aanhef')
?>

errors is een array en geen functie dus het moet zijn:

<?php
$contact->errors['aanhef']
?>

Call to a member function errors() on a non-object betekent dat er een variabele gebuikt wordt die een verwijzing moet hebben naar een instantie van een class (volg je hem nog?) de variable is in dit geval dan $db.

je moet het zo zien:

je maakt in je code een class, bijvoorbeeld

<?php
class DB {
// ...
};
?>

dan ga je in een ander deel van je code een instantie (een kopie) van die class in het geheugen aanmaken. bijv:

<?php
$db = new DB();
?>

Daarna kun je de functies (of methods) van de class aanroepen. Bijv.

<?php
$db->dbNewMessage(..);
?>

maar doe je dit laatste dus vóór dat je een instantie van de class hebt aangemaakt dan krijg je dus jouw foutmelding.

dus:
<?php
$db->dbNewMessage(..); // je krijgt een foutmelding omdat er nog geen verwijzing is naar de instantie van de class!

$db = new DB();

$db->dbNewMessage(..); // dit gaat goed!
?>

Reageren