Πρόβλημα με sessions κατά τη σύνδεση διαχειριστή

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

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

Απάντηση
prokopios
Δημοσιεύσεις: 155
Εγγραφή: 17 Φεβ 2006 15:47

Πρόβλημα με sessions κατά τη σύνδεση διαχειριστή

Δημοσίευση από prokopios » 08 Οκτ 2009 13:29

Γεια σας,
χρησιμοποιώ μια φόρμα επικοινωνίας για να μπορώ να μπω σαν διαχειριστής σε ενα site.
Αν ο χρήστης μπει σωστά πηγαίνει σε μια σελιδα για να κάνει τις τροποποιήσεις που επιθυμεί (modifications.php).
Όλα μια χαρά έως εδώ.

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

Στην αρχική σελίδα ο κώδικας που χρησιμοποιώ είναι :

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

<?php
//arxeio syndeshs me db
      include_once&#40;"config.php"&#41;;
      
	  // elegxei an o xrhsths einai syndedemenos
         //
        checkLoggedIn&#40;"no"&#41;;
?>
<HTML>....</HTML>

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

function checkLoggedIn&#40;$status&#41;&#123;
	switch&#40;$status&#41;&#123;
		case "yes"&#58;
			if&#40;!isset&#40;$_SESSION&#91;"loggedIn"&#93;&#41;&#41;&#123;
				header&#40;"Location&#58;login.php"&#41;;
				exit;
			&#125;
			break;

		case "no"&#58;
			if&#40;isset&#40;$_SESSION&#91;"loggedIn"&#93;&#41; && $_SESSION&#91;"loggedIn"&#93; === true &#41;&#123;
				header&#40;"Location&#58; admin_modifications.php"&#41;;
			&#125;
			break;
	&#125;
	
	return true;
&#125; 
1. Το πρόβλημα λύνεται αν στη σελίδα modifications αντί για σύνδεσμο insex.php φτιάξω νέα σελίδα
index2.php με checkLoggedIn("yes");
αλλά δε γίνεται να φτιάξω αντίγραφα για κάθε μια από τις σελίδες μου.

2. Δοκίμασα στις σελίδες

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

 if&#40;checkLoggedIn&#40;"yes"&#41;&#41;
	 	print&#40;"<li class='logout'><a href=\"logout.php"."\">Αποσύνδεση</a></li>"&#41;;
	  else 
	    print&#40;"<li class='admin'><a href='login.php'><img src='images/admin.png' width='33' height='25' /></a></li>"&#41;;
Αλλά δεν εμφάνιζε καν την σελίδα με έστελνε να κάνω login.


Όποιος μπορεί ας μου στείλει μια απάντηση.
Ευχαριστώ![/i]
ΑΥΤΑ!!!

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6234
Εγγραφή: 30 Νοέμ 2004 03:09

Πρόβλημα με sessions κατά τη σύνδεση διαχειριστή

Δημοσίευση από fafos » 08 Οκτ 2009 23:08

to session_start(); yparxei se oles tis selides pou anafereis?
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
Banavas
Script Master
Δημοσιεύσεις: 1367
Εγγραφή: 21 Νοέμ 2004 20:25
Επικοινωνία:

Πρόβλημα με sessions κατά τη σύνδεση διαχειριστή

Δημοσίευση από Banavas » 09 Οκτ 2009 08:56

Αντί για τον κώδικα που δίνεις στο τέλος βάλε στην σελίδα echo $_SESSION["loggedIn"]; για να τσεκάρεις αν πράγματι είσαι συνδεδεμένος.

Η checkLoggedIn($status) αντίθετα από το όνομά της δεν κάνει έλεγχο αν είσαι συνδεδεμένος. Αν δώσεις στην status = yes σε πετάει στο login ως για σύνδεση.

Λογικά το τελευταίο κομμάτι κώδικα που δίνεις θα έπρεπε να γραφτεί κάπως έτσι:

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

 if&#40;isset&#40;$_SESSION&#91;"loggedIn"&#93;&#41; &&  $_SESSION&#91;"loggedIn"&#93;=== true&#41; &#123; 
       print&#40;"<li class='logout'><a href=\"logout.php"."\">Αποσύνδεση</a></li>"&#41;; 
  &#125;   else &#123; 
       print&#40;"<li class='admin'><a href='login.php'><img src='images/admin.png' width='33' height='25' /></a></li>"&#41;;
&#125;
Happy coding....
Μάρκος
http://lasernet.gr

prokopios
Δημοσιεύσεις: 155
Εγγραφή: 17 Φεβ 2006 15:47

Πρόβλημα με sessions κατά τη σύνδεση διαχειριστή

Δημοσίευση από prokopios » 09 Οκτ 2009 11:50

Σας ευχαριστώ πάρα πολύ!!!

Δούλευει μια χαρά τώρα.

Έσβησα το checkLoggedIn("no"); που είχα σε κάθε σελίδα που δεν απαιτούνταν είσοδος μέλους και έβαλα τον κώδικά σου Banava.


Ευχαριστώ και πάλι για τη βοήθεια!
ΑΥΤΑ!!!

Απάντηση

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

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

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