在抓页上,我有
$storeID= $_REQUEST['store'];
$custID= $_REQUEST['cust'];
我在上页的不同页面上有链接,如下所示
第1页。
echo "<a class='btn btn-info' rel='nofollow' target='_blank' href='/go-to-store.php?store=" . $KID . "&cust=" . $user_ID . "'>" . "shop" . "</a>";
第2页。
echo "<form action='/go-to-store.php' target='_blank' method='post'>"
. "<input type='hidden' name='store' value='$postid'>"
. "<input type='hidden' name='cust' value='$user_ID'>"
. "<button class='btn btn-mini btn-info' type='submit' style='margin-top:5px;'>"
. "shop" . "</button>";
这两种方式都是有效的可接受的做事方式。我没有理由不向用户显示价值,任何人都没有改变这些价值的伤害或动机。
我正在追踪我网站上的一个问题,并且基本上缩小了任何可能出现问题的可能情况,甚至可能导致我遇到问题。
答案 0 :(得分:0)
$storeID
看起来包含的数据仅与网站上的一组特定网页相关,但人们可能想要链接到哪些网页。它应该构成URL的一部分,以便人们可以链接到它。
$custID
看起来包含特定于用户的数据,但应该在整个站点中保留(除非用户注销,否则不会更改)。它应存储在cookie中(或存储在服务器上与浏览器相关联的会话中),并且不会在每个请求中传递。
答案 1 :(得分:0)
使用Cookie或会话来存储数据并将其用于您想要的任何页面。
<?php
session_start();
$_SESSION['storeID'] = $_REQUEST['store'];
$_SESSION['custID'] = $_REQUEST['cust'];
// now access session variables from other pages
echo "Store ID : ". $_SESSION['storeID']."<br />";
echo "Cust ID". $_SESSION['custID']
// to delete variable
unset($_SESSION['storeID']);
unset($_SESSION['custID'])
?>
使用cookies
<?php
// store varible in cookie for one day
setcookie("soreID", $_REQUEST['store'], 60*60*24);
setcookie("custID", $_REQUEST['cust'], 60*60*24);
// retrive data
echo "Store ID : ". $_COOKIE['storeID']."<br />";
echo "Cust ID". $_COOKIE['custID']
// delete cookie
setcookie("soreID", $_COOKIE['store'], time()-3600);
setcookie("custID", $_COOKIE['cust'], time()-3600);
?>
答案 2 :(得分:0)
选项1:按base64
对变量进行编码,以便用户无需解码即可看到它们。将变量放入url。
$storeID= urlencode(base64_encode($_REQUEST['store']));
$custID= urlencode(base64_encode($_REQUEST['cust']));
// then use following to get data from url:
$storeID= base64_decode(urldecode($_GET['sid']));
$custID= base64_decode(urldecode($_GET['cid']));
选项2:使用会话。会话允许您将数据保存到服务器,因此它们不会显示给用户。
session_start();
$_SESSION['storeID'] = $_REQUEST['store'];
$_SESSION['custID'] = $_REQUEST['cust'];
// then use following to get data from sessions:
session_start();
$storeID= $_SESSION['storeID'];
$custID= $_SESSION['custID'];
选项3:使用文本文件。记住;我不推荐这个选项,因为它加载了一点服务器,它没有超过其他选项。 (你也可以使用dbs)
编辑:
session_start();
if(isset($_POST['store']) && isset($_POST['cust'])){
$_SESSION['storeID'] = $_POST['store'];
$_SESSION['custID'] = $_POST['cust'];
}
else {
echo 'please fill are fields.'
}