Βοήθεια με κουμπιά επιλογής γλώσσας σε PHP

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

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

Απάντηση
psychokiller
Δημοσιεύσεις: 3
Εγγραφή: 23 Ιούλ 2012 20:07

Βοήθεια με κουμπιά επιλογής γλώσσας σε PHP

Δημοσίευση από psychokiller » 23 Ιούλ 2012 20:18

Καλησπέρα,
Είμαι καινούργιος στο forum οπότε αν κάνω κάποιο λάθος ζητάω εκ τον προτέρων μια μεγάλη συγγνώμη.
Το πρόβλημα μου έχει να κάνει με το γεγονός οτι θέλω να βάλω στο site μου δυο σημαίες, μια Ελληνική (gr.gif) και μια αγγλικη (en.gif), με τέτοιο τρόπο ώστε όποιος πατάει μια απο τις δύο να πηγαίνει σε αυτή, δηλαδή να προστήθετε στο URL το ?language=gr ή το ?language=en.
Το πρόβλημα μου είναι πως θα πω στη php να διαβάζει το URL να προσθέτει σε αυτό ένα απο τα δυο ?language= και να πηγαίνει σε αυτο μέσα στο ίδιο παράθυρο (_self).
Ειμαι αρκετά νέος στη php.
Ευχαριστώ εκ τον προτέρων

Άβαταρ μέλους
xmavidis
Honorary Member
Δημοσιεύσεις: 1217
Εγγραφή: 02 Δεκ 2003 19:59
Τοποθεσία: Ηράκλειο

Βοήθεια με κουμπιά επιλογής γλώσσας σε PHP

Δημοσίευση από xmavidis » 23 Ιούλ 2012 23:04

Βάλε links στις σημαίες προς την σελίδα που θέλεις μαζί με τα ?language=en ή gr.
Μέσα στο php αρχείο χρησιμοποίησε την $_GET για να πάρεις το περιεχόμενο του language:

Κώδικας: Επιλογή όλων

<?php
$langs = array&#40;'gr','en'&#41;;

$defaultLang = 'gr'; 

/* Είναι καλύτερο να φιλτράρεις την $_GET  ώστε να μην έχεις θέμα με SQL injection και 
τέτοια θέματα */
$language = $_GET&#91;'language'&#93;;
if&#40;!in_array&#40;$language, $langs&#41; &#123;
/* Αν δεν δωθεί σωστό language στο Url φόρτωσε τη default γλώσσα ή δώσε error. */

// ....
&#125; else if&#40;$lang == "en"&#41; &#123;
    // language = en
&#125; else &#123;
   // language = 'gr'
 // ...
&#125;
?>
I want to know God’s thoughts; the rest are details.
Albert Einstein

psychokiller
Δημοσιεύσεις: 3
Εγγραφή: 23 Ιούλ 2012 20:07

Βοήθεια με κουμπιά επιλογής γλώσσας σε PHP

Δημοσίευση από psychokiller » 24 Ιούλ 2012 15:29

xmavidis ευχαριστώ για το ενδιαφέρον και το χρόνο σου.
Μου είναι πολύ δύσκολο να βάλω για κάθε σελίδα το link προορισμού στα σημαιάκια.
Αυτό που θέλω είναι όταν πατάω το π.χ. Ελληνικό σημαιάκι να τρέχει μια διεργασία που θα διαβάζει το URL της σελίδας, θα το βάζει σε μια μεταβλητή, θα προσθέτει στο strink αυτο το ?language=gr και θα τρέχει αυτό το link στο ίδιο παράθυρο.
Και αντίστοιχα στο αγγλικό σημαιάκι να τρέχει μια διεργασία που θα διαβάζει το URL της σελίδας, θα το βάζει σε μια μεταβλητή, θα προσθέτει στο strink αυτο το ?language=en και θα τρέχει αυτό το link στο ίδιο παράθυρο.

Άβαταρ μέλους
xmavidis
Honorary Member
Δημοσιεύσεις: 1217
Εγγραφή: 02 Δεκ 2003 19:59
Τοποθεσία: Ηράκλειο

Βοήθεια με κουμπιά επιλογής γλώσσας σε PHP

Δημοσίευση από xmavidis » 24 Ιούλ 2012 16:00

Δοκίμασε το παρακάτω για να πάρεις το πλήρες Url της εκάστοτε σελίδας που βρίσκεται ο χρήστης:

Κώδικας: Επιλογή όλων

$url ="http&#58;//".$_SERVER&#91;'HTTP_HOST'&#93;.$_SERVER&#91;'REQUEST_URI'&#93;;
Βάλε αυτό στα links σου και πρόσθεσε σε κάθε περίπτωση το ?language που θέλεις.

Τι μορφή έχουν τα URL της σελίδας σου;
Έχεις και άλλα parameters μετά από ? στο url; Αν ναι τότε πρέπει να προσέξεις αν βάλεις το language μετά από ? ή μετά από &.

Για παράδειγμα, αν το url της σελίδας σου είναι της μορφής:

Κώδικας: Επιλογή όλων

http&#58;//www.mypage.gr/something.php
Τότε μπορείς απλά να βάλεις ως href στα links των εικόνων:

Κώδικας: Επιλογή όλων

href="<?php $url; ?>?language=gr"
Αν έχεις και url της μορφής:

Κώδικας: Επιλογή όλων

http&#58;//www.mypage.gr/something.php?id=5
Θα πρέπει να τσεκάρεις αν στο url υπάρχει ήδη ο χαρακτήρας ? και να πράξεις αναλόγως.
I want to know God’s thoughts; the rest are details.
Albert Einstein

psychokiller
Δημοσιεύσεις: 3
Εγγραφή: 23 Ιούλ 2012 20:07

Βοήθεια με κουμπιά επιλογής γλώσσας σε PHP

Δημοσίευση από psychokiller » 24 Ιούλ 2012 18:49

Αυτό ήθελα. Ευχαριστώ πάρα πολυ.

Απάντηση

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

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

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