我有以下页面:page1.php,page2.php和page3.php。 他们每个人的代码如下

码:

page1.php

<script type="text/javascript">

$(function(){
    $('#imgID').upload({
        submit_to_url: "page2.php",
        file_name: 'myfile1',
        description : "Image",
        limit : 1,      
        file_types : "*.jpg",

    })
}); 

</script>

<body>
<form action="page3.php" method="post" enctype="multipart/form-data" name="frm1" id="frm1">
//Some other text fields
  <input type="submit" name="submit" id="submit" value="Submit" />
</form>

</body>

page2.php

<?php session_start();
$a = $_SESSION['a'];
$b = $_SESSION['b'];
$c = $_SESSION['c'];

$res = mysql_query("SELECT col FROM table WHERE col1 = $a AND col2 = $b AND col3 = $c LIMIT 1");
$num_rows = mysql_num_rows($res);
echo $num_rows; //echos 0 when in fact it should have been 1 because the data in the Session exists.

//Ok let's proceed further
//... Do some stuff...
//Store some more values and create new session variables (and assume that page1.php is going to be able to use it)
$_SESSION['d'] = 'd';
$_SESSION['e'] = 'e';
$_SESSION['f'] = 'f';

if (move_uploaded_file($_FILES['file']['tmp_name'], $file)) 
{ 
  echo "success"; 
} 
else 
{
 echo "error ".$_FILES['file']['error'];
}

?>

page3.php

<?php session_start(); 
if( isset($_POST['submit']) )
{
  //These sessions are non-existent although the AJAX request 
  //to page2.php may have created them when called via AJAX from within page1.php 
  echo $_SESSION['d'].$_SESSION['e'].$_SESSION['f']; ?> 
}
?>
  1. 如代码所示,我正在通过AJAX调用从page1.php到page2.php发布一些信息。 page2.php应该能够使用page1.php中的会话值,即$ _SESSION ['a'],$ _ SESSION ['b']和$ _SESSION ['c'],但不能。 为什么? 我怎样才能解决这个问题?

  2. 在完成一些处理并将响应发送回page1.php之后,page2.php将创建更多会话。 点击page1.php上的表单的提交按钮,页面将POST'ed到page3.php。 但是,当回显在page2.php中创建的SESSIONS信息时,它为空白,表示未使用来自page2.php的SESSIONS。 我怎样才能解决这个问题?

在查看以上结论之前,我查看了许多信息,并花了大约50个小时尝试对脚本进行不同的处理。 我的应用 是使用函数(不是OOPS)定制的,并且不使用任何PHP框架,由于我对OOP概念的了解受到限制,因此许多框架都是面向对象的,我什至不打算使用任何PHP框架。 我遇到了比赛条件,但是提供的解决方案并没有太大帮助。 我想到的最后一个解决方案是使用数据库来举行会话以及从数据库中查找和检索数据库,我真的想避免为任务创建表,编码和维护代码,就像在同一个域中跨页面保留会话一样简单。 。

所以我的要求是:在当前条件下,有没有一种方法可以通过简单的编码解决上述问题? 任何帮助表示赞赏。

谢谢。

编辑:另外,我在会议中包含敏感信息,无法使用GET或POST通过页面来回传递信息。 因此,使用SESSIONS对我真的很有帮助。 因此,如果有任何编码可以帮助我实现这一目标,那将非常有帮助。 谢谢。

#1楼 票数:1 已采纳

从SWFUpload文档中:

Cookie问题

在Windows上,无论使用哪种浏览器,非IE Flash Player插件(FireFox,Opera,Safari等)都将发送IE cookie。 这破坏了许多服务器端脚本技术的身份验证和会话。

如果开发人员希望使用会话,则应手动传递会话和身份验证cookie信息,并在服务器端手动还原会话。

SWFUpload软件包包含用于PHP和ASP.Net的变通示例代码。

我怀疑SWFUpload会导致您的问题。

检查您的JavaScript是否发布了session_id:

new SWFUpload({
   ...
   post_params: {
     "PHPSESSID" : "<?php echo session_id(); ?>"
   }
}

并且,如果您的PHP脚本对发送的session_id做出反应。

if (isset($_POST["PHPSESSID"])) {
    session_id($_POST["PHPSESSID"]);
}
session_start();

session.auto_start应该在您的php.ini或.htaccess中禁用)

#2楼 票数:0

什么是.upload()? 它来自库/插件吗? 如果是这样,那是什么?

move_uploaded_file()调用是否成功执行?

从您描述的事件来看,这听起来像是表单已直接提交到page3。

您发布的代码似乎非常不完整(缺少javascript,缺少表单字段,缺少设置了$ _SESSION成员ab和c的位置)。 您应该创建一个简约的示例并发布完整的代码。

  ask by Devner translate from so

未解决问题?本站智能推荐:

1回复

使用ajax提交登录表单时无法设置php会话?

我正在使用以下ajax提交我的登录表单,而不用像这样刷新页面: 阿贾克斯: HTML形式: 然后执行我的validate_login.php页面: 如您从我的validate_login.php页面所看到的,我检查用户名是否存在于数据库中,如果存在,则检查密码是否匹配。 如果
3回复

MySQL连接和PHP会话的Ajax问题

我遇到了一个问题。 在我的index.php我建立与MySQL数据库的连接,并开始一个包含$_SESSION['name']和$_SESSION['password']的会话。 我将content.php页面包含在PHP的include()的DIV中。 现在,我想刷新内容而不重新加载页面
2回复

使用PHP,Ajax和MySQL

我目前正在为网站建立某种排行榜。 发生的事情是我正在从MySQL数据库中提取记录,并将它们回显到表中以显示给用户。 听起来很简单吧? 我也不需要做的就是能够同时在ASC和DESC中进行排序,或者根据图片或按钮的状态进行排序。 我目前所拥有的是一张图像,当单击该图像时,它会旋转并通过Jqu
6回复

使用php和mysql的ajax

请帮助,我想使用同一页面上的按钮列出我的患者列表,而无需重新加载我的主页。 ajaxlistpatient.php包含我的sqlquery ..
2回复

使用ajax,mysql和php

我必须将数据从一个div传输到另一个div,我正在使用AJAX进行此操作。 我正在从“ risultato.php”页面从表中获取数据,我想用它在我的主页上显示一个带有提取数据的文本区域。 如果我尝试使用mysql_query来获取数据,则不起作用,但是当我尝试在页面中回显发布数据时,它
1回复

使用AJAX,PHP和MYSQL

用最简单的术语来说,以下是我要实现的目标: 其基于此示例(他们使用一个选择代替多个复选框形式): http : //www.w3schools.com/php/php_ajax_database.asp 要填充的项目基于所选的复选框,如果用户选择持续时间为四个且课程的子类别为sql,则仅
1回复

使用AJAX/jQuery在文本区域中显示PHP回声?

我试图使用每秒自动刷新的AJAX在文本区域中显示PHP回显。 到目前为止,我所做的所有操作都无法正常工作,并且在文本区域中什么也没有得到。 这是我的代码: HTML代码: AJAX / jQuery代码: 上面的代码会发生什么,我得到echo '333333333'; 在我的
3回复

Ajax请求无法使用PHP和MySQL进行按钮单击

我通过单击按钮通过JavaScript发送ajax请求。 单击按钮后,将从执行ajax请求的位置调用一个函数。 这是调用函数的html代码: UpdateStatus()是其中存在ajax请求的函数。 从这里,我要发送$id ,它是用户ID和要更新的状态。 这是UpdateSta