09/10/2018, 23:42

Sử dụng session/cookies như thế nào ?

Em đang tập tành viết web , hiện tại cũng có được 1 trang php gọi là "đơn giản" .. Em bắt đầu "ngó" qua cái "thằng session" , nhưng mà xem ebook chẳng hiểu gì hết T_T..
Em muốn làm 1 form login , có user và pass , khi submit nó sẽ start session và hiện ra câu echo "Bạn đã login với tên $user" , với $user mình $_POST từ form , đồng thời nó sẽ được đăng ký với session (session_register)..
Em xem ebook , copy lại đoạn code nhưng chẳng được , chỉnh sửa mấy cũng ko work ( submit xong thì cũng chẳng thấy gì hiện ra ).

Không bik có bác nào pro giúp đỡ em cái vụ này cái >.< Đau đầu wá !
kemkem viết 01:50 ngày 10/10/2018
/* Trang HTML */
<form name='login' action='login.php' method='post'>
User: <input type='text' name='user' >
Pass: <input type='password' name='password' >
<input type='submit' value='login' name='login'>
</form>

/* Trang login.php */
<?php
session_start();
$user=$_REQUEST['user'];
$password=$_REQUEST['password'];
session_register("user","password");
echo "<a href='view.php'>view user </a>";
?>
/* Trang view.php */
<?php
session_start();
echo "User:".$_SESSION[user]."<br>Password:".$_SESSION[password];
?>
gaulucky92 viết 01:53 ngày 10/10/2018
Không được rồi ! View user xong chẳng thấy gì hết bác ơi ~~ http://gaulucky92.uni.cc/test-session/ <--- thử này
TheHeTre viết 01:51 ngày 10/10/2018
Tại sao không đọc kỹ PHP Manual, họ đã hướng dẫn rất chi tiết mà. Xin sửa lại đoạn mã của @kemkem

/* Trang HTML */
<form name='login' action='login.php' method='post'>
User: <input type='text' name='user' >
Pass: <input type='password' name='password' >
<input type='submit' value='login' name='login'>
</form>

/* Trang login.php */
<?php
session_start();
//Sửa từ đoạn này
$_SESSION['user']=$_POST['user'];
$_SESSION['password']=$_POST['password'];
//Kết thúc sửa
echo "<a href='view.php'>view user </a>";
?>
/* Trang view.php */
<?php
session_start();
echo "User:".$_SESSION[user]."<br>Password:".$_SESSION[password];
?>
gaulucky92 viết 01:58 ngày 10/10/2018
Tuyệt quá ! Work rồi ! Thank bác Thehetre !

Giờ em muốn khi gõ user+pass vô rồi thì web sẽ chạy query dò tìm trong database , nếu user+pass nhập vào trùng với 1 row trong db thì nó sẽ hiện ra các mục khác , nếu user+pass không có thật thì sẽ bị thông báo user ko có thật và trở lại trang có form login... mong bác trả lời giúp luôn
conmalele viết 01:58 ngày 10/10/2018
Lần sau các bạn làm ơn bỏ mã vào thẻ php hoặc code hoặc quote giùm.

Dò tìm database
PHP Code:
if(isset($_POST***91;'name'***93;) && isset($_POST***91;'pass'***93;))
{
    
$dbserver "localhost";
    
$dbuser "root";
    
$dbpw "";
    
$dbname "db";

    
$link mysql_connect($dbserver,$dbuser,$dbpw) or die ('Could not connect: '.mysql_error());
    
mysql_select_db($dbname$link) or die('Could not select database');

    
$query "SELECT * FROM user WHERE name='$_POST***91;'name'***93;' AND pass='$_POST***91;'pass'***93;'";

    
$result mysql_query($query$link);
    if(
mysql_num_rows($result) > 0)
    {
        
$_SESSION***91;'user'***93;=$_POST***91;'user'***93;;
        
$_SESSION***91;'password'***93;=$_POST***91;'password'***93;;
        echo 
'Welcome : '.$_SESSION***91;'user'***93;;
    } else {
        echo 
'False';
    }
}
else
{
    echo 
'Guest';

gaulucky92 viết 01:54 ngày 10/10/2018
Không được bác ơi ! Em chạy thử trên localhost chỉ ra trang trắng
Còn đây là code em viết thử , nhưng cũng ko được ( toàn trang trắng ), bác xem coi cần sửa chỗ nào giúp em ...

PHP Code:
<?php
session_start
();

require 
"db.php";
$user=$_POST***91;'user'***93;;
$pass=$_POST***91;'password'***93;;

$query mysql_query("SELECT * FROM member WHERE user = '$user' & pass = '$pass'") or die (mysql_error());
while (
$row mysql_fetch_array($query))
{

$_SESSION***91;'user'***93;=$user;
$_SESSION***91;'password'***93;=$pass;
session_register("user","password");
if ( 
$_SESSION***91;'user'***93; == $row***91;'user'***93; && $_SESSION***91;'pass'***93; == $row***91;'pass'***93; )
{
echo 
"Bạn đã đăng nhập với tên ".$_SESSION***91;user***93;;
include 
"";
}
elseif ( 
$_SESSION***91;'user'***93; != $row***91;'user'***93; )
{
echo 
"Tên đăng nhập ko có thật !!";
include 
"login.php";
}
}
else
{
echo 
"Đăng nhập đê...";
include 
"login.php";
}

?>
conmalele viết 01:51 ngày 10/10/2018
PHP Code:
session_register("user","password"); 
Bỏ cái đoạn đó thử xem, lần sau bạn đừng dùng session_register nữa, dùng thẳng luôn biến toàn cục $_SESSION ấy, không cần register nữa đâu, dùng $_SESSION là session được tạo rồi.
gaulucky92 viết 01:51 ngày 10/10/2018
Bỏ session_start() cũng ko xi nhê
heo mọi viết 01:48 ngày 10/10/2018
Bỏ sesion_register() chứ sao lại bỏ sesion_start()?
Bài liên quan
0