Επισκέπτης Δημοσ. 21 Αυγούστου 2012 Δημοσ. 21 Αυγούστου 2012 Kαλησπέρα σας θα ήθελα να κάνω μια ερώτηση πάνω στην php και τα sessions,έχω γράψει αυτό τον κώδικα : session_start(); if(isset($_SESSION['roleid']==1)){......} προκειμένου να καθορίσω καποια δικαιώματα σε κάποιους χρήστες.Οταν τον τρέχω όλο αυτο το αρχείο στον browser μου βγάζει οτι στη δεύτερη γραμμή από αυτή που σας έχω γράψει έχω ένα error αυτό: Parse error: syntax error, unexpected T_IS_EQUAL, expecting ',' or ')' in C:\xampp\htdocs\kike\admin\writearticle.php on line 79 Δεν καταλαβαίνω τον λόγο του λάθους ,το έψαξα και στο google και η σύνταξη είναι σωστή.Θα μπορόυσε κάποιος να με βοηθήσει;Ευχαριστώ.
παπι Δημοσ. 21 Αυγούστου 2012 Δημοσ. 21 Αυγούστου 2012 if(isset($_SESSION['roleid']==1)) => if( isset($_SESSION['roleid']) ==1)
defacer Δημοσ. 21 Αυγούστου 2012 Δημοσ. 21 Αυγούστου 2012 Ακόμα καλύτερα χωρίς το == 1 τελείως (τι σκοπό εξυπηρετεί?) Μόνο ρε παιδιά να μη βιαζόμαστε με τις ατάκες "το έψαξα και η σύνταξη είναι σωστή". Τόσα εκατομμύρια χρήστες PHP σε όλο τον κόσμο, με ένα απλό isset σου λέει syntax error και το συμπέρασμα που βγαίνει είναι ότι.... τα gremlins πείραξαν τον compiler?
thanocaster Δημοσ. 22 Αυγούστου 2012 Δημοσ. 22 Αυγούστου 2012 To == 1 μπορεί να εχει νόημα εφόσον έχει if/elseif και θέλει να τεστάρει όχι μόνο αν υπάρχει η $_SESSION['roleid'], αλλά και τις τιμές της: > if ( isset($_SESSION['roleid']) && $_SESSION['roleid'] == 1 ): //show admin panel elseif ( isset($_SESSION['roleid']) && $_SESSION['roleid'] == 2 ): //show author's page elseif ( isset($_SESSION['roleid']) && $_SESSION['roleid'] == 3 ): //show home page else: //show register page endif; Βέβαια, καμία από τις δυο υποθέσεις δεν προκύπτει από το αρχικό μήνυμα.
defacer Δημοσ. 22 Αυγούστου 2012 Δημοσ. 22 Αυγούστου 2012 To == 1 μπορεί να εχει νόημα εφόσον έχει if/elseif και θέλει να τεστάρει όχι μόνο αν υπάρχει η $_SESSION['roleid'], αλλά και τις τιμές της: Ε ναι αλλά στο συγκεκριμένο κώδικα κάνει κάτι τελείως διαφορετικό. Άσε που στην τελική αν ήθελες να ελέγξεις τιμές θα ήταν προτιμότερο κάπως σαν > $roleid = isset($_SESSION['roleid']) ? $_SESSION['roleid'] : null; switch ($roleid) { ... }
thanocaster Δημοσ. 22 Αυγούστου 2012 Δημοσ. 22 Αυγούστου 2012 Σύμφωνοι, απλά αυτό κατάλαβα εγώ όταν διάβασα το αρχικό θρεντ. Επίσης, αυτό ήταν απλά μια από τις πολλές περιπτώσεις που θα ήθελε όχι μόνο να τσεκάρει ότι υπάρχει, αλλά και την τιμή της. Τώρα, αν δεν μας το ξεκαθαρίσει ο ΤΣ, εμείς μόνο υποθέσεις μπορούμε να κάνουμε. ΥΓ> Γιατί να δημιουργήσεις την ενδιάμεση μεταβλητή; Γιατί όχι > $_SESSION['roleid'] = isset ( $_SESSION['roleid'] ) ? $_SESSION['roleid'] : null; switch ( $_SESSION['roleid'] ): ...
defacer Δημοσ. 22 Αυγούστου 2012 Δημοσ. 22 Αυγούστου 2012 Σύμφωνοι, απλά αυτό κατάλαβα εγώ όταν διάβασα το αρχικό θρεντ. Επίσης, αυτό ήταν απλά μια από τις πολλές περιπτώσεις που θα ήθελε όχι μόνο να τσεκάρει ότι υπάρχει, αλλά και την τιμή της. Τώρα, αν δεν μας το ξεκαθαρίσει ο ΤΣ, εμείς μόνο υποθέσεις μπορούμε να κάνουμε. ΥΓ> Γιατί να δημιουργήσεις την ενδιάμεση μεταβλητή; Γιατί όχι > $_SESSION['roleid'] = isset ( $_SESSION['roleid'] ) ? $_SESSION['roleid'] : null; switch ( $_SESSION['roleid'] ): ... Ε... κατά βάση οι λόγοι που θα μπορούσαν να χαρακτηριστούν αντικειμενικοί είναι 2: Θέτω locals με όλες τις τιμές που θα χρειαστώ στην αρχή κάποιου μπλοκ κώδικα για να είναι ίσως πιο προφανές όταν ξεκινάς να διαβάζεις το μπλοκ το τι μεταβλητές τραβάει "απ' έξω" Less typing στη συνέχεια σε κάθε χρήση της τιμής Αλλά κατά το μεγαλύτερο μέρος είναι απλά προτίμηση.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα