PHP δεν Μεταβλητές υφιστάμενων και των εντύπων

Με Steven Lloyd Watkin , 31 Ιουλίου 2008 10.36 π.μ. της Πέμπτης

Ήρθα σε κάτι που δεν γνώριζε σήμερα ότι είναι πολύ εύχρηστο .... το '@' σφάλμα ελέγχου από χειριστή Β σε PHP .

Έτσι, για κάποιο υπόβαθρο για το πώς ήρθα σε αυτό το πρόβλημα, σε εφαρμογές web μου έχω την τάση να χρησιμοποιούν την ίδια φόρμα για να εισαγάγετε δεδομένα σε ένα mySQL βάση δεδομένων. Αν έχω ένα κάποιο είδος «ταυτότητας», αριθμός που μέσω μιας GET μεταβλητή τότε που ενεργοποιεί ένα φορτίο από τη βάση δεδομένων, αλλιώς είμαι προσθέτοντας νέα δεδομένα.

Κατά τα στοιχεία φόρμας μου που πολλές φορές η τιμή του πεδίου φόρμας σε κάτι σαν <? = $ Δεδομένα fieldValue'];?> «[αυτό λειτουργεί καλά κατά τη φόρτωση των δεδομένων, αλλά όταν είμαι εισάγοντας νέα δεδομένα μπορώ να πάρω το έντυπο συμπληρώνεται ως εξής (σημείωση σχετικά με τη σύνδεσή μου ή όταν είμαι δοκιμές που έχω λάθος υποβολής εκθέσεων που να E_ALL έτσι μπορώ να βεβαιωθείτε ότι όλα λειτουργούν σωστά):

Notice: Undefined μεταβλητών: δεδομένα σε / home / public_html / dataEdit.php on line 69

Συνεπώς, εκείνο που τελικά καταλήξαμε να κάνουμε έγραφε πλέον (πιο άσχημο) κώδικα που είπε, <? αν (isset ($ δεδομένων ['fieldValue'])) {echo $] δεδομένων ['fieldValue'?};> μεγάλη. Οχι ακριβώς

Στη συνέχεια, σκόνταψα πέρα ​​από τον τελεστή ελέγχου λαθών στην PHP, θέτοντας απλώς ένα σύμβολο "@" πριν από έναν φορέα (ουσιαστικά τίποτα που μπορεί να επιστρέψει ένα αποτέλεσμα), το παραπάνω πρόβλημα έχει λυθεί. Για παράδειγμα, μπορώ να κάνω τώρα]?>? Μου [για την τιμή της παραμέτρου δεδομένων <? = @ $ FieldValue ». Αν η μεταβλητή δεν είναι ρυθμισμένη (δηλαδή, ένα λάθος θα δημιουργηθεί), τότε το λάθος καταστέλλεται.

Σημείωση: Χρησιμοποιώντας το σύμβολο «@», μπορεί να καταστείλει σημαντικά λάθη και να κρύψει το γεγονός ότι μέρος του site σας δεν λειτουργεί σωστά, οπότε να είστε προσεκτικοί!

Αφήστε μια απάντηση













Πανόραμα Θέμα από Themocracy

4 επισκέπτες online τώρα
3 άτομα, 1 bots, 0 μέλη
Max επισκέπτες σήμερα: 17 στις 12:28 π.μ. UTC
Αυτό το μήνα: 26 στις 05/07/2011 12:35 π.μ. UTC
Αυτό το έτος: 130 στις 28-03-2011 22:40 UTC
Όλες οι εμφανίσεις: 130 στις 28-03-2011 22:40 UTC