導航:首頁 > 編程語言 > phpsession監聽

phpsession監聽

發布時間:2022-09-04 02:29:25

php中使用session防止用戶非法登錄後台的方法

本文實例講述了php中使用session防止用戶非法登錄後台的方法。分享給大家供大家參考。具體如下:
一般來說,我們登錄網站後台時,伺服器會把登錄信息保存到session文件里,並通過讀取session文件來判斷是否可以進行後台操作。
以下面為例,假如admin.php是我們的後台操作頁面,如果沒有啟用
session,那麼,即便是沒有登錄,用戶照樣能訪問到該頁面,這時候,就需要用到
session
來防止用戶非法登錄到這個頁面了。下面是三個文件的代碼
登錄頁面:login.php
復制代碼
代碼如下:<h2>用戶登錄頁面</h2>
<form
action="loginProcess.php"
method="post">
用戶名:<input
type="text"
name="username"><br
/>
密 碼:<input
type="password"
name="pwd"><br
/>
<input
type="submit"
name="sub"
value="登錄後台">
</form>
<?php
if(!empty($_GET['errno'])){
if($_GET['errno']==1){

echo
"用戶名或密碼錯誤";
}else
if($_GET['errno']==2){

echo
"請輸入用戶名密碼";
}else
if($_GET['errno']==3){

echo
"非法訪問,請輸入用戶名和密碼";
}
}
?>
登錄信息處理頁面:loginProcess.php
復制代碼
代碼如下:<?php
//這里主要講session,關於登錄信息驗證,就不涉及到資料庫了
//接收登錄信息,保存session
if(!empty($_POST['sub'])){
if($_POST['username']=="admin"
&&
$_POST['pwd']=="admin"){

echo
"登錄成功";

session_start();//開啟session

$_SESSION['username']
=
$_POST['username'];//將登錄名保存到session中

header("Location:
admin.php");

exit();
}else{

header("Location:
login.php?errno=1");

exit();
}
}else{
header("Location:
login.php?errno=2");
exit();
}
?>
後台文件:admin.php
復制代碼
代碼如下:<?php
session_start();
if(empty($_SESSION['username'])){
header("Location:
login.php?errno=3");
exit();
}
echo
"你是管理員,你現在擁有後台管理許可權";
?>
希望本文所述對大家的php程序設計有所幫助。

❷ php session 問題

<?php
session_start();
//加個這個
//$_SESSION['login_check'] = strtoupper(rand_code(4));
$_SESSION['login_check'] = "aaaa";

echo $_SESSION['login_check'];
?>

❸ PHP有沒有辦法監聽session - PHP進階討論

java中似乎有一個session監聽的功能,不知道PHP有沒有提供類似的東西……比如,一個商城,要記錄顧客今天訪問了哪些商品,如果採用每訪問一個商品就在資料庫里寫一次數據的話,資料庫操作稍顯頻繁,所以我想把用戶的訪問記錄先暫存在session里,在用戶退出,或者session失效的時候,再一次性寫入資料庫。如果PHP不能自動監聽session的話,那有沒有好的方法來實現上面所說的功能?

❹ php 怎麼使用session

PHP session用法其實很簡單它可以把用戶提交的數據以全局變數形式保存在一個session中並且會生成一個唯一的session_id,這樣就是為了多了不會產生混亂了,並且session中同一瀏覽器同一站點只能有一個session_id,下面我們一起來看看關於session使用方法。
如何使用session,凡是與session有關的,之前必須調用函數session_start();
為session賦值很簡單,如:

<?php
Session_start();
$Name = "這是一個Session例子";
Session_Register("Name");//注意,不要寫成:Session_Register("$Name");
Echo $_SESSION["Name"];
//之後$_SESSION["Name"]為"這是一個Session例子"
?>
在php4.2之後,可以為session直接賦值:
復制代碼 代碼如下:
<?PHP
Session_Start();
$_SESSION["name"]="value";
?>

❺ php的session 有什麼用

session是什麼,剛開始我也不明白,非專業詞典翻譯為會議,會議期。直到接觸asp後才知道session是干什麼的,有什麼用。
作個不太恰當的比喻吧(雖然不恰當,但意義卻是一樣的),session就好象你和你女友(或妻子)之間的感情似的,session是你和網站之間的感情。
session在WEB技術中佔有非常重要的份量。由於網頁是一種無狀態的連接程序,因此你無法得知用戶的瀏覽狀態。因此我們必須
通過session記錄用戶的有關信息,以供用戶再次以此身份對web伺服器提供要求時作確認,例如,我們在某些網站中常常要求用戶登錄,
但我們怎麼知道用戶已經登錄了呢,如果沒有session的話,登錄信息是無法保留的,那豈不要讓用戶在每一頁網頁中都要提供
用戶名和密碼。
當然,session不光用於用戶身份認證功能,還可能用於其它方面,以後我們會提到的。
session用中文來解釋就是會話期。一個會話期開始於用戶輸入一個站點的網址時,結束於他離開這個站點時。
session最早出現在動態腳本語言Active Server Pages中,它的功能之強大,是一句話無法說清楚的。
當php還在3.0版本時,session是它永遠的痛。雖然php具有執行速度快,使用靈活,功能強大等優點,但因為session的問題,使很多站點的開發放棄了php,至少我的老闆是這樣認為的。當時有很多php免費函數庫提供在php3上實現session的方案,但都讓人感覺不正宗。
就好象你花好幾千大洋買的手機卻配置一個很粗糙的草作的袋子一樣,雖然功能是一樣的,但總讓人覺得別扭。php4的出現讓php在session問題上
有了翻身的機會。雖然它的session實現還不是很理想(主要是效率問題),但畢竟是它自己實現的,而且可以實際使用了。
那我們用session干什麼呢,你說了半天,我用不上的話,你豈不有賣紙張之嫌。OK,我們來看看session有什麼用:作過網站的人都有這樣的體會,在一頁頁面中的變數(在本章都指伺服器端變數,下同)是不能在下一頁中用的,雖然有一些辦法可以實現,比如用form,urlstring等等
但有些對於用戶來說是不方便的,即使讓form自動提交,但其中的延時在現今的網路狀況下足以讓人窒息,而這兩種方法都明顯加大程序員的負擔。如果你正在開發一個大型項目,那這些額外的負擔是不能忽略的。而有了session就好辦了,session中注冊的變數可以作為全局變數使用。什麼,全局變數?
好極了。這樣一來,你知道有什麼用了吧:最主要的用於用戶身份認證,程序狀態記錄,頁面之間參數傳遞。
說了它這么半天的好處,你已經動心了吧,先別高興,它還有缺點呢:它是用文件保存的變數(當然效率不高了,雖然可以用別的方式,但
很麻煩的),不能保存對象。與之相對的是,asp中的session可以保存對象變數,用內存變數來保存session變數。但為什麼我們還選用php呢,呵呵,
為什麼,你能從本書的開始看到這章,想必你也應該明白了吧,你還不明白,Faint,你再從頭看起吧,我保證你成為PHP專家^_^。
session是怎樣實現的呢?呵呵,你一定以為很高深吧,我來告訴你它的秘密。如果說只保存變數的話,很多讀者都明白,這是很簡單的,
但前面我們說過,http協議是一種無狀態的連接,你怎麼知道那個變數是誰的,這個變數又是誰的呢?在session實現中用cookie實現的。cookie
存在於客戶端,也就是用戶的機器中,裡面保存著用戶的session ID,也就是session號碼,當用戶的瀏覽器請求伺服器時把session ID也一起送到
伺服器,這樣伺服器就可以識別你是誰,也就可以把變數識別開了。這樣我們就不難理解了,為什麼有時session會失效了。不信的話,你可以試試:
在IE的"工具"菜單上有"Internet選項"菜單,打開後再選"安全"->"自定義級別",將安全設置中的"允許使用每個對話cookies"設為禁用,再看看
session能不能用。這下明白了吧!不過php4在linux/unix平台上可以自動檢查cookies狀態,當cookies 不可用時,自動會把session ID
附帶在url上進行傳遞。這是它在session方面比asp多的唯一的優點了。

❻ php中如何用session判斷用戶是否以登陸

在判斷密碼和登錄名是否正確的網頁check.php中添加:

<?php
session_start();
require_once("sys_conf.inc");
if (isset($_POST["ok"]))
{
$link_id=mysql_connect($DBHOST,$DBUSER,$DBPWD);
mysql_select_db($DBNAME);
mysql_query("SET NAMES 'GBK'");
$sql="Select * from admin where name='".$_POST["name"]."' and pass='".$_POST["pass"]."'";
$result=mysql_query($sql);
$rows=mysql_num_rows($result);
if ($rows!=0)
{
$admin=$_POST["name"];
session_register("admin");
echo "<script>alert('登錄成功!');location='admin_Index.php';</script>";
}
else
{
echo "<script>alert('用戶名或密碼錯誤!');history.back();</script>";
}

}
?>

然後每一頁前加
<?
session_start();
if (!session_is_registered("admin"))
{
echo "<script>alert('您沒有登錄!');location='login.php';</script>";
exit;
}
?>

當然你的也可以,不過在check.php中要改。

❼ 一個關於PHP 簡單的session問題 入門級別 求解決

既然是初級我就寫一個面向過程的,文件的路徑自己改下
第一步,登陸頁面
<?php
if(isset($_POST) && (!empty($_POST)){//$_POST被設置 並且不為空,這isset,empty兩種都寫上比較保險,等你學了yii框架 tp框架就明白了

//連接資料庫,選擇資料庫(代碼省略,其實好久不用有點忘了,這種寫法在php5.5已經廢棄,你了解就行,現在都用框架,那個學好了才是真的)
$result=mysql_query("select * from tablename where username=$_POST['username'] and password=$_POST['password']");//查詢是否有這用戶並且密碼是否正確,如果$result不為空則說明密碼正確,密碼其實應該md5加密,此處為了便於理解省略
if($result){
session_start();//開啟session
$_SESSION[islogin]=1;

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

}

}

?>

<form action=login.php>
<input type='text' name='username'>
<input type='password' name='password'>
</form>

以下為引入文件簡稱inc,所有頁面都要加上以下代碼.用了狂接就不用這么麻煩了.理解下就行

<?PHP

session_star();
if($_SESSION[islogin]!=1){
header(location:localhost/login.php)

}

首頁:
require ('inc.php')//載入上面的文件

某個位置上寫上: 歡迎$_SESSION['username'] 登陸//顯示登錄的用戶名

祝你學習成功

❽ php SESSION用法 $_SESSION['']初始值

注意,在使用session之前一定要調用

<?php
session_start();

開始會話,否則會出錯。在你的代碼里我看不到。


$_SESSION數組的使用類似於普通數組。但它是有」魔法「的。當頁面結束後,$_SESSION的內容會被PHP解析器自動保存下來,同時在用戶的瀏覽器留下一個cookie。下次用戶訪問時,使用該cookie繼續會話。


所以,檢查一個session是否存在和普通數組一樣:

<?php
//正確,檢查flag下標是否設置
if(isset($_SESSION['flag']))...
//錯誤,會導致警告,下標不存在
if($_SESSION['flag'])...
//存儲一個session值
$_SESSION['flag']=1;
//刪除一個session值
unset($_SESSION['flag']);

一個沒有設置的session是沒有初始值的。就像你初始化一個空數組一樣。

❾ PHP中SESSION 怎麼用呢

$_SESSION (數組)

$_SESSION 是根據瀏覽器進程的..同個瀏覽器進程中..得到的SESSION_ID是一樣的..所以數據共享

閱讀全文

與phpsession監聽相關的資料

熱點內容
java同步並發 瀏覽:249
fw壓縮圖片 瀏覽:256
淘寶申請源碼靠譜嗎 瀏覽:872
androidupdater 瀏覽:635
c2d游戲源碼大全可復製版 瀏覽:771
電腦怎樣重置網關命令 瀏覽:411
winftplinux 瀏覽:335
推特app界面如何設置成中文 瀏覽:452
太空工程師轉子編程屬性 瀏覽:32
windowscmd關機命令 瀏覽:342
雲桌面只要伺服器裝一套軟體 瀏覽:247
電腦右鍵按到什麼導致文件夾全屏 瀏覽:454
我的世界如何製造伺服器主城 瀏覽:365
linuxssh連不上 瀏覽:297
永宏plc用什麼編程電纜 瀏覽:371
win激活命令行 瀏覽:886
新手學電腦編程語言 瀏覽:893
雲空間在哪個文件夾 瀏覽:926
編程游戲小貓抓小魚 瀏覽:790
安卓dosbox怎麼打開 瀏覽:774