Connectie tussen een INVOER en RESULT pagina

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Sebas V

Sebas V

20/09/2012 09:46:52
Quote Anchor link
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
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<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
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
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 :)
 
PHP hulp

PHP hulp

23/11/2024 09:47:43
 
Write Down

Write Down

20/09/2012 10:04:13
Quote Anchor link
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.
 
Sebas V

Sebas V

20/09/2012 10:08:06
Quote Anchor link
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.
Gewijzigd op 20/09/2012 10:08:42 door Sebas V
 
Marvin H

Marvin H

20/09/2012 10:24:11
Quote Anchor link
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...
 
Kris Peeters

Kris Peeters

20/09/2012 11:15:00
Quote Anchor link
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.
 
Sebas V

Sebas V

21/09/2012 08:25:47
Quote Anchor link
@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
Gewijzigd op 21/09/2012 10:59:33 door Sebas V
 
Frank Nietbelangrijk

Frank Nietbelangrijk

21/09/2012 08:36:45
Quote Anchor link
Sebas je laatste code is niet echt leesbaar. (enorme lange tabs) kun je eens proberen om deze nog eens te posten?
 
Sebas V

Sebas V

21/09/2012 08:54:23
Quote Anchor link
@Frank: Is het zo beter te lezen?
 
Frank Nietbelangrijk

Frank Nietbelangrijk

21/09/2012 08:56:47
Quote Anchor link
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
Gewijzigd op 21/09/2012 09:15:12 door Frank Nietbelangrijk
 
Sebas V

Sebas V

21/09/2012 09:15:20
Quote Anchor link
Oke top, ik hoor graag van je! Ik schrijf me code in Dreamweaver

Toevoeging op 21/09/2012 10:47:56:

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
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
<?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


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
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 />


Toevoeging op 21/09/2012 13:30:26:

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">
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $contact->errors('aanhef'); ?>
</span>

Weet iemand hoe je dit kan oplossen?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
    <?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>
Gewijzigd op 21/09/2012 09:16:12 door Sebas V
 
Frank Nietbelangrijk

Frank Nietbelangrijk

21/09/2012 15:38:48
Quote Anchor link
waarschijnlijk gaat er iets fout bij

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
 $contact
->errors('aanhef')
?>


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

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?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

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$db
= new DB();
?>


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

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?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!
?>
Gewijzigd op 21/09/2012 15:43:26 door Frank Nietbelangrijk
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.