Сесийте!

NetCutter

Registered
Значи взех си една книга за php,ама в не е об снено за php4 и посто нно ми вади синтаксис ерори!@!
Инсталнах си Апаче на компа и си направих възможност за регистраци и логване,ама работата със сесийте,не мога да оправ !
Ето го файла login.php:
Код:
<?php
if($_POST['login'] == 1)
{
$username = trim($_POST['username']);

$password = trim($_POST['password']);


$conn = mysql_pconnect("localhost","root","kvvnc3481") or die ( 'Не е усъществена връзка с MySQL!Проблемът ще бъде отстранен в най-скоро време!' );


mysql_select_db("probna") or die ( 'Не е усъществена връзка с MySQL!Проблемът ще бъде отстранен в най-скоро време!' );


$query = mysql_query("SELECT * FROM users WHERE username = '$username' AND password = '$password' LIMIT 1");


//РџСЂРё РіСЂРµС?РЅР° парола:
if(mysql_num_rows($query) == 0)
{
echo "Грешно потребителско име или парола,мол  върнете се и опитайте отново!";
}
else
{
$row = mysql_fetch_array($query);
echo "Добре дошъл, ".$row['username']."! При тно сърфиране!


";
echo "<br><a href=pro.php>NEXT</a>";
}
}
else
{
//Създава се сесийна променлива с юзърнейма на потребител 
session_start();
$_SESSION['username'] = "Сега $username можеш да продължиш да ползваш сайта с всички привилегии!" ;
?>
<html>
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
<title>My First Login Script!!!</title>
</head>
<body>
<form name="form1" method="post" action="">
<input name="login" type="hidden" value="1">
<table width="200" border="0">
<tr>
<td>Потребител:</td>
<td><input type="text" name="username"></td>
</tr>
<tr>
<td>Парола:</td>
<td><input type="password" name="password"></td>
</tr>
<tr align="center">
<td colspan="2"><input type="submit" name="Submit" value="Вход"></td>
</tr>
</table>
</form>
</body>
</html>
<?
}
?>
А ето и файла pro.php,в който тр бва да е още логнат потребител ,ама . . .:
Код:
<?php 
session_start();

if (isset ($_POST['username']) &&
isset ($_POST['password']))
{
$username = $_POST['username'];
$password = $_POST['password'];

$conn = mysql_connect('localhost', 'root', 'kvvnc3481');
mysql_select_db('probna') or die ( 'Не е усъществена връзка с MySQL!Проблемът ще бъде отстранен в най-скоро време!' );
$query = mysql_query("SELECT * FROM users WHERE username = '$username' AND password = '$password' LIMIT 1");
$rezult = mysql_query($query, $conn);
if (mysql_num_rows($rezult) >0 )
 
{

$_POST['valid_user'] = $username;
}
}
?>
<html>
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
</head>
<body>
<h1>Home Page</h1>
<?
if (isset ($_POST['valid_user']))
{
echo ( "Вие сте логнат като $username " );
echo ( "<a href=\"logout.php\">Log Out</a>" );
}
else
{
if (isset ($username))
{
echo ( "Вие не можете да се логнете!" );
}
else
{
echo ( "Вие не сте логнат!" );
}
}
?>
</body>
</html>
Мол ви помагайте :)
 
Тука никъде не видях стартирана сесия.
Каква е тази книга странна?
Да не е за PHP5?
 
Не php4,и от нея аз съм се опитал да я прекарам за php5 :roll:
Ама бтв това не отваря ли сесията:
Код:
//Създава се сесийна променлива с юзърнейма на потребител
session_start();
$_SESSION['username'] = "Сега $username можеш да продължиш да ползваш сайта с всички привилегии!" ;
А ако не отваря,ще кажеш ли как трябва да стане?
 
Повече ме притеснява това:


mysql_select_db('probna') or die ( 'Не е усъществена връзка с MySQL!Проблемът ще бъде отстранен в най-скоро време!' );
$query = mysql_query("SELECT * FROM users WHERE username = '$username' AND password = '$password' LIMIT 1");
$rezult = mysql_query($query, $conn);
if (mysql_num_rows($rezult) >0 )

{

$_POST['valid_user'] = $username;
}
}
?>
<html>
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
</head>
<body>
<h1>Home Page</h1>
<?
if ( isset ( $_POST['valid_user'] ))
{
echo ( "Вие сте логнат като $username " );
echo ( "<a href=\"logout.php\">Log Out</a>" );
}


Трябва да е $_SESSION['username']

Какъв е този $_POST?
 
И това:

Код:
session_start(); 
$_SESSION['username'] = "Сега $username можеш да продължиш да ползваш сайта с всички привилегии!" ;

Каква е тази стойност
"Сега $username можеш да продължиш да ползваш сайта с всички привилегии!" ;

Трябва да е така:

$_SESSION['username']= $row['username'];

:shock:

Преписваш ли точно?
 
То даже си пише:

Код:
//Създава се сесийна променлива с юзърнейма на потребител

Не може user нейма да е цяло изречение.
 
Пробвах,ама не стана :)
Значи греша и някъде другаде :)
Ще се поровичкам още,а ако вие намерите нещо,казвайте :)
 
Код:
<?php
session_start();
if (isset($_POST['user']) && isset($_POST['password'])) {
   include 'library/opendb.php';

   $userId = $_POST['UserId'];
   $password = $_POST['Password'];

   $sql = "SELECT user
           FROM tbl_auth_user
           WHERE user = '$userId'
                 AND password = PASSWORD('$password')";

   $result = mysql_query($sql)
             or die('Query failed. ' . mysql_error());

   if (mysql_num_rows($result) == 1) {
    
  
      $_SESSION['db_is_logged_in'] = true;

      header('Location: main.php');
      exit;
   } else {
      echo "Грешно име/парола!";
   }
}
?>
а самата форма:
Код:
<html>
<head>
<title>Login</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body> 
<form action="login.php" method="post" >

                <p>Име<br>
                <input name="username" type="text">
                <br>
                Номер на билета <br>
                <input name="password" type="password" ><br>
                
				<input type="image" border="0" name="submit" src="images/login.jpg" width="50" height="13" alt="" vspace="6" >
            
                
</form>
</body>
</html>
 
Sleeper каза:
Код:
<?php
session_start();
if (isset($_POST['user']) && isset($_POST['password'])) {
   include 'library/opendb.php';

   $userId = $_POST['UserId'];
   $password = $_POST['Password'];

   $sql = "SELECT user
           FROM tbl_auth_user
           WHERE user = '$userId'
                 AND password = PASSWORD('$password')";

   $result = mysql_query($sql)
             or die('Query failed. ' . mysql_error());

   if (mysql_num_rows($result) == 1) {
    
  
      $_SESSION['db_is_logged_in'] = true;

      header('Location: main.php');
      exit;
   } else {
      echo "Грешно име/парола!";
   }
}
?>
а самата форма:
Код:
<html>
<head>
<title>Login</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body> 
<form action="login.php" method="post" >

                <p>Име<br>
                <input name="username" type="text">
                <br>
                Номер на билета <br>
                <input name="password" type="password" ><br>
                
				<input type="image" border="0" name="submit" src="images/login.jpg" width="50" height="13" alt="" vspace="6" >
            
                
</form>
</body>
</html>


if (mysql_num_rows($result) == 1)
това ми харесва.
Ако има двама потребителя с еднакъв username ( това не трябва да става)
няма да пусне нито един. :wink:

Другото обаче не го разбрах.
Каква е стойноста на сесийната променлива?
Как ще бъде разпознат усер-а в следвашия скрипт.
 

Back
Горе