Προς το περιεχόμενο

Index.php με default query


Xenobius

Προτεινόμενες αναρτήσεις

Δημοσ.

Έχω σχεδιάσει μια php σελίδα που τραβάει δεδομένα απο mysql db μέσω των γνωστών queries. Τα links μέσα στη σελίδα είναι της μορφής index.php?town=1 κλπ (ειναι site με κατάλογο μαγαζιών ανά πόλη) τα οποία τα τραβάω με GET. Η κεντρική μου σελίδα θέλω να είναι η index.php?town=0.

Αν μπει κάποιος κατευθείαν στο domain μου (όπου τραβά το απλό index.php) βγάζει κάποια errors γιατί στην ουσία δεν βρίσκει κανένα σωστό query (δικιά μου βλακεία, κάτι τρέχει με τις συνθήκες IF, θα το δω αλλη ωρα αυτο).

 

Η ερώτηση μου είναι η εξής:

 

Πώς μπορώ να μπαίνει ο επισκέπτης στο domain μου απλά (ή στo index.php) και να τον στέλνει κατευθείαν στο index.php?town=0 ;

 

Θα μπορούσα να βάλω είτε κάποιον αυτόματο forwarder ή κλασσικά μια "enter site" εισαγωγή για να τον στείλει εκεί αλλά δεν το θέλω γιατί στην πρώτη περίπτωση το google βγάζει σπυριά με τους forwaders και στη δεύτερη θα γίνεται index απο το google η "enter site" σελίδα. Στην ουσία θέλω να φορτώνεται αυτόματα το query town=0 στο index.php με το που φορτώνεις τη σελίδα.

 

Καμια ιδέα;

Δημοσ.
>
$town = 0;
if (isset($_GET['town']))
{
 $town = $_GET['town'];
}

 

Επειδή είχα περισσότερες συνθήκες, το έβαλα αλλιώς αλλά χρησιμοποίησα την ιδέα που μου έγραψες... Στην ουσία παίζανε όλα τα if και αν δεν υπήρχε πλέον query να τραβήξει όρισα εγώ την town μεταβλητή να γίνει μηδέν.

 

Παίζει τώρα, σ' ευχαριστώ πολύ!

 

:mrgreen::mrgreen::mrgreen::mrgreen::mrgreen:

 

---------- Προσθήκη στις 00:39 ---------- Προηγούμενο μήνυμα στις 00:27 ----------

 

Και το έκανα κάπως έτσι:

 

$area2 = $_GET['town'];

 

if($area2<>0) {$query1="SELECT * FROM `magazia_tb` WHERE townids=$area2";}

else {if(!$area2) {$query1="SELECT * FROM `magazia_tb` WHERE townids=0";}

}

 

όπου magazia_tb το table και townids η στήλη με αριθμούς ανα πόλη.

Δημοσ.

Για λίγο πιο μαζεμένο

>
$query1="SELECT * FROM `magazia_tb` WHERE townids=".($_GET['town']?$_GET['town']:'0');

 

ή

 

Αν θες να χρησιμοποιήσεις τη μεταβλητή και αλλού

>
$area2 = $_GET['town']?$_GET['town']:'0';
$query1="SELECT * FROM `magazia_tb` WHERE townids=$area2";

Δημοσ.

Ο zinas έχει δίκιο σε αυτό που λέει πιο μαζεμένο..

 

Θα πρέπει ο κώδικας σου να είναι όσο πιο πολύ απλός, λιτός και εύκολα κατανοητός γίνεται

Δημοσ.

Ποτέ δεν θα βάζετε αφιλτράριστες $_GET μέσα σε queries.. Κάλλιστα κάποιοος μπορεί να τρέχει το query σου με

$query1="SELECT * FROM `magazia_tb` WHERE townids=$area2"

και

index.php?town=0 OR 1

 

και να σου κάνει ένα ωραίο SQL injection...

 

Όταν λαμβάνετε δεδομένα από το URL θα χρησιμοποιείτε κυρίως την mysql_real_escape_string()

 

πχ ...

 

$town = mysql_real_escape_string($_GET['town']);

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...