[php] op lege Post Controleren

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Anoniem: 73795

Topicstarter
Heyz
Ben bezig met een add scriptje voor mysql, ik wil krij vanuit een andere pagina een aantal posts binnen (7 in totaal). Nu wil ik ze allemaal controleren op leegheid, wanneer mogelijk in 1 regel. Ik heb meerdere dingen geprobeerd maar kan ook niet veel hulp hierbij vinden daarom deze post.
Het lukt mij ook als ik elke "post"apart controleer maar dat wil ik ditmaal niet.
Hieronder het script en wat ik nu heb. Iemand ene idee om alle variabelen in 1 regel te controleren??


PHP:
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
26
27
28
29
30
31
<?
if (!empty($_POST))
{
    if (!empty($_POST['taak'] AND $_POST['product'] AND $_POST['deadline'] AND $_POST['persoon'] AND $_POST['schatting_v'] AND $_POST['werkelijk'] AND $_POST['schatting_n']))
    {

    $host = "localhost";   
    $gebruikersnaam = "***"; 
    $ww = "*****";  
    $db = "webphp";

    mysql_connect($host, $gebruikersnaam, $ww); 
    mysql_select_db($db);

        $sql = "INSERT INTO `planning` (`taak`, `product`, `deadline`, `persoon`, `schatting_v`, `werkelijk`, `schatting_n`) VALUES ('$_POST['taak']', '$_POST['product']', '$_POST['deadline']', '$_POST['persoon']', '$_POST['schatting_v']', '$_POST['werkelijk']', '$_POST['schatting_n']')";
        mysql_query($sql);

    echo $sql
    echo "de rij is toegevoegd"     


    }
        else
    {
        echo "Niet alle velden zijn ingevuld";  
    }
}   
    else
{
    echo "Niet alle velden zijn ingevuld";  
}

Acties:
  • 0 Henk 'm!

  • X-Lars
  • Registratie: Januari 2004
  • Niet online

X-Lars

Just GoT it.

Iets als
PHP:
1
2
3
$result = true;
foreach($_POST as $value) if($value == '') $result = false;
if(!$result) echo 'Niet alle velden zijn ingevuld';
misschien?

Acties:
  • 0 Henk 'm!

Anoniem: 48738

dit lijkt me wel te werken:

PHP:
1
2
3
4
if($_POST){
    if(in_array("",$_POST))
        echo "een lege..";
}


kheb t ff getest...werkt prima! 8)

[ Voor 24% gewijzigd door Anoniem: 48738 op 21-05-2005 00:31 ]


Acties:
  • 0 Henk 'm!

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 18-06 14:48

thomaske

» » » » » »

Dat kan niet in 1 functie, maar dit kan wel:

PHP:
1
2
3
if (!empty($_POST['taak'])) && !empty($_POST['product']) && !empty($_POST['deadline']) && !empty($_POST['persoon']) && !empty($_POST['schatting_v']) && !empty($_POST['werkelijk']) && !empty($_POST['schatting_n'])) {
  ..
}

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


Acties:
  • 0 Henk 'm!

  • Blorgg
  • Registratie: Juni 2001
  • Niet online
Wat je ook doet. Als je het een klein beetje netjes(en niet perse op 1 regel) wilt doen kom je toch op een manier uit die de waarden uit de $_POST array controleerd zoals X-Lars en coredump al aangaven. Voor elke waarde een 'check' inbouwen is namelijk erg niet netjes en bovendien foutgevoelig.

Wat je anders ook zou kunnen doen(dit doe ik zelf altijd eigenlijk) is controleren of een geposte waarde een bepaald aantal tekens bevat. Een voor/achter naam van 2 tekens is bv niet erg geloofwaardig en hoeft derhalve ook niet verder afgehandelt te worden. Of wat dacht je van overal een spatie invullen. Checken of een waarde niet "" of empty is zal die enkele bogus spatie dus gewoon doorlaten.

[ Voor 17% gewijzigd door Blorgg op 21-05-2005 00:43 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 13:51

NMe

Quia Ego Sic Dico.

X-Lars schreef op zaterdag 21 mei 2005 @ 00:28:
Iets als
PHP:
1
2
3
$result = true;
foreach($_POST as $value) if($value == '') $result = false;
if(!$result) echo 'Niet alle velden zijn ingevuld';
misschien?
Persoonlijk gebruik ik liever de empty-functie om te kijken of een string leeg is (duidelijkere code ;)), maar ok. Verder werkt dit stukje code prima wanneer alle velden die gepost worden verplicht zijn, maar als er een veld niet verplicht is, dan moet je wat anders verzinnen. In dat geval zou ik een array opnemen met alle verplichte velden (of juist alle niet-verplichte velden), en dan kijken of alle velden die in dat array staan al dan niet leeg zijn. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • X-Lars
  • Registratie: Januari 2004
  • Niet online

X-Lars

Just GoT it.

TS wilde ze "allemaal" controleren op "leegheid", vandaar. Ik snap dat mijn code nogal lomp is, het was laat. O+ TS zal nu wel doorhebben wat de bedoeling is in ieder geval :)
Pagina: 1