Controle goed gecodeerd?
ik vroeg me even af of deze controle goed is (hij werkt):
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
function check_field($naam, $field) {
if (strlen($naam) < 3) {
$error .= "- Your ".$field." should be atleast 3 characters long.";
return false;
}
else {
return true;
}
if ($_GET['send'] == "true") {
$send = true;
$error = 'A error occured when trying to send your mail. The following errors were found:<br>';
$send = check_field($_POST['voornaam'], "first name");
$send = check_field($_POST['achternaam'], "last name");
$send = check_field($_POST['subject'], "subject");
$send = check_field($_POST['message'], "message");
$error .= '<br><br>Please try it again <a href="?page=contact">here</a>.';
?>
function check_field($naam, $field) {
if (strlen($naam) < 3) {
$error .= "- Your ".$field." should be atleast 3 characters long.";
return false;
}
else {
return true;
}
if ($_GET['send'] == "true") {
$send = true;
$error = 'A error occured when trying to send your mail. The following errors were found:<br>';
$send = check_field($_POST['voornaam'], "first name");
$send = check_field($_POST['achternaam'], "last name");
$send = check_field($_POST['subject'], "subject");
$send = check_field($_POST['message'], "message");
$error .= '<br><br>Please try it again <a href="?page=contact">here</a>.';
?>
Oftewel, is dit netjes/slordig gescript? Just curious =)
Gewijzigd op 01/01/1970 01:00:00 door Steven Hack
Je zou beter vragen wat er wel juist is aan dit script ipv wat er niet goed is..
Of moet ik nu vragen wat er wel goed is? Want dan doe ik dat =P
Wat is er wel goed?
En waar komt $error in je function vandaan? Die bestaat daar normaal gezien nog niet. (Tip: je kan 'global' gebruiken, maar dit is niet de netste oplossing)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
if (isset($_SESSION['contact'])) {
if (time()-$_SESSION['contact'] < "300") {
$error = "- You already sent a message not long ago. Please do not try to flood the services.";
$send = false;
}
}
if (!$send) {
echo '<span class="posttitel">Contact</span>';
echo '<div class="postcontent">';
echo $error;
echo '</div>';
}
else {
?>
if (isset($_SESSION['contact'])) {
if (time()-$_SESSION['contact'] < "300") {
$error = "- You already sent a message not long ago. Please do not try to flood the services.";
$send = false;
}
}
if (!$send) {
echo '<span class="posttitel">Contact</span>';
echo '<div class="postcontent">';
echo $error;
echo '</div>';
}
else {
?>
Dat komt er nog na, en aangezien alles op 1 pagina gebeurt vond ik het niet nodig om een global te gebruiken.
Hipska schreef op 24.05.2009 16:15:
Welke waarde denk jij dat $send zou moeten hebben als een naam leeg is maar er is wel een bericht ingevuld..
@Hipska: oh slim inderdaad, daar had ik niet aan gedacht. ik zet hem ook op true =P
OK sorry, dan heb ik niets gezegd. (Alleen dan dat ik vind dat dat onlogisch is :p )
Ik heb het nu zo gedaan:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
function check_field($naam, $field) {
if (strlen($naam) < 3) {
global $error, $send;
$error .= "- Your ".$field." should be atleast 3 characters long.";
$send = false;
return false;
}
else {
return true;
}
if ($_GET['send'] == "true") {
$send = true;
$error = 'A error occured when trying to send your mail. The following errors were found:<br>';
$check = check_field($_POST['voornaam'], "first name");
$check = check_field($_POST['achternaam'], "last name");
$check = check_field($_POST['subject'], "subject");
$check = check_field($_POST['message'], "message");
$error .= '<br><br>Please try it again <a href="?page=contact">here</a>.';
?>
function check_field($naam, $field) {
if (strlen($naam) < 3) {
global $error, $send;
$error .= "- Your ".$field." should be atleast 3 characters long.";
$send = false;
return false;
}
else {
return true;
}
if ($_GET['send'] == "true") {
$send = true;
$error = 'A error occured when trying to send your mail. The following errors were found:<br>';
$check = check_field($_POST['voornaam'], "first name");
$check = check_field($_POST['achternaam'], "last name");
$check = check_field($_POST['subject'], "subject");
$check = check_field($_POST['message'], "message");
$error .= '<br><br>Please try it again <a href="?page=contact">here</a>.';
?>
Reden dat ik hier een return geef is omdat ik het misschien nog ergens anders bij wil gebruiken later. Bedankt voor de scope tip trouwens karl!
Gewijzigd op 01/01/1970 01:00:00 door Steven Hack
Je hebt dus niks gelezen?
Jawel, had alleen het verkeerde toegevoegd. Was net aan het editen =P