Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php can';t将$\u会话的一部分作为变量调用_Php_Arrays_Session - Fatal编程技术网

Php can';t将$\u会话的一部分作为变量调用

Php can';t将$\u会话的一部分作为变量调用,php,arrays,session,Php,Arrays,Session,我试图调用上一页中的$\u POST表单信息的某些部分,我们从index.php开始,将表单以POST表单的形式发送到contact.php,然后contact.php将通过电子邮件发送出去(这些部分仍然有效)。我遇到的问题是将post信息放回会话变量并发送回index.php。我可以为$_SESSION['pos']执行foreach命令,并逐个打印每个变量,但这使我无法在它们的信息之前输入内容,例如name:和email: contact.php session_start(); //sta

我试图调用上一页中的$\u POST表单信息的某些部分,我们从index.php开始,将表单以POST表单的形式发送到contact.php,然后contact.php将通过电子邮件发送出去(这些部分仍然有效)。我遇到的问题是将post信息放回会话变量并发送回index.php。我可以为$_SESSION['pos']执行foreach命令,并逐个打印每个变量,但这使我无法在它们的信息之前输入内容,例如name:和email:

contact.php

session_start(); //start session
$_SESSION['pos'] = $_POST; // turn $_POST info into $_session info
index.php

if(isset($_SESSION['pos'])){ //check to see if session info is set
    echo '<div class="alert alert-info">'; //create alert div
    $item = $_SESSION['pos']; //change session into variable for easier indexing?
    echo "Name: ". $item[0]."<br><br>"; //echo line 0 from array
    echo "Email: ". $item['1']."<br><br>"; //echo line 1 from array
    echo "</div>"; //close alert div
}
session_unset();//unset session variables to avoid re-using them.
if(设置($\u会话['pos']){//检查会话信息是否已设置
echo“”;//创建警报div
$item=$_SESSION['pos'];//将SESSION更改为变量以便于索引?
echo“Name:”.$item[0]。“

”;//从数组中回显第0行 echo“Email:.$item['1'].“

”;//从数组中回显第1行 echo“”;//关闭警报div } session_unset()//取消设置会话变量以避免重复使用它们。

我真希望我知道如何正确地搜索我正在寻找的答案。我对不得不求助于询问如何做到这一点感到恐惧,因为我确信答案就在那里

除非您的表单字段名为
0
1
等,否则
Name:.$item[0]
不正确,应该类似于
Name:”$项['name']
,其中数组键对应于表单输入的name属性

此外,您可能希望避免调用
session\u unset()
,因为这将清除您可能不需要的所有会话数据

相反,您可以在相关数据上使用:

// unset the POST data from the session, leave everything else
unset($_SESSION['pos']);
如果你有:

<input type="text" name="name" placeholder="Your Name">
<input type="text" name="email" placeholder="Email Address">

您的代码可能会如下所示:

if(isset($_SESSION['pos'])){ //check to see if session info is set
    echo '<div class="alert alert-info">'; //create alert div
    $item = $_SESSION['pos']; //change session into variable for easier indexing?
    echo "Name: ". $item['name']."<br><br>"; //echo line 0 from array
    echo "Email: ". $item['email']."<br><br>"; //echo line 1 from array
    echo "</div>"; //close alert div

    unset($_SESSION['pos']); // remove post data from session
}
if(设置($\u会话['pos']){//检查会话信息是否已设置
echo“”;//创建警报div
$item=$_SESSION['pos'];//将SESSION更改为变量以便于索引?
echo“Name:”.$item['Name']。“

”;//从数组中回显第0行 echo“Email:.$item['Email'].“

”;//从数组中回显第1行 echo“”;//关闭警报div 取消设置($_会话['pos']);//从会话中删除post数据 }
ohhhh所以它也可以从帖子中提取关键名称,而不仅仅是给它们编号$呼叫原始post键修复了它,谢谢!