Hallo,

In mijn sendmail valideer ik of e-mail geldig is en of de overige 2 velden in ieder geval 1 teken bevatten:

if($_SERVER['REQUEST_METHOD'] == 'POST') {

$email = $_POST['email'];
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {

if( $_POST['name'] || $_POST['message'] && strlen($value)<1 ) {


Als waarde true is, wordt mijn formulier verstuurd.
Als waarde false is wordt lege pagina getoond (script stopt).
Mijn vraag: kan deze combinatie van 3x if zonder else of 'hoort' dit niet?

Guido
Een else is uiteraard niet verplicht.

Wel altijd haakjes gebruiken bij de combinatie van or en and

if(... or (... and ...)) is wat anders dan if((... or ...) and ...)
Met de logische operator && voor en kun je condities combineren:


if (...)
&& (...)
&& (...) {
    // Alle condities zijn true
    ...
}
Dank!

Stond een foutje in validatie van 2 velden, moet zijn:

if( strlen($_POST['name'] && $_POST['message']) >0 ) {


Guido
Guido vd L op 06/11/2015 13:33:23


if( strlen($_POST['name'] && $_POST['message']) >0 ) {



Vreemde vergelijking.

Als de stringlengte van (variabele AND variabele) groter dan nul is.
Ingevuld:
Als de stringlengte van ('Jan' AND 'Hallo') groter dan nul is.
Oh, dat is idd niet de bedoeling :-(

Dit zal dan wel correct moeten zijn:

if( strlen($_POST['name']) >0 && strlen($_POST['message']) >0 ) {


Thanks!

Toevoeging op 07/11/2015 01:40:45:

Zoals je ziet heb ik nu 3 if statements onder elkaar.
Dit werkt prima maar kan zoals jullie aangeven zeker netter.
Wie kan me even op weg helpen want het lukt mij zelf niet om deze 3 netjes te integreren.
Of is nu wel prima zo?


if($_SERVER['REQUEST_METHOD'] == 'POST') {

$email = $_POST['email'];
if(filter_var($email, FILTER_VALIDATE_EMAIL)) {

$name = strip_tags($_POST['name']);
$message = strip_tags($_POST['message']);
if( strlen($name) >0 && strlen($message) >0 ) {

(ik gebruik strip_tags want content van bericht is text/plain)

Reageren