Temos pavadinimas: WordPress, Shopify ir PHPFusion programuotojų bendruomenė :: Prisijungimas su SESSION's

Parašė Faitas.· 2011 Geg. 8 20:05:41
#1

Sveiki. Radau prisijungimą su sesijomis. Tik dabar atsirado dar viena problema. Vaikščiojant po profilį ( member-profile.php ), pagrindinį vartotojo vaizdą( member-index.php ). Noriu, kad vaikščiojant po Pagrindinį (index.php), registraciją (registration-form.php) ir išviso visur, ir kad neatsijungtų.

Bandžiau ir su setcookies ir su sesijomis kažką daryti, visur kišau, ir į prisijungimo tikrinimą, ir visur, bet nepavyksta. Kodas:

login-form.php:


<?php 
 
include("config.php");
echo "<title>Prisijungimas</title>";
Navigacija();
 
echo "
 
	<br />
	<form id='loginForm' name='loginForm' method='post' action='login-exec.php'>
	  <table width='300' border='0' cellpadding='2' cellspacing='0'>
		<tr>
		  <td width='112'><b>Vartotojo vardas</b></td>
		  <td width='188'><input name='login' type='text' class='textfield' id='login' /></td>
		</tr>
		<tr>
		  <td><b>Slaptažodis</b></td>
		  <td><input name='password' type='password' class='textfield' id='password' /></td>
		</tr>
		<tr>
		  <td>&nbsp;</td>
		  <td><input type='submit' name='Submit' value='Prisijungti' /></td>
		</tr>
	  </table>
	</form>
	";
?>


login-exes.php:


<?php
 
	include("config.php");
 
	echo "<title>Klaida prisijungiant</title>";
 
	Navigacija();
 
	session_start();
 
	require_once('config2.php');
 
	$errmsg_arr = array();
 
	$errflag = false;
 
	function clean($str) {
		$str = @trim($str);
		if(get_magic_quotes_gpc()) {
			$str = stripslashes($str);
		}
		return mysql_real_escape_string($str);
	}
 
	$login = clean($_POST['login']);
	$password = clean($_POST['password']);
 
	if($login == '') {
		$errmsg_arr[] = 'Vartotojas nerastas';
		$errflag = true;
	}
	if($password == '') {
		$errmsg_arr[] = 'Slaptazodis nerastas';
		$errflag = true;
	}
 
	if($errflag) {
		$_SESSION['ERRMSG_ARR'] = $errmsg_arr;
		session_write_close();
		header("location: login-form.php");
		exit();
	}
 
	$qry="SELECT * FROM members WHERE login='$login' AND passwd='".md5($_POST['password'])."'";
	$result=mysql_query($qry);
 
	if($result) {
		if(mysql_num_rows($result) == 1) {
			session_regenerate_id();
			$member = mysql_fetch_assoc($result);
			$_SESSION['SESS_MEMBER_ID'] = $member['member_id'];
			$_SESSION['SESS_FIRST_NAME'] = $member['firstname'];
			$_SESSION['SESS_LAST_NAME'] = $member['lastname'];
			session_write_close();
			header("location: member-index.php");
			exit();
		}else {
			header("location: login-failed.php");
			exit();
		}
	}else {
		die("Tokio vartotojo nėra");
	}
?>


login-failed:


<?php
 
include("config.php");
 
echo "<title>Nepavyko prisijungti</title>";
 
Navigacija();
 
echo "
 
	<h1>Nepavyko prisijungti</h1>
	<h4 class='err'>Nepavyko prisijungti!<br />
	  Prašome patikrinti jūsų vartotojo vardą ir slaptažodį</h4>
 
	";
 
?>


Jei dar įdomu, tai member-profile ir member-index:

member-profile.php:


<?php
 
	require_once('auth.php');
	include("config.php");
	echo "<title>Vartotojo profilis</title>";
	Navigacija();
 
	$id = $_SESSION['SESS_MEMBER_ID'];
	$result = mysql_query( "SELECT * FROM members WHERE member_id='$id'" );
 
	echo "<h1>Mano profilis</h1>";
	if( mysql_num_rows( $result ) > 0 )
	{
		while( $row = mysql_fetch_array( $result ) )
		{
			echo "<div id='visas'>";
			echo "<div id='vidus'>";
			if( $row['firstname'] == '' or $row['firstname'] == 'Nera' or $row['firstname'] == 'Nėra' )
			{
				echo "<div class='vardas'>Vardas: Neapibūdintas</div>";
			}
			else
			{
				echo "<div class='vardas'>Vardas: $row[firstname]</div>";
			}
			if( $row['lastname'] == ''  or $row['lastname'] == 'Nera' or $row['lastname'] == 'Nėra' )
			{
				echo "<div class='pavarde'>Pavardė: Neapibūdinta</div>";
			}
			else
			{
				echo "<div class='pavarde'>Pavardė: $row[lastname]</div>";
			}
			if( $row['age'] == '' or $row['age'] == 'Nera' or $row['age'] == 'Nėra' )
			{
				echo "<div class='amzius'>Amžius: Neapibūdintas</div>";
			}
			else
			{
				echo "<div class='amzius'>Amžius: $row[age]</div>";
			}
			if( $row['location'] == '' or $row['location'] == 'Nera' or $row['location'] == 'Nėra' )
			{
				echo "<div class='vieta'>Vieta: Neapibūdinta</div>";
			}
			else
			{
				echo "<div class='vieta'>Vieta: $row[location]</div>";
			}
			if( $row['skype'] == '' or $row['skype'] == 'Nera' or $row['skype'] == 'Nėra' )
			{
				echo "<div class='skype'>SkypeNAME: Neapibūdintas</div>";
			}
			else
			{
				echo "<div class='skype'>SkypeNAME: <a href='skype:$row[skype]'><span style='color:#99CC00'>$row[skype]</span></a></div>";
			}
			if( $row['login'] == '' )
			{
				echo "<div class='linfo'>Prisijungimo vardas: Neapibūdintas</div>";
			}
			else
			{
				echo "<div class='linfo'>Prisijungimo vardas: $row[login]</div>";
			}
			echo "</div></div>";
		}
	}
	else 
	{
		echo "<span style='color:#414141; font-family: Arial'>Nerasta jūsų informacija</span><br /><br />";
	}
	echo "<a href='member-index.php'><span style='color:#99CC00; font-family: Arial'>Grįšti atgal</span></a><br />
	      <a href='logout.php'><span style='color:#99CC00; font-family: Arial'>Atsijungti</span></a>";
?>


member-index.php:


<?php
 
	require_once('auth.php');
	include("config.php");
	echo "<title>Vartotojo panelė</title>";
 
	Navigacija();
 
 
	echo "<h1>Sveiki atvykę " . $_SESSION['SESS_FIRST_NAME'] . ".</h1>";
	echo "<a href='member-profile.php'><span style='color:#99CC00; font-family: Arial'>Mano profilis</span></a><br />
		  <a href='member-change.php'><span style='color:#99CC00; font-family: Arial'>Redaguoti profilį</span></a><br />
		  <a href='logout.php'><span style='color:#99CC00; font-family: Arial'>Atsijungti</span></a>
		 ";
 
?>


Jei galit, pasakykit kaip tai padaryti :)

Redagavo Faitas.· 2011 Geg. 8 20:05:08

Parašė avice· 2011 Geg. 8 20:05:56
#2

nesupratau klausimo ;D
bet galbut kiekviename faile dedi:

require_once('auth.php');
include("config.php");

Parašė Faitas.· 2011 Geg. 8 20:05:21
#3

Nu pas mane dabar, kai prisijungi, būna, kad nueini tarkim į Profilis, grįšti atgal viskas ok, dar neatsijungęs, paspaudi Pagrindinis ir iškarto atsijungia. :| Aš noriu, kad vaikštant po visur nuo vartotojo neatsijungtų. :)

Parašė Mantas_· 2011 Geg. 8 21:05:10
#4

Į kurį failą nuėjus atjungia?
Į kurį failą nuėjus atjungia?

Redagavo Mantas_· 2011 Geg. 8 21:05:17

Parašė Faitas.· 2011 Geg. 10 19:05:20
#5

Nuėjus į visus, išskyrus member-index.php ir member-profile.php atsijungia automatiškai :)