Ⅰ php 獲取 鏈接上的 參數
var_mp($_GET) ;
這個可以得到一個數組參數
然後根據獲取的值轉字元串,通過正則判斷獲取每個值。
-------------------------
<?php
var_mp($_GET);
?>
得到:
array(1) { ["id"]=> string(2) "64" }
-----------------------------------------
如果地址是:
http://127.0.0.1/vote/test1.php?id=64?cid=456
則應該得到的是:
array(1) { ["id"]=> string(10) "64?cid=456" }
Ⅱ php session刪除不了,三個界面login.php,logout.php,index.php
我想說我這里測試執行後是登錄失敗,但是警告userid索引不存在,也就是說session刪掉了
Ⅲ index.phpoption=logout 怎麼讓它調用 注銷的頁面
你吧option改成action
Ⅳ PHP輸入密碼才能訪問這個頁面的代碼
可以用php的session或者cookie實現
首次打開和關閉瀏覽器重新打開 都需要輸入密碼才可以訪問 密碼是 admin
<?php
session_start();
if(isset($_POST['password'])&&$_POST['password']=='admin'){
$_SESSION['ok']=1;
header('location:?');
}
if(!isset($_SESSION['ok'])){
exit('
<formmethod="post">
密碼:<inputtype="password"name="password"/>
<inputtype="submit"value="登陸"/>
</form>
');
}
?>
<html>
<head>
<title>title</title>
</head>
<body>
輸入密碼才能訪問這個頁面
</body>
</html>
Ⅳ 求助PHP簡單的用戶登錄頁面,不需要用戶注冊,不需要連接資料庫!但要確保各個頁面的安全保密性!
<?php
session_start();
$user=$_post['user'];//獲取用戶名
$pwd=MD5($_post['pwd']);//獲取表單傳過來的密碼並加密
$res=mysql_query("SELECT FROM `數據表` WHERE `user`=".$user."AND `pwd`=".$pwd);
$num=mysql_num_row($res);//這個地方要注意,多數系統有自己的資料庫操作類,他的寫法不
//是這樣的。我用的是最原始的辦法
if($num==1){
$_SESSION['pass']=$pwd;
}else{這里是提示登陸錯誤,返回登陸頁面的代碼
}
?>
其他頁面就像那大哥說的家一個<?php session_start();if(!isset($_SESSION['pass']))header("Location: login.php");?>
記得session_start()前面不能有輸出,否則報錯。
<?php session_start();unset($_SESSION['pass']);header("Location: login.php");?>
這行是放在logout.php中,也就是退出登陸的操作頁面裡面。
你所說的在已經登陸的電腦上也要輸入密碼才能進去,這是不可能的,除非你是把瀏覽器關了再進去,這是要求輸入密碼,這才可能。session機制和cookie機制都是不可能實現的
Ⅵ logout的原理PHP
一般登錄的用戶信息都是寫在session裡面,通過session是否存放用戶信息,來判斷用戶是否登錄,logout實質性就是清空session的過程
你通過$_SESSION['auth'] = '';
或者session_unset()去清楚session.達到logout的過程
Ⅶ PHP if($_GET['logout']){ 這是什麼意思
if($_GET['logout'])
$_GET中php系統常量,用來獲取地址欄的傳值
如a.com?logout=logout
那麼獲取的就是logout
if是用來判斷$_GET['logout']是否存在。
Ⅷ PHP中如何返回前一頁並刷新頁面
if($query)
{
$page="listrenwu.php";
<!---這種方式不會刷新,只會原樣返回-->
echo "<script>alert('刪除成功');history.go(-1)</script>";
<!--//設置刪除成功後返回前一頁,並刷新-->-->
echo "<script>alert('刪除成功');window.location = \"".$page."\";</script>";
}
Ⅸ PHP會話驗證問題,怎麼解決
會話控制的思想就是指能夠在網站中根據一個會話跟蹤用戶。這里整理了詳細的代碼,有需要的小夥伴可以參考下。
概述
http 協議是無狀態的,對於每個請求,服務端無法區分用戶。PHP 會話控制就是給了用戶一把鑰匙(一個加密session字元串),同時這也是用戶身份的一個證明,服務端存放了這把鑰匙能打開的箱子(資料庫,內存資料庫或者使用文件做的),箱子裡面裝的就是用戶的各個變數信息。
傳統的php session 使用
<?php
//page1.php 啟動一個會話並注冊一個變數
session_start();
$_SESSION['user_var'] = "hello,codekissyoung!";
//這里的可以將$_SESSION理解為用戶的箱子,實際的實現是php在伺服器端生成的小文件
?>
<?php
//page2.php
session_start();
echo $_SESSION['user_var'];//通過鑰匙訪問自己的箱子內的變數
$_SESSION['user_var'] = "bey,codekissyoung!";
?>
<?php
//page3.php 銷毀鑰匙,一般在用戶注銷時,訪問page3.php文件
session_start();
session_destroy();
?>
提一個問題,鑰匙呢?沒看見給用戶鑰匙的操作啊?
這個操作是php背後幫我們做了的,自從你訪問page1.php 程序運行,session_start();這句時,php 會根據此刻的一些條件(用戶ip,瀏覽器號,時間等)生成一個PHPSESSID變數,http response 回客戶端後,這個PHPSESSID就已經存在你的瀏覽器cookie里了,每次你再次訪問這個域名時,該PHPSESSID都會發送到服務端。這個PHPSESSID 就是我這里說的用戶鑰匙了。
再一個問題,這個PHPSESSID的安全性,它是否容易被竊取,是否容易被偽造,是否容易被篡改?
使用 Https 可以防止被篡改。不使用PHPSESSID,而是自己生成一把秘鑰給用戶可以防止被偽造。至於是否容易被竊取,還真沒怎麼研究過。比如如果你電腦連著網,黑客入侵你電腦。
將生成的秘鑰存入瀏覽器cookie中
設置cookie
setCookie('key','value',time()+3600);
刪除cookie
setCookie('key','',time()-1);
實現單點登錄:session共享
單點登錄:多個子系統之間共用一套用戶驗證體系,在其中一處登錄,就可以訪問所有子系統。
試想這么一種情景:假設伺服器A與B的php環境一致。用戶在 伺服器A 上拿到了自己的鑰匙,然後他拿著這把鑰匙去訪問伺服器B,請問伺服器B認識么?
很顯然不能,伺服器A生成的鑰匙,伺服器並不認識。
解決辦法:用戶無論訪問A或B,生成的鑰匙我都存儲在C(同一個資料庫,或緩存系統)中,用戶再次訪問A或B時,A和B都去問下C:這個用戶的鑰匙對么?對的話,用戶就可以使用自己存在A或者B那裡的箱子了。
下面是php通過會話控制實現身份驗證實例
身份驗證應用程序主體:authmain.PHP
網站的有效用戶檢查:members_only.php
注銷會話變數並銷毀會話:logout.php
Ⅹ login.phpaction=logout什麼意思
首先,php是伺服器端運行語言,就如login.php是對比如login.htm數據伺服器端處理,而後面,?action=lout,action是提交參數別名,可以自定義act,後面是提交事件處理函數,比如插入數據,刪除等都如此,改為add,del,對應處理事件即可,這里應該是對應退出登錄的意思,