Проблем със сесии

Dizasterr

Registered
Здравейте! Имам следният код пред html тага:
Код:
<?php
ob_start();
session_start();
if($_SESION['user']) {
}
{
}
?>
Но не става. Като искам тази сесия да вземе стойността от някое поле и да изкара в друга страница не става. Някой може ли дами каже къде ми е грешката. Мерси предварително.
 
Dizasterr каза:
Здравейте! Имам следният код пред html тага:
Код:
<?php
ob_start();
session_start();
if($_SESION['user']) {
}
{
}
?>
Но не става. Като искам тази сесия да вземе стойността от някое поле и да изкара в друга страница не става. Някой може ли дами каже къде ми е грешката. Мерси предварително.
Давам ти пример за потребителско име. При успешен вход създаваш тази сесия:
Код:
$_SESSION['username'] = ''.$username.'';
В другата страница (в която искаш да показваш резултата) може да направиш нещо такова
Код:
$current_user = $_SESSION['username'];
И оттам нататък си работиш с променливата $current_user. Ето пример как може да провериш колко новини (например) е добавил:
Код:
$sql = "SELECT * FROM table WHERE author='$current_user'";
					$query = mysql_query($sql) or die (mysql_error());
					$num = mysql_num_rows($query);
					echo $num;
 
Dizasterr каза:
Изкарва ми резултат: 0.
Това е защото потребителя не е добавил нищо. Ако искаш да ти изкара името на потребителя пишеш това:
Код:
$current_user = $_SESSION['username'];
еcho "Добре дошъл $current_user";
 
Това ми е при вход:
Код:
<?php
ob_start();
session_start();
$_SESSION['user'] = ''.$user.''; 	
?>
В страницата, в която искам да показва кода е:
Код:
<?php 
require_once('../config/connection.php');
$current_user = $_SESSION['user'];	
$current_user = $_SESSION['username'];
echo "Добре дошъл $current_user"; 
$sql = "SELECT * FROM registration WHERE age='$current_user'";
         $query = mysql_query($sql) or die (mysql_error());
         $age = mysql_num_rows($query);
         echo $age;	
	
?>
 
Dizasterr каза:
Това ми е при вход:
Код:
<?php
ob_start();
session_start();
$_SESSION['user'] = ''.$user.''; 	
?>
В страницата, в която искам да показва кода е:
Код:
<?php 
require_once('../config/connection.php');
$current_user = $_SESSION['user'];	
$current_user = $_SESSION['username'];
echo "Добре дошъл $current_user"; 
$sql = "SELECT * FROM registration WHERE age='$current_user'";
         $query = mysql_query($sql) or die (mysql_error());
         $age = mysql_num_rows($query);
         echo $age;	
	
?>
Пробвай така:
Код:
 <?php
ob_start();
session_start(); 
require_once('../config/connection.php');
$current_user = $_SESSION['user'];   
$current_user = $_SESSION['username'];
echo "Добре дошъл $current_user";
$sql = "SELECT * FROM registration WHERE age='$current_user'";
         $query = mysql_query($sql) or die (mysql_error());
         $age = mysql_num_rows($query);
         echo $age;   
   
?>
Но задължително трябва да си направиш системата за автентикация. Променливата $user трябва да вземе потребителското име от формата, да провери в базата данни дали има съвпадения (когато потребителското име и паролата, които са въведени от формата са равни на тези в базата данни) и чак при успешен вход трябва да добавиш $_SESSION['user'] = ''.$user.'';
 
Dizasterr каза:
Аз я имам системата.
Код:
  <?php
ob_start();
session_start();
require_once('../config/connection.php');
$current_user = $_SESSION['user'];   
$current_user = $_SESSION['username'];
echo "Добре дошъл $current_user";
$sql = "SELECT * FROM registration WHERE age='$current_user'";
         $query = mysql_query($sql) or die (mysql_error());
         $row = mysql_fetch_assoc($query);
	echo "$row[age]";   
   
?>
По този начин ще изведеш годините на потребителя, който е логнат. Пробвай и пиши после дали всичко е ок.
 
Код:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at D:\xampp\htdocs\Software\Pages\profile.php:30) in D:\xampp\htdocs\Software\Pages\profile.php on line 52
И отдоло пише Добре дошъл. Пак нищо.Сложих сесията пред <html> тага и пак си пише само добре дошъл.
 
Хубаво записваш сесия ,но без някаква стойност.
В смисъл такъв ,че това
Dizasterr каза:
<?php
ob_start();
session_start();
$_SESSION['user'] = ''.$user.'';
?>
не съдържа стойност.Пробвай така да преправиш кода
Dizasterr каза:
<?php
ob_start();
session_start();
$user = "Dizasterr";
$_SESSION['user'] = ''.$user.'';
?>
ако правилно предполагам ,в твоя случай би трябвало да стане така
Dizasterr каза:
<?php
ob_start();
session_start();
$user = $_POST['user'];
$_SESSION['user'] = ''.$user.'';
?>
 
Оправих тази грешка, но не става. А в началото на страницата, в която искам да се показват трябва ли да направя проверка ?
 

Back
Горе