Goedendag,

ik vroeg me even af of deze controle goed is (hij werkt):

<?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>.';
?>

Oftewel, is dit netjes/slordig gescript? Just curious =)
Uh? En dat werkt ofzo? :-O

Je zou beter vragen wat er wel juist is aan dit script ipv wat er niet goed is..
care to explain?

Of moet ik nu vragen wat er wel goed is? Want dan doe ik dat =P

Wat is er wel goed?
Welke waarde denk jij dat $send zou moeten hebben als een naam leeg is maar er is wel een bericht ingevuld..

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)
$send wordt gewoon gebruikt om te kijken of hij door moet gaan of niet. Misschien heb ik iets te weinig laten zien:

<?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 {
?>


Dat komt er nog na, en aangezien alles op 1 pagina gebeurt vond ik het niet nodig om een global te gebruiken.
Kijk dan nog maar eens hier naar: [php]variables.scope[/php]
Dan zou ik alsnog graag antwoord krijgen van jou op volgende vraag:
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..
@Karl: zal ik even naar kijken.

@Hipska: oh slim inderdaad, daar had ik niet aan gedacht. ik zet hem ook op true =P
Dus het is de bedoeling dat het dan true is?

OK sorry, dan heb ik niets gezegd. (Alleen dan dat ik vind dat dat onlogisch is :p )
Haha nee je had het wel goed.
Ik heb het nu zo gedaan:

<?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>.';
?>

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!
Je hebt dus niks gelezen?

Reageren