Ένα απλό User Login σε PHP

Μια περιοχή όπου τα μέλη μας μπορούν να βάζουν τα PHP scripts που έχουν φτιάξει και θέλουν να τα μοιραστούν με τα υπόλοιπα μέλη.

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

Απάντηση
Άβαταρ μέλους
avax31
Δημοσιεύσεις: 95
Εγγραφή: 11 Ιουν 2009 14:16

Ένα απλό User Login σε PHP

Δημοσίευση από avax31 » 03 Νοέμ 2009 12:57

Apostolis_38 έγραψε:
avax31 έγραψε:Παιζει οι εγγραφες που κανω στη βαση δεδομενων να μην εγγραφονται ολες, αλλα και αυτες που εγγραφονται να μπαινουν σε αλλες θεσεις?
Δηλαδή από τις 6 να καταχωρούνται οι 3; Μόνο αν υπάρχουν προβλήματα σύνδεσης με τη βάση. Πιθανολογώ και αν υπάρχει κάποιο request time out. Αλλά και στις δύο περιπτώσεις θα τυπωθεί στην οθόνη σφάλμα. είτε από την php είτε από τον Apache.
Το δεύτερο που λές, δεν το πολυκατάλαβα. Τι εννοείς σε άλλες θέσεις; Σε άλλο πίνακα της βάσης; Σε λάθος πεδία του πίνακα; Οπως και να 'χει είναι θέμα του insert. Τα δεδομένα καταχωρούνται με τη σειρά που είναι τα fields του πίνακα. Δεν περιμένουμε να αρχίσουν η php και η mysql της μαντεψιές.
Εννοω πως αν και εχω βάλει τα στοιχεια του πινακα με την ιδια σειρα που κανω insert τις μεταβλητες μου, το πρωτο insert πχ μπαινει σωστα στο πρωτο στοιχειο του πινακα. Στη συνεχεια το δευτερο μενει κενο αν και στελνω μεταβλητη, το τριτο στοιχειο του πινακα καταλαμβανεται απο την τεταρτη στη σειρα μεταβλητη και γενικα γινεται ενα μπαχαλο. προφανως εχει να κανει με του οτι δεν εχω σωστη επικοινωνια με την βαση. Αυτο ηθελα να μαθω. Ευχαριστω πολυ.
Υ.Γ.1 Μα και φυσικα δεν περιμενουμε να αρχισουν μαντεψιες. Η λογικη λεει πως με τη σειρα που τα δινεις με την ιδια σειρα πρεπει να καταχωρουνται :]
Υ.Γ.2 Παραταυτα μηνυμα λαθους δεν μου βγαζει εκτος αν το εμφανιζει καπου που δεν γνωριζω να κοιταξω

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Ένα απλό User Login σε PHP

Δημοσίευση από Apostolis_38 » 03 Νοέμ 2009 13:57

avax31 έγραψε: Εννοω πως αν και εχω βάλει τα στοιχεια του πινακα με την ιδια σειρα που κανω insert τις μεταβλητες μου, το πρωτο insert πχ μπαινει σωστα στο πρωτο στοιχειο του πινακα. Στη συνεχεια το δευτερο μενει κενο αν και στελνω μεταβλητη, το τριτο στοιχειο του πινακα καταλαμβανεται απο την τεταρτη στη σειρα μεταβλητη και γενικα γινεται ενα μπαχαλο. προφανως εχει να κανει με του οτι δεν εχω σωστη επικοινωνια με την βαση. Αυτο ηθελα να μαθω. Ευχαριστω πολυ.
Υ.Γ.1 Μα και φυσικα δεν περιμενουμε να αρχισουν μαντεψιες. Η λογικη λεει πως με τη σειρα που τα δινεις με την ιδια σειρα πρεπει να καταχωρουνται :]
Υ.Γ.2 Παραταυτα μηνυμα λαθους δεν μου βγαζει εκτος αν το εμφανιζει καπου που δεν γνωριζω να κοιταξω
Εστω οτι έχεις έναν πίνακα με id - name - phone - comments.
Το insert θα είναι

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

$id,$name,$phone,$comments
, άσχετα με ποιά σειρά τα καταχωρεί ο χρήστης.
Ορθογραφικά λάθη απαγορεύονται δια ροπάλου. Το $coments δεν είναι το ίδιο με το $comments
Το ίδιο και λάθος τύπος δεδομένων, π.χ. κείμενο σε int πεδίο.

Υ.Γ. παράτα το flashάκι και στήσε έναν server της προκοπής στο pc σου.

Άβαταρ μέλους
avax31
Δημοσιεύσεις: 95
Εγγραφή: 11 Ιουν 2009 14:16

Ένα απλό User Login σε PHP

Δημοσίευση από avax31 » 04 Νοέμ 2009 01:26

το εχω κανει ακριβως οπως λες :]
Δυστυχως η ευτυχως ειναι αναγκη να ασχοληθω και με αυτο. Προς το παρον το παγωνω ομως και στρεφομαι στο να στησω τον server.
Και ο Θεος βοηθος...

Άβαταρ μέλους
stevebat
Script Master
Δημοσιεύσεις: 307
Εγγραφή: 05 Αύγ 2009 15:54
Επικοινωνία:

Ένα απλό User Login σε PHP

Δημοσίευση από stevebat » 01 Ιαν 2010 14:12

πως θα το κάνω να κοιτάει αν το e-mail που έβαλε ο χρήστης στο register δεν το χρησιμοποιεί ένα άλλο μέλος??

παρακάτω ο κώδικας!!!!

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

<?php
include &#40;'dbconnect.php'&#41;;
$username=$_POST&#91;username&#93;;
$password=md5&#40;$_POST&#91;password&#93;&#41;;
$email=$_POST&#91;email&#93;;
$sqlcheck="SELECT * FROM usertable WHERE username='$username' ";
$resultcheck=mysql_query&#40;$sqlcheck&#41;;
$rowscheck=mysql_num_rows&#40;$resultcheck&#41;;
if &#40;$rowscheck!=0&#41; &#123;
echo "Ο χρήστης υπάρχει ηδη";
&#125; else &#123;
if&#40;$username!='' && $password!=''&#41; 
&#123;
$sql="INSERT INTO `usertable` &#40; `id` , `username` , `password` ,`email`&#41; VALUES &#40;'', '$username', '$password' ,'$email'&#41;";
mysql_query&#40;$sql&#41;;
echo " Ευχαριστούμε για την εγγραφή σας ";
echo '<meta http-equiv="refresh" content="1; index.php">';
?>

ευχαριστώ

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

Ένα απλό User Login σε PHP

Δημοσίευση από billt » 01 Ιαν 2010 19:17

Αλλαξε αυτό

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

$sqlcheck="SELECT * FROM usertable WHERE username='$username' "; 
σε

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

$sqlcheck="SELECT * FROM usertable WHERE username='$username' or email='$email' ";

Άβαταρ μέλους
stevebat
Script Master
Δημοσιεύσεις: 307
Εγγραφή: 05 Αύγ 2009 15:54
Επικοινωνία:

Ένα απλό User Login σε PHP

Δημοσίευση από stevebat » 01 Ιαν 2010 19:20

αααα ωραία δούλεψε σε ευχαριστώ πολύ φίλε!!!!

navoudohonosoras
Δημοσιεύσεις: 7
Εγγραφή: 03 Ιούλ 2009 22:10

Ένα απλό User Login σε PHP

Δημοσίευση από navoudohonosoras » 16 Ιαν 2010 01:09

mariosal έγραψε:Κάθισα και έφτιαξα μία γρηγορότερη και πιο απλή έκδοση του ήδη υπάρχον script. Κάνει την ίδια ακριβώς δουλειά και πιστεύω ότι τώρα είναι πιο εύκολο έτσι όπως το έκανα. Δεν το έχω testάρει άλλα πρέπει να δουλεύει σωστά.

Εκτελούμε το ακόλουθο SQL query σε μία MySQL βάση δεδομένων

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

CREATE TABLE table_name &#40;
id int UNSIGNED AUTO_INCREMENT,
username TEXT NOT NULL,
password TEXT NOT NULL,
PRIMARY KEY &#40; id &#41;
&#41;;
Έπειτα φτιάχνουμε ένα .php αρχείο στο οποίο θα βάλουμε τον ακόλουθο κώδικα για την εγγραφή

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http&#58;//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http&#58;//www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Register</title>
</head>

<body>
<?php
session_start&#40;&#41;; 
if &#40;session_is_registered&#40;'authenticated'&#41;&#41; 
   die&#40;'Έχετε εγγραφεί ήδη</body></html>'&#41;;
mysql_connect&#40;'localhost', 'databe_username', 'database_userpassword'&#41;or die&#40;mysql_error&#40;&#41;&#41;;
mysql_select_db&#40;'database_name'&#41; or die&#40;mysql_error&#40;&#41;&#41;;
if &#40;!empty&#40;$_POST&#91;'username'&#93;&#41; && !empty&#40;md5&#40;$_POST&#91;'password'&#93;&#41;&#41;&#41; &#123;
	mysql_query&#40;"INSERT INTO table_name &#40;username, password&#41; VALUES &#40;'".mysql_real_escape_string&#40;htmlspecialchars&#40;$_POST&#91;'username'&#93;&#41;&#41;."', '".mysql_real_escape_string&#40;&#40;md5&#40;$_POST&#91;'password'&#93;&#41;&#41;."'&#41;"&#41;;
	die&#40;'Ευχαριστούμε για την εγγραφή σας</body></html>'&#41;;
&#125;
?>
<form action="<?=&#40;$_SERVER&#91;'PHP_SELF'&#93;&#41;;?>" method="post">
Username&#58; <input name="username" type="text" size="40" />
<br>
Password&#58; <input name="password" type="password" size="40" />
<br>
<input name="submit" type="submit" value="register" />
</form>
</body>
</html>
Έπειτα φτιάχνουμε ένα .php αρχείο στο οποίο θα βάλουμε τον ακόλουθο κώδικα για την είσοδο

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http&#58;//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http&#58;//www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Login</title>
</head>

<body>
<?php
if &#40;session_is_registered&#40;'authenticated'&#41;&#41; 
   die&#40;'Έχετε συνδεθεί ήδη ήδη</body></html>'&#41;;
mysql_connect&#40;'localhost', 'databe_username', 'database_userpassword'&#41;or die&#40;mysql_error&#40;&#41;&#41;;
mysql_select_db&#40;'database_name'&#41; or die&#40;mysql_error&#40;&#41;&#41;;
if &#40;!empty&#40;$_POST&#91;'username'&#93;&#41; && !empty&#40;md5&#40;$_POST&#91;'password'&#93;&#41;&#41;&#41; &#123;
	$rows = mysql_num_rows&#40;mysql_query&#40;"SELECT username, password FROM table_name WHERE username='".mysql_real_escape_string&#40;$_POST&#91;'username'&#93;&#41;."' AND password='".mysql_real_escape_string&#40;md5&#40;$_POST&#91;'password'&#93;&#41;&#41;."'"&#41;&#41;;
	if &#40;$rows==1&#41; &#123;
		session_register&#40;'authenticated'&#41;;
		die&#40;'Επιτυχής Login</body></html>'&#41;;
	&#125;
	else
		echo&#40;'Ανεπιτυχές Login, δοκιμάστε πάλι'&#41;;
&#125;
?>
<form action="<?=&#40;$_SERVER&#91;'PHP_SELF'&#93;&#41;;?>" method="post">
Username&#58; <input name="username" type="text" size="40" />
<br>
Password&#58; <input name="password" type="password" size="40" />
<br>
<input name="submit" type="submit" value="Login" />
</form>
</body>
</html>
Για να κάνει κάποιος logout φτιάχνουμε ένα αρχείο .php και βάζουμε τον ακόλουθο κώδικα

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

<?php
session_start&#40;&#41;;
session_destroy&#40;&#41;;
echo&#40;'Log Out'&#41;;
?>
Εάν θέλετε να επιτρέπετε είσοδο σε μία σελίδα μόνο για όσους έχουν πραγματοποιήσει είσοδο γράφουμε τον ακόλουθο κώδικα

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

<?php
session_start&#40;&#41;;
if &#40;!session_is_registered&#40;'authenticated'&#41;&#41;
	header&#40;'login.php'&#41;;
?>
χρησιμοποιησα τον παραπανω για login register ....

σε οτι αφορα το login μου βγαζει error στο

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

if &#40;!empty&#40;$_POST&#91;'username'&#93;&#41; && !empty&#40;md5&#40;$_POST&#91;'password'&#93;&#41;&#41;&#41; 
"Fatal error: Can't use function return value in write context " ...

almark
Δημοσιεύσεις: 4
Εγγραφή: 17 Μαρ 2010 09:06

Ένα απλό User Login σε PHP

Δημοσίευση από almark » 17 Μαρ 2010 09:20

Παιδιά help...Έχω αγανακτήσει με την php. Κάνω μια σέλιδα ως πτυχιακή για τη σχολή μου και δεν λέει να τρέξει με τίποτα...

Η αρχική σελίδα είναι αυτή:

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

<html>
<head>
<title>E-Class </title>
</head>


<frameset rows="100,*" frameborder="0" framespacing="0" bordercolor="#FF0000">
<frame src="MainTop.html" name="Top" scrolling="no" id="Top">

<frameset rows="*" cols="250,*" framespacing="0" frameborder="no" border="0" bordercolor="#FF0000">
<frame src="MainLeft.html" name="Left" scrolling="NO"  id="Left">

<frame src="MainRight.html" name="Right" scrolling="YES" id="Right">

</frameset>

</frameset>

<noframes><body>
</body>
</noframes>
</html>
Όπου στα δεξιά έχω την φόρμα εισαγωγής:

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

<html>
<head>
<title>MainRight</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">


</head>
<body >
<table align=center border=0 cellpadding='0' cellspacing='0'>
<tr>
<td width=300 height=180 valign=top style="background-image&#58;url&#40;table_layout.jpg&#41;" style="background-repeat &#58; no-repeat;">  
        <div align=center><b>Είσοδος</b></div><br>
        <form action="Eisodos.php" method="post">

        <div align="center"><small>Όνομα Χρήστη &#40;username&#41;</small><br>

        <input id="focus" style='width&#58;150px; heigth&#58;20px;' name="uname" size="20"><br>

        <small>Συνθηματικό &#40;password&#41;</small><br>
        <input style='width&#58;150px; height&#58;20px;' name="pass" type="password" size="20"><br>
        <input value="Είσοδος Φοιτητή" name="EFoititi" type="submit">
        <input value="Είσοδος Καθηγητή" name="EKathigiti" type="submit">
        
	    
        </div>

        </form>

</td>
</tr>
</table>
<br>
<table cellpadding='4' cellspacing='0' width='100%' border=0>
<tr>
<td>

<fieldset>
<pre>Καλωσορίσατε στο E-Class!

Η πλατφόρμα E-Class αποτελεί ένα ολοκληρωμένο Σύστημα Διαχείρισης Ηλεκτρονικών 
Μαθημάτων.Έχει σχεδιαστεί με προσανατολισμό την ενίσχυση της συμβατικής διδασκαλίας 
αξιοποιώντας την ήδη σε υψηλό βαθμό αφομοιωμένη στο χώρο της εκπαίδευσης πληροφορική 
τεχνολογία. Ακολουθεί τη φιλοσοφία του λογισμικού ανοικτού κώδικα και υποστηρίζει την 
υπηρεσία Ασύγχρονης Τηλεκπαίδευσης χωρίς περιορισμούς και δεσμεύσεις. Η πρόσβαση στην 
υπηρεσία γίνεται με τη χρήση ενός απλού φυλλομετρητή &#40;web browser&#41; χωρίς την απαίτηση 
εξειδικευμένων τεχνικών γνώσεων.Στόχος είναι η ενίσχυση της εκπαιδευτικής διαδικασίας, 
προσφέροντας στους συμμετέχοντες ένα δυναμικό περιβάλλον αλληλεπίδρασης και συνεχούς 
επικοινωνίας εκπαιδευτή εκπαιδευόμενου.



</pre>
</fieldset>
<td>

</tr>

</table>
</body> 

</html>
Έχω δημιουργήσει την Eisodos.php:

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http&#58;//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http&#58;//www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Eisodos</title>
</head>

<body>

<?php

ini_set &#40;'display_errors', 1&#41;;
error_reporting &#40;E_ALL&#41;;

if &#40;isset &#40;$_POST&#91;'EFoititi'&#93;&#41;&#41;&#123;

	$link=mysql_connect&#40;'localhost', 'almark', '123456'&#41;;
	@mysql_select_db&#40;"e-class"&#41;;
	
	$uname = $_POST&#91;'uname'&#93;;
	$pass = $_POST&#91;'pass'&#93;;

	mysql_query&#40;'set character set greek',$link&#41;;
	mysql_query&#40;"SET NAMES 'utf8'",$link&#41;;
	
	if&#40;$uname!='' && $pass!=''&#41;&#123;
		$sql="SELECT username, password FROM foitites WHERE username='$uname' AND password='$pass'";
		$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; = $uname; 
   		echo "Επιτυχής Login";
   		&#125; else &#123;
   		echo "Ανεπιτυχές Login, δοκιμάστε πάλι";
   		&#125;
	&#125;     
&#125;

if &#40;isset &#40;$_POST&#91;'EKathigiti'&#93;&#41;&#41;&#123;

	$link=mysql_connect&#40;'localhost', 'almark', '123456'&#41;;
	@mysql_select_db&#40;"e-class"&#41;;
	
	$uname = $_POST&#91;'uname'&#93;;
	$pass = $_POST&#91;'pass'&#93;;

	mysql_query&#40;'set character set greek',$link&#41;;
	mysql_query&#40;"SET NAMES 'utf8'",$link&#41;;
	
	if&#40;$uname!='' && $pass!=''&#41;&#123;
		$sql="SELECT username, password FROM kathigites WHERE username='$uname' AND password='$pass'";
		$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; = $uname;
   		echo "Επιτυχής Login";
   		&#125; else &#123;
   		echo "Ανεπιτυχές Login, δοκιμάστε πάλι";
   		&#125;
	&#125;     
&#125;


mysql_close&#40;&#41;;
?>

</body>
</html>
Αν πχ. κάνει login ένας φοιτητής έχω αυτό τον κώδικα:

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

<?
session_start&#40;&#41;;
if&#40;!isset&#40;$_SESSION&#91;'username'&#93;&#41;&#41;&#123;&#123;
header&#40;"location&#58;Eisodos.php"&#41;;
&#125;
?>

<html>
<head>
<title>Foitites</title>
</head>


<frameset rows="100,*" frameborder="0" framespacing="0" bordercolor="#FF0000">
<frame src="MainTop.html" name="Top" scrolling="no" id="Top">

<frameset rows="*" cols="250,*" framespacing="0" frameborder="no" border="0" bordercolor="#FF0000">
<frame src="FoititesLeft.php" name="Left" scrolling="YES"  id="Left">

<frame src="FoititesRight.html" name="Right" scrolling="YES" id="Right">

</frameset>

</frameset>

<noframes><body>
</body>
</noframes>
</html>
Αλλά μου βγάζει το εξής σφάλμα:
Warning: session_register(): Cannot send session cookie - headers already sent by (output started at f:\easyphp1-8\www\eisodos.php:11) in f:\easyphp1-8\www\eisodos.php on line 34

Warning: session_register(): Cannot send session cache limiter - headers already sent (output started at f:\easyphp1-8\www\eisodos.php:11) in f:\easyphp1-8\www\eisodos.php on line 34
Επιτυχής Login


Έχετε καμιά ιδέα μπας και ξεκολλήσω;

Άβαταρ μέλους
cordis
Administrator, [F|H]ounder, [C|S]EO
Δημοσιεύσεις: 27626
Εγγραφή: 09 Οκτ 1999 03:00
Τοποθεσία: Greece
Επικοινωνία:

Ένα απλό User Login σε PHP

Δημοσίευση από cordis » 17 Μαρ 2010 10:12

το session_register("authenticated"); θα πρέπει να το βάλεις στην αρχή και πριν στείλει οτιδήποτε άλλο στον browser η PHP. ούτε καν ένα κενό χαρακτήρα...

με την ίδιο τρόπο που έχεις βάλει και το session_start(); στο τελευταίο κομμάτι κώδικα. ;)
Δεν απαντάω σε προσωπικά μηνύματα με ερωτήσεις που καλύπτονται από τις ενότητες του forum. Για ο,τι άλλο είμαι εδώ για εσάς.
- follow me @twitter

almark
Δημοσιεύσεις: 4
Εγγραφή: 17 Μαρ 2010 09:06

Ένα απλό User Login σε PHP

Δημοσίευση από almark » 17 Μαρ 2010 10:48

Thanks man...Τώρα τρέχει και απλά εκτυπώνει το μήνυμα. Θέλω όμως να το κάνω να σε στέλνει στην επόμενη σελίδα. Το δοκίμασα έτσι:

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

if &#40;$rows==1&#41;&#123;
         $url = 'FoititesMain.php';
         header&#40;"Location&#58; $url"&#41;;
		 exit&#40;&#41;;
         &#125; else &#123;
         echo "Ανεπιτυχές Login, δοκιμάστε πάλι";
         &#125;
και έτσι:

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

if &#40;$rows==1&#41;&#123;
         parent.location.href='FoititesMain.php';
         &#125; else &#123;
         echo "Ανεπιτυχές Login, δοκιμάστε πάλι";
         &#125;
αλλά δεν τρέχει ούτε με το ένα ούτε με το άλλο...
Για να το στέλνεις σε μια σελίδα με το που κάνεις login πως το κάνεις;

Lefteris33
Δημοσιεύσεις: 93
Εγγραφή: 18 Μαρ 2010 15:10
Τοποθεσία: Δαφνη
Επικοινωνία:

Ένα απλό User Login σε PHP

Δημοσίευση από Lefteris33 » 18 Μαρ 2010 23:07

Είμαι νέος στην php, προσπαθώ να φτιάξω μία σωστή διαχείρηση προσβάσεων χρηστών, αλλα έχω μεγάλο πρόβλημα με τα COOKIES και τα Sessions.
Στην αρχή ακολούθησα παραδείγματα κώδικα απο κάποιο βιβλίο που διαβάζω και έπαιρνα σφάλματα για την setcookies(0).
Είδα το παράδειγμά σου στο register.php & login.php και άλλαξα τα script μου.
Παίρνω πάλι μυνήματα σφάλματος για τα session ενώ έχω ελένξει το php.ini, και στην αρχή του session εκχωρώ την session_start();
Το μύνημα που παίρνω είναι :

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\Inetpub\vhosts\mydomain.gr\httpdocs\login.php:1) in C:\Inetpub\vhosts\mydomain.gr\httpdocs\login.php on line 15

στο line 15 ειναι το session_start();
χωρίς την session_start(); παίρνω μυνήματα για την παρακάτω γραμμή:
16. session_register("authenticated");

Δηλαδή αντιμετοπίζω πρόβλημα είτε οταν προσπαθώ να καθορίσω COOKIES είτε όταν προσπαθώ για sessions.
Μπορείς να βοηθήσεις?

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Ένα απλό User Login σε PHP

Δημοσίευση από korgr » 19 Μαρ 2010 07:36

Οταν η session_start() ειναι πραγματι πρωτη πρωτη εντολη χωρις να εχει προηγηθει κενος χαρακτηρας, τοτε 99% αυτο το μηνυμα λαθους εμφανιζεται λογω υπαρξης UTF-8 BOM Signature στο αρχειο σου.
Λυση: Σωζεις τα αρχεια σου με καποιο editor που να υποστηριζει Save Without BOM

Lefteris33
Δημοσιεύσεις: 93
Εγγραφή: 18 Μαρ 2010 15:10
Τοποθεσία: Δαφνη
Επικοινωνία:

Ένα απλό User Login σε PHP

Δημοσίευση από Lefteris33 » 19 Μαρ 2010 23:30

Έχεις δίκιο. Μετέφερα τα script σε Notepad2, έσωσα UTF-8 without signature, ανέβασα στον server και παίζουν όλα τέλεια.
Διάβαζα για το πρόβλημα ΒΟΜ, αλλα υπέθετα οτι το πρόβλημα μου δεν μπορεί να είναι τόσο απλό και φταίει κάτι στο PHP.ini.
Ευχαριστώ.

almark
Δημοσιεύσεις: 4
Εγγραφή: 17 Μαρ 2010 09:06

Ένα απλό User Login σε PHP

Δημοσίευση από almark » 20 Μαρ 2010 12:01

Παιδιά help...
Γράφω κώδικα για ένα site το οποίο και καλά θα είναι βοηθητικό σε φοιτητές ώστε να κάνουν τεστ σε διάφορα μαθήματα. Έχω κάνει την αρχική σελίδα και τις εσωτερικές αλλά έχω κολλήσει. Αφού βάλει ο χρήστης το username και το password του, πως θα τον στέλνω στην επόμενη σελίδα;

O κώδικας που έχω γράψει και δεν τρέχει είναι ο εξής:

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

<?
session_register&#40;"authenticated"&#41;;
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http&#58;//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http&#58;//www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Eisodos</title>
</head>

<body>

<?php

ini_set &#40;'display_errors', 1&#41;;
error_reporting &#40;E_ALL&#41;;

if &#40;isset &#40;$_POST&#91;'EFoititi'&#93;&#41;&#41;&#123;

   $link=mysql_connect&#40;'localhost', 'almark', '123456'&#41;;
   @mysql_select_db&#40;"e-class"&#41;;
   
   $uname = $_POST&#91;'uname'&#93;;
   $pass = $_POST&#91;'pass'&#93;;

   mysql_query&#40;'set character set greek',$link&#41;;
   mysql_query&#40;"SET NAMES 'utf8'",$link&#41;;
   
   if&#40;$uname!='' && $pass!=''&#41;&#123;
      $sql="SELECT username, password FROM foitites WHERE username='$uname' AND password='$pass'";
      $result=mysql_query&#40;$sql&#41;;
      $rows=mysql_num_rows&#40;$result&#41;;


         if &#40;$rows==1&#41;&#123;
		parent.location.href='FoititesMain.php'; 
         &#125; else &#123;
         echo "Ανεπιτυχές Login, δοκιμάστε πάλι";
         &#125;
   &#125;     
&#125;

if &#40;isset &#40;$_POST&#91;'EKathigiti'&#93;&#41;&#41;&#123;

   $link=mysql_connect&#40;'localhost', 'almark', '123456'&#41;;
   @mysql_select_db&#40;"e-class"&#41;;
   
   $uname = $_POST&#91;'uname'&#93;;
   $pass = $_POST&#91;'pass'&#93;;

   mysql_query&#40;'set character set greek',$link&#41;;
   mysql_query&#40;"SET NAMES 'utf8'",$link&#41;;
   
   if&#40;$uname!='' && $pass!=''&#41;&#123;
      $sql="SELECT username, password FROM kathigites WHERE username='$uname' AND password='$pass'";
      $result=mysql_query&#40;$sql&#41;;
      $rows=mysql_num_rows&#40;$result&#41;;


         if &#40;$rows==1&#41;&#123;
      	 parent.location.href='KathigitesMain.php'; 
         &#125; else &#123;
         echo "Ανεπιτυχές Login, δοκιμάστε πάλι";
         &#125;
   &#125;     
&#125;


mysql_close&#40;&#41;;
?>

</body>
</html>

Άβαταρ μέλους
Nikthebig
Δημοσιεύσεις: 16
Εγγραφή: 24 Απρ 2009 04:23

Ένα απλό User Login σε PHP

Δημοσίευση από Nikthebig » 26 Μαρ 2010 20:42

παιδιά εγώ έχω πρόβλημα με το logout.Δεν μου κάνει σωστό logout.
// login.php
<?php
session_start();
ini_set('session.gc_maxlifetime','60');
echo "<body bgcolor='#87CEEB'>";
include "conDB.inc";
$query="select * from user";
$result=mysql_query($query,$con);

$_SESSION['name']=$_POST["name"];
$_SESSION['pass']=$_POST["pass"];
$_SESSION["userlvl"]=3;

$name= $_POST["name"];
$pass= $_POST["pass"];

$login = false;
while($row= mysql_fetch_array($result)){
if (( $name == $row["Username"])&&( $pass == $row["Password"] )){
echo "Login!! <br>";
$login = 1;
$_SESSION["login"]=$login;

}

}

mysql_close($con);

if ($login){
include "userlvl.php";
}
else{
echo " Wrong Username or Password <br>";
echo "<a href='index.php'> Home Page </a>";
}


if($_SESSION["userlvl"]==1){
include "index.php";
}
else if($_SESSION["userlvl"]==2){
include "index.php";
}
else if($_SESSION["userlvl"]==3){

}

?>
-------------------------------------------------------
// logout.php
<?php
session_start();
function logout(){

echo "<html>";
echo "<title>Logging Out</title> ";
echo "<body bgcolor='#87CEEB'> ";

$login=$_SESSION["login"];
if(!$login){
echo "<h1>Error!</h1>\n";
echo "You are not currently logged in, logout failed. Back to <a href=\"index.php\">Home Page</a>";
}
else{
/* Kill session variables */
unset($_SESSION['name']);
unset($_SESSION['pass']);
$_SESSION = array(); // reset session array

session_destroy(); // destroy session.

echo "<h1>Logged Out</h1>\n";
echo "You have successfully <b>logged out</b>. Back to <a href=\"index.php\">Home Page</a>";

}
}
?>
--------------------------------------------------------
To session.gc_maxlifetime το έχω θέσει με 60.Δηλαδή αν κλείσω τον Browser μου μετά απο 1 λεπτο να κάνει μόνο του Logout.(με αυτό τον τρόπο δουλεύει ). Εαν όμως κάνω new tab και μετα κλείσω τον Browser μου και τον ξανα-ανοιξω με έχει ακόμα σε κατάσταση Login

Απάντηση

Επιστροφή στο “PHP τα δικά μας scripts”

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

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