设置会话数组并在不使用php中的数据库的情况下获取其他页面中的值


set session array and get the values in other pages without using database in php

我有一些字段,比如我将在哪里通过$_POST方法提供输入和获取这些数据,我想使用SESSION数组,我想在另一个页面中使用它们。。如何在一个页面中设置会话数组,并获取我输入到另一个页面的数组值???有人能帮我举个例子吗??

例如,如果我想创建一个注册页面,其中会有三个字段,如姓名、电子邮件、密码。如何在会话数组中设置这些值,并在其他页面中获取这些值。。thnx提前

试试这个。您需要使用session_start(); 在每一页上启动会话(在任何输出之前!)

index.php中,首先没有提交表单,所以它显示表单。在字段中键入一些内容。提交提交时,$_POST["submit"]将存在。将文本字段的值存储到$_SESSION变量中,并将用户重定向到other.php。在该文件中,您可以使用在index.php中设置的关键字来访问您的变量。

index.php
<?php
session_start();
if (isset($_POST["submit"])) {
    $_SESSION["user"] = array(
        "name" => $_POST["name"],
        "email" => $_POST["email"],
        "password" => $_POST["password"]
    );
    header("Location: other.php");
    die();
}
?>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
    Name <input type="text" name="name" /><br />
    Email <input type="text" name="email" /><br />
    Password <input type="password" name="password" /><br />
    <input type="submit" name="submit" value="submit" />
</form>
other.php
<?php
echo "Name is " . $_SESSION["user"]["name"] . "<br />'n";
echo "Email is " . $_SESSION["user"]["email"] . "<br />'n";
echo "Password is " . $_SESSION["user"]["password"] . "<br />'n";

main.php

<form method="post" action="process.php" >
<input type="text" name="field1" >
<input type="text" name="field2" >
<input type="text" name="field3" >
</form>

process.php

 <?php   session_start();
$_SESSION['field']=[]; //for old php version use $_SESSION['field']=array();
$_SESSION['field']=$_POST;
//other codes
?>

在你的第三页:让我们称之为take.php

<?php  session_start();
print_r($_SESSION['field']); //show what is in your session $_SESSION['field']['field1'], $_SESSION['field']['field1'], $_SESSION['field']['field1']
echo $_SESSION['field']['field1']; //to manipulate in session one variale after another
?>

这将完成您的技巧

只需使用session_start();在要使用数组的每一页上。你将能够使用它此页面将有所帮助http://www.w3schools.com/php/php_sessions.asp

设置它们:

<?php 
// form_submit.php
$_SESSION['name'] = $_POST['name'];
$_SESSION['email'] = $_POST['email'];
$_SESSION['password'] = $_POST['password'];

要检索它们,请使用相同的值:

<?php
// display_name.php
$name = stripslashes(htmlspecialchars($_SESSION['name']));
echo $name;

不过,我不建议将密码存储在您的会话中。虽然会话应该是安全的,但它永远不应该是必要的。会话存储在文件中,因此潜在的黑客可以从另一个位置检索会话。

默认情况下,这会使用新的php安装将会话存储在一个特殊目录中的文件中。

您需要使用会话变量在每个页面的前面使用session_start(),或者在php.ini中将会话设置为自动启动。