⊗ppPmRdSWP 407 of 447 menu

Αυτό-ανακατεύθυνση με προσθήκη παραμέτρων σε PHP

Ας υποθέσουμε ότι στη σελίδα index.php μεταδίδεται μία παράμετρος GET με όνομα arg. Ας εμφανίσουμε τα περιεχόμενά της στην οθόνη:

<?php echo $_GET['arg']; ?>

Ας υποθέσουμε ότι η σελίδα μας χωρίς την παράμετρο GET δεν μπορεί να λειτουργήσει σωστά. Στην περίπτωσή μας αυτό ισχύει πράγματι, αφού, εάν η παράμετρος δεν μεταδοθεί, τότε η πρόσβαση στο $_GET['arg'] θα οδηγήσει σε σφάλμα.

Μπορεί να προκύψει το ερώτημα, γιατί γενικά κάποιος θα βρεθεί στη σελίδα μας χωρίς την παράμετρο; Εξάλλου μπορούμε παντού στον ιστότοπό μας να βάλουμε συνδέσμους με αυτήν την παράμετρο. Ωστόσο, αυτό δεν είναι εγγύηση: ο χρήστης του ιστότοπού μας μπορεί, για παράδειγμα, να αντιγράψει τον σύνδεσμο από κάπου και να χάσει κατά τη διαδικασία την παράμετρο. Ή απλά να την διαγράψει κατά λάθος, ενώ επεξεργάζεται τη γραμμή διευθύνσεων.

Γενικά, σε κάθε περίπτωση ο κώδικάς μας θα πρέπει να προβλέπει μια τέτοια κατάσταση και να κάνει κάτι γι' αυτήν. Τι μπορούμε λοιπόν να κάνουμε;

Μπορούμε να ελέγξουμε αν η παράμετρος GET μας υπάρχει και να την εμφανίσουμε, μόνο εάν υπάρχει:

<?php if (isset($_GET['arg'])) { echo $_GET['arg']; } else { // αντιδρούμε με κάποιο τρόπο, για παράδειγμα, με ένα μήνυμα } ?>

Μπορούμε να προχωρήσουμε πιο έξυπνα:

<?php if (!isset($_GET['arg'])) { $_GET['arg'] = 'default'; // προεπιλεγμένη τιμή } echo $_GET['arg']; // εγγυημένα θα εμφανίσει κάτι χωρίς σφάλμα ?>

Ή μπορούμε να κάνουμε έτσι ώστε κατά την είσοδο στη σελίδα χωρίς την παράμετρο να γίνεται ανακατεύθυνση στην ίδια σελίδα με την παράμετρο:

<?php if (!isset($_GET['arg'])) { header('Location: ?arg=default'); } echo $_GET['arg']; // η παράμετρος υπάρχει εγγυημένα ?>

Εξηγήστε, σε τι διαφέρει η δεύτερη επιλογή από την τρίτη.

Ας υποθέσουμε ότι στη σελίδα page.php μπορεί να μεταδοθεί ένας αριθμός μέσω της παραμέτρου GET με όνομα num. Κάντε έτσι ώστε κατά την είσοδο χωρίς αυτήν την παράμετρο, να εκτελείται αυτόματα μια ανακατεύθυνση στην ίδια σελίδα, αλλά με την παράμετρο num να έχει την τιμή 1.

Ελληνικά
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη