if functie combineren

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Bryan De Baar

Bryan De Baar

09/07/2014 10:25:55
Quote Anchor link
Hallo,

Ik wil graag mijn formulier controleren op lege velden.
Nu heb ik een code, alleen heb ik dit per veld gemaakt
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
<?php
//controleren of Gebruikersnaam is ingevuld.
if (empty($_post['username'])){
//als veld leeg is
    echo "user ID is niet ingevuld";
//als veld is ingevuld ga verder
}else{
echo "ga verder";
}



//controleren of Wachtwoord is ingevuld.    
if (empty($_post['password'])){
//als veld leeg is
    echo "Wachtwoord is niet ingevuld";
//als veld is ingevuld ga verder    
}else{
echo "ga verder";
}

?>


Kan ik deze 2 combineren?

Ik wil een aparte error voor elke veld, dus niet:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
if (empty($_post['password']) . empty($_post['password'] )){
echo "velden zijn niet ingevuld";
}
else{
echo "ga verder";
}

?>



Groetjes bryan
Gewijzigd op 09/07/2014 10:27:34 door Bryan De Baar
 
PHP hulp

PHP hulp

29/03/2024 12:00:12
 
Gerhard l

gerhard l

09/07/2014 10:43:40
Quote Anchor link
Dit kan je doen door een array van errors te maken.
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
<?
$aErrors
= array();
if(!isset($_POST['password']) OR $_POST['password'] == ''){
    $aErrors[] = 'No password';
}


// overige velden hier valideren

if(empty($aErrors)){
    // ga door
}
else{
    // toon eenmalig de errors
}

?>
 
Bryan De Baar

Bryan De Baar

09/07/2014 11:28:41
Quote Anchor link
Beste Gerhard,

U bedoeld dus:
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
<?
//errors instellen d.m.v. variable
$no_user_id = ['no userid'];
$no_password = ['no password'];
$no_user_id = "geen gebruikersnaam ingevuld";
$no_password = "geen wachtwoord ingevuld";


$aErrors = array();
if(!isset($_POST['password']) OR $_POST['password'] == ''){
    $aErrors[] = 'no password';
}


if(!isset($_POST['userid']) OR $_POST['userid'] == ''){
    $aErrors[] = 'no userid';
}


if(empty($aErrors)){
    // ga door
}
else{
    // toon eenmalig de errors
}

?>
 
Obelix Idefix

Obelix Idefix

09/07/2014 11:48:26
Quote Anchor link
Denk het niet.
Wat is het nut van de regels 3 t/m 6 in jouw code / waar ga je die 4 variabelen gebruiken?

Kijk eens op http://www.phptuts.nl/view/39/8/ hoe ze daar controleren op lege velden.
Gewijzigd op 09/07/2014 11:54:07 door Obelix Idefix
 
Bryan De Baar

Bryan De Baar

09/07/2014 17:42:34
Quote Anchor link
Heb het gevonden met wat tutorials :)

Nu heb ik nog een vraag betreft dit.

Nu wil ik dat als een veld leeg is er een variabel uit komt

bijvoorbeeld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php

if (empty($_post['place'])){
$status = '1';
}
else{
$status = '2';
}


?>


deze variable heb ik verder in de code nodig, het is een variable die dus van waarde moet veranderen.

Gr. Bryan
 
Obelix Idefix

Obelix Idefix

09/07/2014 18:22:54
Quote Anchor link
Over empty:
Niels Kieviet op 09/04/2011 14:43:45:
@Santhe en anderen..

empty is een functie die naar het schijnt niet altijd het juiste resultaat oplevert. Daarom kan er beter gebruik worden gemaakt van:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php

trim($_POST['iets']) != ''

?>


Daarnaast kan (nog) beter controleren met de ctype_* functie en de is_* functies. En niet vergeten strlen.
Hier wordt empty ook 'uitgelegd / afgekraakt': klik

Maar voordat je controleer of je $_POST variabele volstaat aan de door jouw gestelde condities moet hij wel eerst bestaan. Dat moet je controleren met isset.


Zocht overigens een ander recenter bericht hierover.

Bryan De Baar op 09/07/2014 17:42:34:
Nu wil ik dat als een veld leeg is er een variabel uit komt

deze variable heb ik verder in de code nodig, het is een variable die dus van waarde moet veranderen.

Begrijp je vraag of probleem niet. Je kent een waarde toe aan de variabele status; die heb je dan toch beschikbaar in je code?
 
Frank Nietbelangrijk

Frank Nietbelangrijk

09/07/2014 18:35:47
Quote Anchor link
PHP heeft een aantal dingen die ze er beter nooit in hadden kunnen brengen. empty() is er inderdaad één van wat mij betreft. Gebruik isset() om te controleren of een variabele (of index van een array) wel bestaat of niet, lege strings met $string == '' en numerieke waardes met vergelijking-operators als <, >, >=, <=, == en !=.
 
- SanThe -

- SanThe -

09/07/2014 18:38:45
Quote Anchor link
Ik gebruik empty() de laatste tijd juist erg veel.
Perfect als je weet wat het doorlaat en wat niet.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

09/07/2014 18:39:05
Quote Anchor link
Bryan De Baar op 09/07/2014 17:42:34:
Nu wil ik dat als een veld leeg is er een variabel uit komt


Bedoel je dit?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$language
= 'Nederlands';
if(isset($_POST['language']))
    $language = $_POST['language'];
?>


Toevoeging op 09/07/2014 18:39:50:

- SanThe - op 09/07/2014 18:38:45:
Ik gebruik empty() de laatste tijd juist erg veel.
Perfect als je weet wat het doorlaat en wat niet.


Ik heb het werkelijk nog nooit gebruikt en ik mis het ook niet :-)
 
Bryan De Baar

Bryan De Baar

09/07/2014 19:24:20
Quote Anchor link
Beste iedereen,


Natuurlijk gebruik ik eerst de isset functie om te kijken of de variable bestaat.
Als die bestaan gaat hij door naar de volgende handeling.

Zodra er op submit word gedrukt moet worden bekeken of alles in ingevuld.
Dit kan door de empty functie of door een array te maken en de isset te gebruiken.(als ik het goed heb)

Als de velden niet goed zijn ingevuld wil ik dat de variable $log_status als waarde '0' krijgt
Op het moment dat alles goed is ingevuld moet de variable de waarde '1' krijgen

Zelf dacht ik dit te kunnen maken met bijvoorbeeld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php

If (isset($_post ['place'] ) OR $_post['place'] == ''){

$log_status = '0';
}
else{
$log_status ='1';
}


?>


Zit ik in de goede richting te denken?

Gr. Bryan

Succes vanavond met voetbal!
 
Frank Nietbelangrijk

Frank Nietbelangrijk

09/07/2014 21:46:38
Quote Anchor link
Bryan De Baar op 09/07/2014 19:24:20:
Zodra er op submit word gedrukt moet worden bekeken of alles in ingevuld.
Dit kan door de empty functie of door een array te maken en de isset te gebruiken.(als ik het goed heb)


Hier ga je dus de fout in.

Stel je hebt de volgende input:
Hoeveel kinderen heeft u? [...........]
Hier kan een waarde 0, 1, 2 en hoger worden ingevuld.
indien hier 0 wordt ingevuld zal empty($_POST['kinderen']) hierop TRUE geven als zijnde dat dit veld leeg is terwijl dat niet zo is.

Je kunt dit veld beter valideren door dit te doen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
if(!ctype_digit($_POST['kinderen']))
    $errors[] = 'Vul een getal in van 0 of hoger.';
?>


ctype_digit checkt of er alleen cijfers zijn ingevuld.
Gewijzigd op 09/07/2014 21:47:06 door Frank Nietbelangrijk
 
Bryan De Baar

Bryan De Baar

10/07/2014 01:03:10
Quote Anchor link
Beste Frank,

Wat u aangeeft is niet wat ik bedoel,
Het gaat mij erom wat na het valideren gebeurt.

Misschien een ander voorbeeldje:

Als velden zijn ingevuld wil ik dat daar een variable uitkomt bijvoorbeeld geef $status = 1
Als de velden niet goed zijn ingevuld geef $status = 0

De variable is $status alleen veranderd de waarde in 0 of 1
 
H Kse

H Kse

10/07/2014 01:56:02
Quote Anchor link
Je zit in de buurt met

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php

If (isset($_post ['place'] ) OR $_post['place'] == ''){

$log_status = '0';
}
else{
$log_status ='1';
}


?>

Alleen wat jij nu doet ongeacht wat de place is geef waard $log_status = '0'; aan.

Wat je kan doen is
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php

if (empty($_POST['place']) OR !isset($_POST['place']))
{

$log_status = '0';
}

else
{
$log_status ='1';
}


?>
 
Bryan De Baar

Bryan De Baar

10/07/2014 11:17:02
Quote Anchor link
Beste H Kse,

Yes dit is precies wat ik bedoel!
Dus wat er nu gebeurt is:

-De empty kijk of er geen lege velden zijn.
-De isset kijkt of het wel /!niet bestaat.

Volledig staat er dus: als place leeg is of niet bestaat geef 0 anders geef 1.

Stel dat ik er ooit eens een 3e variable wil aanplakken moet ik dan gebruik maken van de functie elseif?

Gr. Bryan
 
Gerhard l

gerhard l

10/07/2014 11:24:14
Quote Anchor link
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
<?php
$log_status
= '1';

if(!isset($_POST['place'] ) OR $_POST['place'] == ''){
    $log_status = '0';
}


if(!isset($_POST['x'] ) OR $_POST['x'] == ''){
    $log_status = '0';
}


if(!isset($_POST['y'] ) OR $_POST['y'] == ''){
    $log_status = '0';
}


?>
 
- SanThe -

- SanThe -

10/07/2014 11:56:09
Quote Anchor link
Als je eerst empty() gebruikt is daarna een isset() oerbodig. Als de var niet bestaat geeft empty() true.
 
Bryan De Baar

Bryan De Baar

10/07/2014 11:58:01
Quote Anchor link
Beste Gerhard,

Bedankt voor de reactie, ik bedoel meer in de richting:

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
<?php
// bij openen of vernieuwen van pagina geef 0
$log_status = '0';

if (empty($_POST['place']) OR !isset($_POST['place'])){
//indien velden leeg zijn krijg status 1
$log_status = '1';

//[Anders] zijn velden gevuld geef 2
}else{
$log_status = '2';
}


?>


Bij de code van H Kse word de status gelijk 1 omdat er niets is ingevuld.
Als ik nu een 0 status wil gegeven bij het openen of vernieuwen van de pagina en pas de 1 (als niet is ingevuld) en 2(als iets gevuld is) na de submit.

Zelf had ik dit in gedachte alleen werkt dit niet en weet niet waarom :-(
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
if(!isset($_POST['Submit'])){
$log_status ='0';
}
else{
if (empty($_POST['place']) OR !isset($_POST['place']))
{

$log_status = '0';
}

else
{
$log_status ='1';
}

?>
Gewijzigd op 10/07/2014 11:59:02 door Bryan De Baar
 
Gerhard l

gerhard l

10/07/2014 12:20:18
Quote Anchor link
Ik snap helemaal niet wat je nou precies wilt eerlijk gezegd.
Waarom zou je aan het begin een 0 toekennen, als je toch al weet dat het of een 1 of een 2 wordt?
 
Yoeri Achterbergen

Yoeri Achterbergen

10/07/2014 13:03:36
Quote Anchor link
Ik denk dat ik snap wat hij bedoeld ;-)

Waarschijnlijk heeft dit met een andere functie te maken die hij wilt aanroepen d.m.v. de status: 0, 1 of 2.

Voordat er op de submit word geklikt moet hij status 0 aanbieden.
Nadat er op de submit word geklikt word gekeken of de velden na behoren zijn ingevuld, is dit zo geef dan status 1
Is dit niet het geval geef dan status 2.

als ik denk wat het is wilt hij dus de code zo maken

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
<?php
//controleer of de submit is geklikt
if(!isset($_POST['Submit'])){
//als er niet op de submit is geklikt geef dan een 0
$log_status ='0';
// anders ga verder naar deze stap
}else{
//controleer op leeg veld
if (empty($_POST['place']) OR !isset($_POST['place']))
//indien veld leeg is geef 1
{
$log_status = '1';
}

//anders geef een 2
else
{
$log_status ='2';
}

?>


Zelf ben ik ook nog niet goed thuis in php maar als ik dit allemaal voorbij zie komen, denk ik dat Bryan dit bedoeld?
 
Bryan De Baar

Bryan De Baar

10/07/2014 13:26:17
Quote Anchor link
Beste Yoeri,

Yes dat klopt, ik weet dat de status inderdaad 1 of 2 gaat worden, maar wil dus daarvoor een status 0 hebben ook ales de pagina vernieuwd word of word terug gestuurd.
 
H Kse

H Kse

10/07/2014 14:16:31
Quote Anchor link
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
<?php
        
    if ( $_SERVER['REQUEST_METHOD'] == 'POST')
    {

        if (empty($_POST['place']))
        {

            echo '1'; // Als het leeg is
        }
        else
        {
            echo '2'; // Als er invoer is
        }
    }

    else
    {
        echo 'On load'; // Als er geen POST is
    }

?>

<form method="POST">
<input type="text" name="place">
<input type="submit" name="submit">
</form>
 

Pagina: 1 2 volgende »



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.