[php] if statement

Pagina: 1
Acties:

  • Haranaka
  • Registratie: September 2000
  • Laatst online: 07-06 23:13
Ik heb een formpje in elkaar geknutseld waarin men een datum moet invullen. In de form staat daarom:

form:
code:
1
2
3
4
5
6
7
8
9
10
Dag: <input type="Text" name="dag" size="2" maxlength="2">
Maand <select size="1" name="maand"> 
<option value="00">--Selecteer--</option>
<option value="01">Januari</option>
...
</select>
Jaar <select size="1" name="jaar">
<option selected>2002</option>
<option>2003</option>
</select>

En als hem dit submit ga ik dit in mijn mysql database gooien. Dit gaat allemaal wel goed, maar het gaat wel mis als men foute data invoert.

Dus wil ik dat graag afvangen, maar dat lukt me niet :(
Ik zat met zoiets te prutsen maar zonder resultaat.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
If ($submit) {

if ($dag < 32) {
echo "geen goede dag ingevult.";
} else {

if ($maand = 0) {
echo "geen maand ingevult.";
} else {

insert zooi in database.

}
}
} else {

<form>

}

...


  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

if ($dag < 32) {
echo "geen goede dag ingevult.";
} else {
heeft een maand altijd meer dan 31 dagen ?

  • MadMurdock
  • Registratie: Oktober 2000
  • Niet online
Op woensdag 06 februari 2002 16:40 schreef Haranaka het volgende:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?
if ($submit) {
   if ($dag > 31) 
        echo "Geen goede dag ingevuld."; 
   if ($maand == "") 
        echo "Geen maand ingevult.";
   if ($dag < 32 AND $maand!="") {
        insert ...     
   }
   else {
       forum
   }
}
?>

Verwijderd

Op woensdag 06 februari 2002 16:58 schreef MadMurdock het volgende:

[..]
Output is bijna altijd: Geen maand ingevult.

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 09-09 14:51

thomaske

» » » » » »

if-regel van maand veranderen in:

if ($maand == "")

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


  • Arnim
  • Registratie: Juni 2001
  • Laatst online: 04-09 15:49
http://www.php.net/checkdate

Dat zou het moeten doen, denk ik.

Team ColdFusion


Verwijderd

Op woensdag 06 februari 2002 17:03 schreef Arnim het volgende:
http://www.php.net/checkdate

Dat zou het moeten doen, denk ik.
:D Gmm, sorry. Nee, ik denk niet dat het probleem daar ligt ;)

  • Kjev
  • Registratie: Juni 2001
  • Laatst online: 02-01-2024
Afgezien van het feit dat je ingevuld met een 'd' spelt :+...

Je kunt trouwens ook een javascriptje gebruiken hiervoor, zodat het gewoon client-side gebeurt en er niets hoeft te herladen.
Op woensdag 06 februari 2002 17:01 schreef thomaske het volgende:
if-regel van maand veranderen in:
if ($maand == "")
Dat lijkt me niet echt logisch als de eerste regel van zijn Selectbox "[Selecteer]" met value=0 heeft :). Je kunt dit wel leeglaten, en dan eventueel ook isset gebruiken.

Topicstarter: gewoon een beetje in PHP rondsnuffelen. Leren dat je een if-statement met slechts één } afsluit :Y) enzo. Een goed spannend boek erover lezen. Niet zomaar op GoT posten.

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 09-09 14:51

thomaske

» » » » » »

Op woensdag 06 februari 2002 17:05 schreef Zef het volgende:

[..]

:D Gmm, sorry. Nee, ik denk niet dat het probleem daar ligt ;)
nee, daar ligt het probleem niet in jouw stukje code, maar deze functie is gemaakt om een datum te checken en is ook wat uitgebreider dan de functie die jij daarvoor aan het maken bent.

Misschien het proberen waard om deze functie eens te gebruiken! ;)

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


  • Arnim
  • Registratie: Juni 2001
  • Laatst online: 04-09 15:49
Eerst checken of dat $maand, $dag en $jaar integers zijn, deze in checkdate stoppen en je hebt een valid date. Daarna kan je hem in je database stoppen.
Dit kan je overigens ook in Javascript bouwen, maar dan raad ik je aan deze constructie nog steeds te gebruiken, in verband met stoute usertjes die foute data willen doorsturen.
Dit soort functies moet je niet na proberen te bouwen, want kalenders zijn stiekum erg complex.

Team ColdFusion


  • RedRose
  • Registratie: Juni 2001
  • Niet online

RedRose

Icebear

1. ingevuld is met een d van dirk
2. Als je nou van de dagen ipv <INPUT TYPE="text"> ook options maakt, dan ben je er al, want dan hoef je niet te checken omdat alleen de voorgekookte waarden kunnen worden ingevoerd.

3. pak je de globals? (global $dag, etc ;)
4. Al die ifjes ... tsss (wat je ook kan doen:
PHP:
1
2
3
4
5
<?
 if ($dag != 'blablabla' || $maand != 'blablablaba' || etc) {
doe niks
}
?>

Nice and easy does the trick

Sundown Circus


Verwijderd

$dag = intval($dag);
if($dag < 0 || $dag > 32 || $dag = ""){
echo "De dag die je op gaf was:..............FOUT!":
} etc { etc} { etc }

Verwijderd

Op woensdag 06 februari 2002 17:07 schreef thomaske het volgende:
[..]
nee, daar ligt het probleem niet in jouw stukje code, maar deze functie is gemaakt om een datum te checken en is ook wat uitgebreider dan de functie die jij daarvoor aan het maken bent.
:? Ik? Ik ben überhaupt niet eens met PHP bezig :+
Pagina: 1