Mannen ik ga ff een broodje pakken en dit alles doornemen, ik kom hierop terug na de lunch. Bedankt zover!
Link gekopieerd
Wat krijg je met dit?
<?php
if(isset($aanhef) || $aanhef == '') {
$this->errors('aanhef' => 'Vul uw aanhef in' );
}
?>
Link gekopieerd
Sinds wanneer is dat correcte array syntax Chris?
Link gekopieerd
Erwin H op 28/08/2012 12:49:08
Sinds wanneer is dat correcte array syntax Chris?
Sinds het begin van php? $errors is bovenaan het script toch al als een array gedeclareerd?
Dan zou dat toch moeten werken? Of moet daar dan toch nog array voor staan?
dus zo $this->errors = array ('aanhef' => 'Vul uw aanhef in');
Link gekopieerd
E
Erwin H
28-08-2012 13:15
gewijzigd op 28-08-2012 13:15
Als je een element in een array wilt toevoegen (of wijzigen):
$this->errors['aanhef'] = 'Vul uw aanhef in';
Als je de complete array opnieuw wilt declareren:
$this->errors = array ('aanhef' => 'Vul uw aanhef in');
Bij de laatste verdwijnt dus alles wat je al had in de array.
Link gekopieerd
S
Sebas V
28-08-2012 13:18
gewijzigd op 28-08-2012 13:19
@Erwin: Ik heb de syntax toegevoegd, alleen nu werkt mijn validatie niet meer. Zodra ik op submit klik, dan checkt het formulier niet de inputs.
<div id="formulierruimte">
<?php
require_once("php/db.php"); /* Database Class */
require_once('php/utils/is_email.php'); /* Email Validation Script */
/* Handle Ajax Request */
if(isset($_POST['newcontact'])){
$contact = new Contact();
//We'll refer to that later on, to display errors.
//unset($contact);
}
else{
//header('Location: result.php');
}
/* Class Contact */
class Contact{
private $db; /* the database obj */
//private $errors = array(); /* holds error messages */
//we have to init $errors array, as otherwise form will produce errors on missing array entry
private $errors = array( /* holds error messages */
'aanhef' => '',
'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();
/* We don't need this anymore
*
else
header('Location: result.php');*/
}
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) || $aanhef == ''){
$this->errors['aanhef'] = 'Vul uw aanhef in';
}
if(!$contactpersoon || mb_strlen($contactpersoon = trim($contactpersoon)) == '') {
$this->errors['contactpersoon'] = 'Vul uw contactpersoon in';
} else if (mb_strlen(trim($contactpersoon)) > 120) {
$this->errors('contactpersoon', 'Te lang! 120 karakters max.'); }
if(!$bedrijfsnaam || mb_strlen($bedrijfsnaam = trim($bedrijfsnaam)) == '') {
$this->errors['bedrijfsnaam'] = 'Vul uw bedrijfsnaam in';
} else if (mb_strlen(trim($bedrijfsnaam)) > 120) {
$this->errors('bedrijfsnaam', 'Te lang! 120 karakters max.'); }
if(!$telefoon || mb_strlen($telefoon = trim($telefoon)) == '') {
$this->errors['telefoon'] = 'Vul uw telefoon in';
} else if (mb_strlen(trim($telefoon)) > 120) {
$this->errors('telefoon', 'Te lang! 120 karakters max.'); }
if(!$vraag1_antwoorden || mb_strlen($vraag1_antwoorden = trim($vraag1_antwoorden)) == '') {
$this->errors['vraag1_antwoorden'] = 'Selecteer een antwoord a.u.b.'; }
if(!$vraag2_antwoorden || mb_strlen($vraag2_antwoorden = trim($vraag2_antwoorden)) == '') {
$this->errors['vraag2_antwoorden'] = 'Selecteer een antwoord a.u.b.'; }
if(!$email || mb_strlen($email = trim($email)) == '') {
$this->errors['email'] = 'Vul uw e-mail in';
} else if (mb_strlen(trim($email)) > 120) {
$this->errors('email', 'Te lang! 120 karakters max.'); }
/* No errors, insert in db
else*/
if($this->countErrors() == 0) {
if(($ret = $this->db->dbNewMessage($aanhef, $contactpersoon, $bedrijfsnaam, $email, $telefoon, $vraag1_antwoorden, $vraag2_antwoorden)) > 0){
//$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 {
// else
// $json = array('result' => -2); /* something went wrong in database insertion */
//This will need special treatment. You have to prepare an errorpage
//for database-related issues.
header("Location: database-error.html");
}
/*$encoded = json_encode($json);
echo $encoded;
unset($encoded);*/
}
}
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:</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';
// Jouw eigen geldige emailadres
$eigen_emailadres = 'MAIL';
// Een geldig emailadres voor errors
$error_emailadres = '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->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="ContactForm" action="quiz.php" method="post">
<tr>
<td class="left_td"> </td><td><font size="-2">* Gelieve alle velden in te vullen.</font></td>
</tr>
<tr class="rij_aanhef">
<td class="left_td">Aanhef<font size="-2" style="vertical-align:top;">*</font></td>
<td>
<label class="label_aanhef" for="aanhef_1"><input name="aanhef" id="aanhef_1" value="Dhr." type="radio" /> Dhr.</label><label class="label_aanhef" for="aanhef_2"><input name="aanhef" id="aanhef_2" value="Mevr." type="radio" /> Mevr.</label>
<span class="error">
<?php echo $aanhef->error_value['aanhef']; ?>
</span>
</td>
</tr>
<tr class="rij_contactpersoon">
<td class="left_td">Contactpersoon</td>
<td>
<input id="contactpersoon" name="contactpersoon" class="inplaceError" maxlength="120" type="text" class="error" autocomplete="off" onFocus="window.scrollTo(0, 0);"/>
<span class="error">
<?php echo $contactpersoon->error_value['contactpersoon']; ?>
</span>
</td>
</tr>
<tr class="rij_bedrijf">
<td class="left_td">Bedrijfsnaam</td>
<td>
<input id="bedrijfsnaam" name="bedrijfsnaam" class="inplaceError" maxlength="120" type="text" autocomplete="off" onFocus="window.scrollTo(0, 0);"/>
<span class="error">
<?php echo $bedrijfsnaam->error_value['bedrijfsnaam']; ?>
</span>
</td>
</tr>
<tr>
<td class="left_td">E-mail</td>
<td>
<input id="email" name="email" class="inplaceError" maxlength="120" type="text" autocomplete="off" onFocus="window.scrollTo(0, 0);"/>
<span class="error">
<?php echo $email->error_value['email']; ?>
</span>
</td>
</tr>
<tr>
<td class="left_td">Telefoonnummer</td>
<td><input id="telefoon" name="telefoon" class="inplaceError" maxlength="120" type="text" autocomplete="off" onFocus="window.scrollTo(0, 0);"/>
<span class="error">
<?php echo $telefoon->error_value['telefoon']; ?>
</span>
</td>
</tr>
</table>
</div>
Link gekopieerd
Chris PHP
28-08-2012 13:19
gewijzigd op 28-08-2012 13:27
Erwin H op 28/08/2012 13:15:12
Als je een element in een array wilt toevoegen (of wijzigen):
$this->errors['aanhef'] = 'Vul uw aanhef in';
Als je de complete array opnieuw wilt declareren:
$this->errors = array ('aanhef' => 'Vul uw aanhef in');
Bij de laatste verdwijnt dus alles wat je al had in de array.
Aaah ok, thnx voor de helderheid. Dit is duidelijke taal, dus dan zou hij die syntax moeten gebruiken.
[size=xsmall]
Toevoeging op 28/08/2012 13:23:00: [/size]
@Sebastian,
Doe het eens zo.
<?php
if(!isset($contactpersoon)) {
$this->errors['contactpersoon'] = 'Vul uw contactpersoon in';
} else if (isset($contactoersoon) || mb_strlen(trim($contactpersoon)) > 120) {
$this->errors['contactpersoon'] = 'Te lang! 120 karakters max.'; }
?>
Link gekopieerd
S
Sebas V
28-08-2012 13:25
gewijzigd op 28-08-2012 13:26
@Chris: Als ik dat doe, dan krijg ik: Parse error: syntax error, unexpected ')' in C:\domains\projecten.nl\wwwroot\iPad\quiz.php on line 135
Line 135 = $this->errors['contactpersoon'] = 'Te lang! 120 karakters max.'); }
Link gekopieerd
Sebastian V op 28/08/2012 13:25:47
@Chris: Als ik dat doe, dan krijg ik: Parse error: syntax error, unexpected ')' in C:\domains\projecten.nl\wwwroot\iPad\quiz.php on line 135
Welke regel is dat in mijn script, let wel ik heb hem nog geen minuut geleden gewijzigd ;) Probeer het nu nog eens met het bovenstaande.
Link gekopieerd
Hierzo lag de fout: 'Te lang! 120 karakters max.'); }
Link gekopieerd