Πρόβλημα σε login script

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

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

Απάντηση
Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1950
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

Πρόβλημα σε login script

Δημοσίευση από vassilism » 18 Φεβ 2008 15:44

Καλησπέρα στην παρέα :D
Χρησιμοποιώ το login script του billt και έχω ένα περίεργο πρόβλημα.

Μετά το login κρατάω το όνομα χρήστη στο αρχείο login_status.php

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

<? 
session_start&#40;&#41;; 
if&#40;!session_is_registered&#40;authenticated&#41;&#41;&#123; 
header&#40;"location&#58;login.php"&#41;; 
&#125;
$username=$_SESSION&#91;'username'&#93;;
?>
<?php
include &#40;'dbconnect.php'&#41;;
$query = "SELECT * FROM users WHERE username='$username'"; 
$result = mysql_query&#40;$query&#41; or die&#40;mysql_error&#40;&#41;&#41;; 
while &#40;$rows = mysql_fetch_array&#40;$result&#41;&#41; 
&#123;  
echo&#40;". $rows&#91;"username"&#93; ."&#41;;
&#125;
?> 
Η session έρχεται από το αρχείο login.php

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

<?php 
include &#40;'dbconnect.php'&#41;;
$username=$_POST&#91;username&#93;; 
$password=md5&#40;$_POST&#91;password&#93;&#41;; 
if&#40;$username!='' && $password!='' && $error!=1&#41; 
&#123; 
$sql="SELECT * FROM users WHERE username='$username' AND password='$password'"; 
$result=mysql_query&#40;$sql&#41;; 
$rows=mysql_num_rows&#40;$result&#41;; 
   if &#40;$rows==1&#41;&#123; 
   session_register&#40;"authenticated"&#41;; 
   $_SESSION&#91;'username'&#93; = $username; 
   header &#40;"Location&#58; index.php"&#41;;
   &#125; else &#123; 
   $error = 'Τα στοιχεία που δώσατε είναι λάθος!';
   &#125; 
&#125; 
?>
Tο αρχείο login_status.php το κάνω include σε όλες τις σελίδες μου έτσι ώστε να φαίνετε το όνομα χρήστη που έχει κάνει login.

Ενώ στην αρχή δουλεύει κανονικά, όταν αρχίζω να μεταβαίνω από σελίδα σε σελίδα και μετά από κάποιο χρονικό διάστημα, μου χάνει το όνομα χρήστη!

Τι μπορεί να συμβαίνει και το κάνει αυτό?

Άβαταρ μέλους
hik-hok
Reporter
Δημοσιεύσεις: 3571
Εγγραφή: 09 Μαρ 2003 10:45
Τοποθεσία: Agrrrrrrrrrr...... γάβ γάβ!!
Επικοινωνία:

Πρόβλημα σε login script

Δημοσίευση από hik-hok » 18 Φεβ 2008 16:13

μήπως σε κάποια σελίδα καταστρέφεται η session στέλνοντας νέο header ?

μήπως κάποιες σελίδες είναι σε διαφορετικό directory απ ότι το login.php και πρέπει να αλλάξεις το location: ?
Εικόνα

Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1950
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

Πρόβλημα σε login script

Δημοσίευση από vassilism » 18 Φεβ 2008 16:37

Οι σελίδες είναι όλες στο ίδιο directory.
Στην αρχή κάθε σελίδας υπάρχει:

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

<? 
session_start&#40;&#41;; 
if&#40;!session_is_registered&#40;authenticated&#41;&#41;&#123; 
header&#40;"location&#58;login.php"&#41;; 
&#125; 
?>
Σε περίπτωση που ο χρήστης δεν είναι συνδεμένος να τον πηγαίνει στο login.php

Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1950
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

Πρόβλημα σε login script

Δημοσίευση από vassilism » 19 Φεβ 2008 18:32

Καμιά ιδέα?
Γιατί μπορεί να το κάνει αυτό?

Άβαταρ μέλους
billt
Δημοσιεύσεις: 1175
Εγγραφή: 20 Φεβ 2004 16:17
Τοποθεσία: Θεσσαλονίκη

Πρόβλημα σε login script

Δημοσίευση από billt » 19 Φεβ 2008 19:03

mipos exeis xechasei kapou to session_start();

Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1950
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

Πρόβλημα σε login script

Δημοσίευση από vassilism » 19 Φεβ 2008 20:32

Όχι δεν την έχω ξεχάσει πουθενά :-?

Άβαταρ μέλους
cpulse
Script Master
Δημοσιεύσεις: 1527
Εγγραφή: 21 Μαρ 2006 19:30
Τοποθεσία: Αθήνα village
Επικοινωνία:

Πρόβλημα σε login script

Δημοσίευση από cpulse » 21 Φεβ 2008 14:32

Μη χρησιμοποιείς τις session_is_registered() και session_register().
Άλλαξε τες χρησιμοποιόντας μονο το array $_SESSION και ξαναδοκίμασε.

Στο login_status.php αντί για

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

if&#40;!session_is_registered&#40;authenticated&#41;&#41;&#123; 
βάλε

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

if&#40;!isset&#40;$_SESSION&#91;'authenticated'&#93;&#41;&#41;&#123; 
και στο login.php αντί για

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

session_register&#40;"authenticated"&#41;;
βάλε

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

$_SESSION&#91;'authenticated'&#93; = 1;

Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1950
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

Πρόβλημα σε login script

Δημοσίευση από vassilism » 21 Φεβ 2008 21:34

Το δοκίμασα αλλά δυστηχώς δεν δουλεύει!
Για την ακρίβεια δεν κάνει καθόλου login.

Άβαταρ μέλους
cpulse
Script Master
Δημοσιεύσεις: 1527
Εγγραφή: 21 Μαρ 2006 19:30
Τοποθεσία: Αθήνα village
Επικοινωνία:

Πρόβλημα σε login script

Δημοσίευση από cpulse » 22 Φεβ 2008 09:49

Τα redirects με τα header('Location: ...'); σου λειτουργούνε σωστά;

Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1950
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

Πρόβλημα σε login script

Δημοσίευση από vassilism » 22 Φεβ 2008 12:32

Ναι αυτά είναι ok.

Άβαταρ μέλους
cpulse
Script Master
Δημοσιεύσεις: 1527
Εγγραφή: 21 Μαρ 2006 19:30
Τοποθεσία: Αθήνα village
Επικοινωνία:

Πρόβλημα σε login script

Δημοσίευση από cpulse » 22 Φεβ 2008 17:03

Σκεφτόμουνα μήπως σου βγάζει κάποια errors αλλά δεν προλαβαίνεις να τα δείς επειδή γίνεται το redirect. Οπότε βάλε ένα die() πριν το redirect και κανένα error_reporting(E_ALL); στην αρχή του script.

Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1950
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

Πρόβλημα σε login script

Δημοσίευση από vassilism » 22 Φεβ 2008 17:16

Δεν βγάζει κάποιο λάθος.
Αυτό που παρατήρησα είναι οτι ενώ δουλεύει κανονηκά κάποια στιγμη χάνει τη $username=$_SESSION['username']; χωρίς λογό!

Άβαταρ μέλους
billt
Δημοσιεύσεις: 1175
Εγγραφή: 20 Φεβ 2004 16:17
Τοποθεσία: Θεσσαλονίκη

Πρόβλημα σε login script

Δημοσίευση από billt » 17 Μαρ 2008 20:20

Telika ti eftaige?

Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1950
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

Πρόβλημα σε login script

Δημοσίευση από vassilism » 17 Μαρ 2008 21:26

Δεν ξέρω!
Δεν κατάφερα να το φτιάξω.
Απλά είχα κάνει το εξής:
Εμφάνιζα το όνομα χρήστη που έχει κάνει login και το έκανα link για να μπορεί ο χρήστης να αλλάζει τον κωδικό του και το όνομά του.
Ενώ τα είχα φτιάξει όλα (τις φόρμες και τα script), παρατήρησα ότι κάποια στιγμή το όνομα χρήστη χανόταν.
Λογικά κάτι γίνετε με τη session που κρατάει το username, αλλά τι? :think:

Απάντηση

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

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

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