Πρόβλημα με conditions στην php

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
joy1
Δημοσιεύσεις: 2
Εγγραφή: 23 Νοέμ 2010 13:23

Πρόβλημα με conditions στην php

Δημοσίευση από joy1 » 23 Νοέμ 2010 15:19

Έχω φτιάξει μία φόρμα, η οποία δέχεται από το χρήστη μέχρι 5 εύρη αριθμών:
<tr>
<td width='270' align='right'>Εύρος1__Από: </td>
<td><input type='text' name='fromNum' size='20' /></td>
<td width='270' align='right'>Εως: </td>
<td><input type='text' name='toNum' size='20'/></td>
</tr>
<tr>
<td width='270' align='right'>Εύρος2__Από: </td>
<td><input type='text' name='fromNum2' size='20' /></td>
<td width='270' align='right'>Εως: </td>
<td><input type='text' name='toNum2' size='20'/></td>
</tr>
<tr> κ.λ.π το ίδιο και για τα εύρη 3,4,5
στη συνέχεια βάζω περιορισμό για τα ranges
$regExpNum = '/^[0-9]{6}$/';
$regExpNum2 = '/^[0-9]{6}$/';
$regExpNum3 = '/^[0-9]{6}$/';
$regExpNum4 = '/^[0-9]{6}$/';
$regExpNum5 = '/^[0-9]{6}$/';

$validfromNum = preg_match($regExpNum,$_POST['fromNum'],$matchesfrom);
$validtoNum = preg_match($regExpNum,$_POST['toNum'],$matchesto);
$validfromNum2 = preg_match($regExpNum2,$_POST['fromNum2'],$matchesfrom2);
$validtoNum2 = preg_match($regExpNum2,$_POST['toNum2'],$matchesto2);
$validfromNum3 = preg_match($regExpNum3,$_POST['fromNum3'],$matchesfrom3);
$validtoNum3 = preg_match($regExpNum3,$_POST['toNum3'],$matchesto3);
$validfromNum4 = preg_match($regExpNum4,$_POST['fromNum4'],$matchesfrom4);
$validtoNum4 = preg_match($regExpNum4,$_POST['toNum4'],$matchesto4);
$validfromNum5 = preg_match($regExpNum5,$_POST['fromNum5'],$matchesfrom5);
$validtoNum5 = preg_match($regExpNum5,$_POST['toNum5'],$matchesto5);

θέλω να γράψω κάποιους περιορισμούς για τα εύρη που πληκτρολογεί ο χρήστης όπως
αν όλα τα πεδία είναι κενά να εμφανίζεται μήνυμα
άν το tonum είναι μεγαλύτερο από το fromnum να εμφανίζεται μήνυμα λάθους (ισχύει και για τα εύρη 2,3,4,5)
αν το fromnum-tonum>100 να εμφανίζεται μήνυμα.
αν κάποιο εύρος είναι κενό, να λαμβάνονται υπόψη τα υπόλοιπα.
με ένα εύρος το έχω γράψει, πώς όμως θα βάλω και τα υπόλοιπα?
$regExpNum = '/^[0-9]{6}$/';
$validfromNum = reg_match($regExpNum,$_POST['fromNum'],$matchesfrom);
$validtoNum = preg_match($regExpNum,$_POST['toNum'],$matchesto);

$errorMsg='';

if (!$validfromNum || !$validtoNum) {
if (!$_POST['fromNum'] && !$_POST['toNum']) {
$errorMsg="μήνυμα";
$htmlData['errorMsg']= $errorMsg;
$this->loadPage($htmlData);
return false;
} else if ($validtoNum && !$_POST['fromNum']) {
set_time_limit(240);
$data = $this->R100WorkOrder->GetWoRangeData($_POST['toNum'], $_POST['toNum']);
} else if ($validfromNum && !$_POST['toNum']) {
set_time_limit(240);
$data = $this->R100WorkOrder->GetWoRangeData($_POST['fromNum'], $_POST['fromNum']);

} else {
$errorMsg="μήνυμα";
$htmlData['errorMsg']= $errorMsg;
$this->loadPage($htmlData);
return false;
}
} else {
####################################################### Form Validation ################################################# End
if ($_POST['fromNum'] > $_POST['toNum']) {
$errorMsg="μήνυμα ";
$htmlData['errorMsg']= $errorMsg;
$this->loadPage($htmlData);
return false;
} else if ($_POST['toNum'] - $_POST['fromNum'] > 100 ) {
$errorMsg="μήνυμα";
$htmlData['errorMsg']= $errorMsg;
$this->loadPage($htmlData);
return false;
} else {
set_time_limit(240);
$data = $this->R100WorkOrder->GetWoRangeData($_POST['fromNum'], $_POST['toNum']);
}
}

subdee
Δημοσιεύσεις: 2
Εγγραφή: 15 Νοέμ 2010 21:33
Επικοινωνία:

Πρόβλημα με conditions στην php

Δημοσίευση από subdee » 24 Νοέμ 2010 19:08

Δεν είμαι σίγουρος πως κατάλαβα καλά, αλλά τι κόλλημα είναι αυτό με τα regex; Δεν μπορείς να χρησιμοποιήσεις απλά if ελέγχους;

Όπως πχ. για το αν το from είναι μεγαλύτερο απο το to ένα απλό:

if (from > to) {
//
}
else{
//
}

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης