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

php error με σύνταξη $_SESSION['']


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

Δημοσ.

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 και η σύνταξη είναι σωστή.Θα μπορόυσε κάποιος να με βοηθήσει;Ευχαριστώ.

Δημοσ.

Ακόμα καλύτερα χωρίς το == 1 τελείως (τι σκοπό εξυπηρετεί?)

 

Μόνο ρε παιδιά να μη βιαζόμαστε με τις ατάκες "το έψαξα και η σύνταξη είναι σωστή". Τόσα εκατομμύρια χρήστες PHP σε όλο τον κόσμο, με ένα απλό isset σου λέει syntax error και το συμπέρασμα που βγαίνει είναι ότι.... τα gremlins πείραξαν τον compiler?

Δημοσ.

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;

 

Βέβαια, καμία από τις δυο υποθέσεις δεν προκύπτει από το αρχικό μήνυμα.

Δημοσ.

To == 1 μπορεί να εχει νόημα εφόσον έχει if/elseif και θέλει να τεστάρει όχι μόνο αν υπάρχει η $_SESSION['roleid'], αλλά και τις τιμές της:

 

Ε ναι αλλά στο συγκεκριμένο κώδικα κάνει κάτι τελείως διαφορετικό. Άσε που στην τελική αν ήθελες να ελέγξεις τιμές θα ήταν προτιμότερο κάπως σαν

 

>
$roleid = isset($_SESSION['roleid']) ? $_SESSION['roleid'] : null;
switch ($roleid) { ... }

Δημοσ.

Σύμφωνοι, απλά αυτό κατάλαβα εγώ όταν διάβασα το αρχικό θρεντ. Επίσης, αυτό ήταν απλά μια από τις πολλές περιπτώσεις που θα ήθελε όχι μόνο να τσεκάρει ότι υπάρχει, αλλά και την τιμή της. Τώρα, αν δεν μας το ξεκαθαρίσει ο ΤΣ, εμείς μόνο υποθέσεις μπορούμε να κάνουμε.

 

ΥΓ> Γιατί να δημιουργήσεις την ενδιάμεση μεταβλητή; Γιατί όχι

>
$_SESSION['roleid'] = isset ( $_SESSION['roleid'] ) ? $_SESSION['roleid'] : null;
switch ( $_SESSION['roleid'] ):
...

Δημοσ.

Σύμφωνοι, απλά αυτό κατάλαβα εγώ όταν διάβασα το αρχικό θρεντ. Επίσης, αυτό ήταν απλά μια από τις πολλές περιπτώσεις που θα ήθελε όχι μόνο να τσεκάρει ότι υπάρχει, αλλά και την τιμή της. Τώρα, αν δεν μας το ξεκαθαρίσει ο ΤΣ, εμείς μόνο υποθέσεις μπορούμε να κάνουμε.

 

ΥΓ> Γιατί να δημιουργήσεις την ενδιάμεση μεταβλητή; Γιατί όχι

>
$_SESSION['roleid'] = isset ( $_SESSION['roleid'] ) ? $_SESSION['roleid'] : null;
switch ( $_SESSION['roleid'] ):
...

 

Ε... κατά βάση οι λόγοι που θα μπορούσαν να χαρακτηριστούν αντικειμενικοί είναι 2:

  1. Θέτω locals με όλες τις τιμές που θα χρειαστώ στην αρχή κάποιου μπλοκ κώδικα για να είναι ίσως πιο προφανές όταν ξεκινάς να διαβάζεις το μπλοκ το τι μεταβλητές τραβάει "απ' έξω"
  2. Less typing στη συνέχεια σε κάθε χρήση της τιμής

Αλλά κατά το μεγαλύτερο μέρος είναι απλά προτίμηση.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...