Php 使用$\u会话传递值
通过Php 使用$\u会话传递值,php,database,session,Php,Database,Session,通过$\u会话 <?php session_start(); ?> <?php echo "<table>"; $con = mysql_connect("localhost","root","") or die ("problem"); mysql_query("SET NAMES 'utf8'", $con); mysql_select_db("dedomena"); $query = mysql_query("SELECT * FROM
$\u会话
<?php
session_start();
?>
<?php
echo "<table>";
$con = mysql_connect("localhost","root","") or die ("problem");
mysql_query("SET NAMES 'utf8'", $con);
mysql_select_db("dedomena");
$query = mysql_query("SELECT * FROM posts");
$i = 1;
while($query_row = mysql_fetch_assoc($query)) {
echo "<tr><td onclick='myFunction($i)'><a
href='page.php'>".$query_row['title']."</a></td><td>$i</td>";
$i = $i + 1;
};
echo "</table>";
?>
<script>
function myFunction($i) {
alert(x);
<?php
$_SESSION["id"] = $i;
?>
}
</script>
函数myFunction($i){
警报(x);
}
您试图在javascript中包含php代码,并认为当发生单击事件时,您将在客户端更改php全局变量。这不是正确的方法
会话用于保存会话变量。您正在使用会话将GET参数传递给服务器。无法从客户端更新会话变量,因为它们未向客户端公开
PHP中的会话:
无法更改超全局会话的内容。它位于服务器上,客户端无法访问它
但是,会将会话id传递给客户端,以便当客户端与服务器联系时,服务器知道要使用哪个会话。此值可以更改,从而允许用户使用其他人的会话。正如暴力所述,问题是
<?php
$_SESSION["id"] = $i;
?>
在将页面发送给用户之前,此代码在服务器端执行。这就是PHP和javascript之间的区别:javascript是在运行时执行的,而页面是加载的,但是页面中的PHP是为了加载页面而执行的,因此在while循环中将SESSION[“id”]
设置为10,然后在所提到的代码段中,将其放入SESSION
变量中。
为了在运行时在会话中获取变量,必须在服务器上创建对PHP脚本的请求,然后将其放入会话
。看看(jQuery)ajax,这是本例中最简单的解决方案。但是您想做什么?php是服务器端语言,javascript是客户端语言。必须执行ajax调用才能传递值ID。不能通过JS在客户端执行服务器端代码。对于您的问题,您可以通过字符串查询将其发送到php
**这个问题的最佳解决方案是字符串查询**
while($query_row = mysql_fetch_assoc($query)) {
echo "<tr><td><a
href='page.php?id='.$i>".$query_row['title']."</a></td><td>$i</td>";
$i = $i + 1;
}
while($query\u row=mysql\u fetch\u assoc($query)){
回音“$i”;
$i=$i+1;
}
page2.php
<?php
id=$_REQUEST['id'];
echo $id;
?>
<?php
session_start();
$_SESSION['id']=$_POST['jsvar'];
?>
或者,如果严格要求使用ajax。下面是一个使用iframe(不使用ajax)的作弊解决方案
function myFunction($i){alert(x);}这太错误了!!您希望在第2页上打印什么id
?是否取决于点击的标题?请;mysql.*
函数已经过时,而且不安全。使用或。查找关于ajax的教程。您能推荐一种最简单的方法将$i值传递到另一个页面吗?将GET param传递到href:echo“$i”;在page2.php中,根据SO指南,以$u GET['id']的形式访问它,它应该是一条评论,您在回答中发布了什么
<?php
id=$_REQUEST['id'];
echo $id;
?>
<?php
echo "<table>";
$con = mysql_connect("localhost","root","") or die ("problem");
mysql_query("SET NAMES 'utf8'", $con);
mysql_select_db("dedomena");
$query = mysql_query("SELECT * FROM posts");
$i = 1;
while($query_row = mysql_fetch_assoc($query)) {
echo "<tr><td onclick='myFunction(i)'><a
href='page.php'>".$query_row['title']."</a></td><td>$i</td>";
$i = $i + 1;
}
echo "</table>";
?>
function myFunction(i) {
alert(i);
var html='';
html +='<div id="fakeDiv">';
html +='<form action="setSession.php" method="post" id="fakefrm" target="ifk">';
html +='<input type="hidden" name="jsvar" id="jsvar" value="'+val+'"/>';
html +='</form>';
html +='</div>';
html +='<iframe name='ifk'style='display:none;></iframe>';
var c=document.createElement('div');
document.body.innerHTML += html;
document.getElementById('fakefrm').submit();
document.body.removeChild(document.getElementById('fakeDiv'));
}
<?php
session_start();
$_SESSION['id']=$_POST['jsvar'];
?>