Πρόβλημα με session

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

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

Απάντηση
Άβαταρ μέλους
tattooiv
Δημοσιεύσεις: 104
Εγγραφή: 19 Δεκ 2009 01:00

Πρόβλημα με session

Δημοσίευση από tattooiv » 19 Δεκ 2009 01:28

Καλησπέρα παιδια, εχω ενα μικρό παράδειγμα μίας σελίδας
Βάζοντας στοιχεία σε μία φορμα p1.html και ελέγχοντας τα απο ενα αρχειο πηγαινω στην p2.php, εκει εχω ενα link που με πάει στην p3.php.
Στην p3.php εχω πάλι ένα link που με πάει πίσω p2.php όμως δεν αναγνωρίζει οτι απο την p1.html πέρασα σωστα και μου εμφανίζει το κομματι της p2.php που μου λεει οτι δεν έκανα σωστό login. δηλαδη δεν κραταει καπως το session που δήλωσα,
Μπορεί κάποιος να μου πει που είναι το λάθος?? δεν μπορω να καταλάβω, σας ευχαριστώ για τον χρόνο σας. αντι να παω στο μπλέ σημείο με πηγαίνει στο κοκκινο σημειο

p1.htlm

<html>
<head>
<title>aaa</title>
</head>
<body>
<br>
<form action="p2.php" method="POST">
<table border="0">
<tr>
<td align="right"><b>ονομα :</b></td>
<td align="center"><input type="text" name="onoma"></td>
</tr>
<tr>
<td align="right"><b>κωδικος:</b></td>
<td align="center"><input type="password" name="kodikos"></td>
</tr>
<tr>
<td align="center"><input type="submit" value="εισοδος"></td>
<td align="center"><input type="reset" value="εκκαθαρση"></td>
</tr>
</table>
</form>
</body>
</html>

code.txt

wwww 1111


p1.php

<html>
<head>
<title>aaa</title>
</head>
<body>

<?php
if (!isset($_SESSION['login']))
{
$_SESSION['login']=1;
}



$login=false;
$on=$_POST["onoma"];
$ko=$_POST["kodikos"];
$fl=fopen("code.txt","r") or exit ("error");
while(!feof($fl))
{
$line=fgets($fl);
$pin=explode(" ",$line);
if( (trim($pin[0])==trim($on)) && (trim($pin[1])==$ko) )
{
$login=true;
}
}
fclose($fl);
if ($login)
{
$_SESSION['login']=1;

?>
<p>επιτυχια</p>
<br>
<a href="p3.php">επόμενο</a>
<br>
<?php
}
else
{
echo "<b>σφάλμα</b><br><br>";
echo "<hr>";
echo "<br>";
;
echo "<br><br><a href='p1.html'>πισω στο login</a>";
}
?>
</body>
</html>


p3.php


<?php session_start();
if (!isset($_SESSION['login']))
{
$_SESSION['login']=1;
}
?>
<html>
<head>
<title>aaa</title>
</head>
<body>
<?php
$logged = false;
if (isset($_SESSION['login']))
{
if ($_SESSION['login'] == 1)
{
$logged = true;
}
}

if ($logged)
{

?>
<a href="p2.php">επιστροφη στην p2</a>


<?php

}
else
{
?>

<h1>Restricted Access</h1>

<?php
}
?>
</body>
</html>

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

Πρόβλημα με session

Δημοσίευση από fafos » 19 Δεκ 2009 01:35

session_start(); sthn p2.php thn opoia onomases p1.php kata lathos...
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
tattooiv
Δημοσιεύσεις: 104
Εγγραφή: 19 Δεκ 2009 01:00

Πρόβλημα με session

Δημοσίευση από tattooiv » 19 Δεκ 2009 01:47

fafos έγραψε:session_start(); sthn p2.php thn opoia onomases p1.php kata lathos...
το εβαλα αλλα μου βγαζει σφάλμα

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\p2.php:3) in C:\xampp\htdocs\p2.php on line 3

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

Πρόβλημα με session

Δημοσίευση από fafos » 19 Δεκ 2009 02:02

tattooiv έγραψε:
fafos έγραψε:session_start(); sthn p2.php thn opoia onomases p1.php kata lathos...
το εβαλα αλλα μου βγαζει σφάλμα

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\p2.php:3) in C:\xampp\htdocs\p2.php on line 3
vasikos kanonas... to session_start(); prin apola... html, echo klp:

<?session_start();?>
<html>
..ypoloipa...
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
tattooiv
Δημοσιεύσεις: 104
Εγγραφή: 19 Δεκ 2009 01:00

Πρόβλημα με session

Δημοσίευση από tattooiv » 19 Δεκ 2009 02:14

fafos έγραψε:
tattooiv έγραψε:
fafos έγραψε:session_start(); sthn p2.php thn opoia onomases p1.php kata lathos...
το εβαλα αλλα μου βγαζει σφάλμα

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\p2.php:3) in C:\xampp\htdocs\p2.php on line 3
vasikos kanonas... to session_start(); prin apola... html, echo klp:

<?session_start();?>
<html>
..ypoloipa...
ναι το εβαλα και εφυγε το σφάλμα αλλα τωρα πατώντας το link με πηγαίνει στο p3.php αλλα στο else που εχω ένα ενα μήνυμα Restricted Access, δηλαδη σαν να μην μεταφερω το session

σε ευχαριστώ που με βοηθας φιλε

Άβαταρ μέλους
tattooiv
Δημοσιεύσεις: 104
Εγγραφή: 19 Δεκ 2009 01:00

Πρόβλημα με session

Δημοσίευση από tattooiv » 19 Δεκ 2009 03:03

εβγαλα απο το p3.php πανω πανω το

if (!isset($_SESSION['login']))
{
$_SESSION['login']=1;
}
και μου εμφανίζει το link για επιστροφή στην p2.php αλλα πάλι με πάει στο κόκκινο σημείο

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

Πρόβλημα με session

Δημοσίευση από fafos » 19 Δεκ 2009 03:10

kapou exeis mperdeutei me ta session tou login..

sthn p2.php auto den nomizo oti xreiazetai:

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

if &#40;!isset&#40;$_SESSION&#91;'login'&#93;&#41;&#41;
&#123;
$_SESSION&#91;'login'&#93;=1;
&#125;

to idio kai sthn p3.php..

o logos yparkshs ton sessions einai gia na tous dinoume mia fora kapoia timh kai meta na mas akolouthei pantou mesa stis selides..

akoma.. otan pas apo thn p2 sthn p3 kai meta patas to link gia na epistrepseis sthn p2, to link psaxnei na vrei tous kodikous symfona me ta POST pou eixes steilei me thn forma sou alla fysika den ta vriskei giati xathikan phgainontas sthn p3..

auto shmainei oti prepei na doseis sessions kai na oriseis onoma kai password efoson epalhtheutoun.. opote, sthn p2 ekei pou les

if ($login)
{
$_SESSION['login']=1;


prepei na prostheseis kai auta:

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

$_SESSION&#91;on&#93;=$on;
$_SESSION&#91;ko&#93;=$ko;

meta pas apo pano kai ta

$on=$_POST["onoma"];
$ko=$_POST["kodikos"];

ta kaneis etsi:

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

if&#40;$_POST&#91;"onoma"&#93; && $_POST&#91;"kodikos"&#93;&#41; &#123;
$on=$_POST&#91;"onoma"&#93;;
$ko=$_POST&#91;"kodikos"&#93;;
&#125; else &#123;
$on = $_SESSION&#91;on&#93;;
$ko = $_SESSION&#91;ko&#93;;
&#125;
auto mas leei oti an erxete o xrhsths apo thn forma na psaksei me ta POST allios na psaksei me tis sessions...
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
tattooiv
Δημοσιεύσεις: 104
Εγγραφή: 19 Δεκ 2009 01:00

Πρόβλημα με session

Δημοσίευση από tattooiv » 19 Δεκ 2009 03:51

Φίλε μου σε ευχαριστώ πάρα πολύ, εισαι σωστός σε όλα
δεν είχα καταλάβει οτι το link στην p3.php ψάχνει τις μεταβλητες, το δοκίμασα και τρέχει

απλα τώρα εντόπισα ένα άλλο λάθος

εβαλα ενα link στο p3 για να πηγαινω στην p4

εκανα άλλο ένα αρχείο p4.php

<?php
session_start();
unset($_SESSION['login']);
unset($_SESSION['on']);
unset($_SESSION['ko']);
?>
<html>
<head>
</head>
<body>
<a href="p1.html">στο p1</a>
</body>
</html>

(στο οποίο καταστρέφω τα session)
το link με πηγαίνει στην p1 και όταν βάζω λάθος όνομα η κωδικό δουλεύει σωστα εμφανίζοντας μου το μηνυμα σφαλματος της p2, όμως άμα δεν πληκτρολογισω τίποτα ούτε στο όνομα ούτε στον κωδικό και πατήσω "είσοδο" με περνάει στην p2 σαν επιτυχία (δηλαδη μπαίνω ελέυθερα)

Άβαταρ μέλους
tattooiv
Δημοσιεύσεις: 104
Εγγραφή: 19 Δεκ 2009 01:00

Πρόβλημα με session

Δημοσίευση από tattooiv » 19 Δεκ 2009 05:24

τελικα βρήκα το σφάλμα μου
αντι για

unset($_SESSION['login']);
unset($_SESSION['on']);
unset($_SESSION['ko']);

έβαλα

session_destroy();

και όλα δουλευουν μια χαρα

Σε ευχαριστώ πάρα πολύ fafo για την βοήθεια σου και για τον χρονο που ξοδεψες

Απάντηση

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

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

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