Php 我的电话会话I';我想打印到屏幕上?
我正在测试一个会话,其中前三页打印到最后一页。但我很难让它工作。直到最后一页,一切都很顺利。代码如下:Php 我的电话会话I';我想打印到屏幕上?,php,session,post,session-variables,Php,Session,Post,Session Variables,我正在测试一个会话,其中前三页打印到最后一页。但我很难让它工作。直到最后一页,一切都很顺利。代码如下: <?php session_start(); if (isset($_POST['submit'])) { $_SESSION['name'] = $_POST ['name']; $_SESSION['email'] = $_POST ['email']; $_SESSION['age'] = $_POST ['age']; echo $_SESSION['name']; ech
<?php
session_start();
if (isset($_POST['submit'])) {
$_SESSION['name'] = $_POST ['name'];
$_SESSION['email'] = $_POST ['email'];
$_SESSION['age'] = $_POST ['age'];
echo $_SESSION['name'];
echo $_SESSION['email'];
echo $_SESSION['age'];
}
?>
会话变量出现空白或索引错误。有人能帮助正确打印用户输入的会话数据吗
这是第一、第二和第三页:
<html>
<head>
<title>phpsession</title>
</head>
<body>
<form method="POST" action="test_2_page_1.php">
<input type="text" name="name" placeholder="enter name"></input>
<input type="submit"> next</input>
</form>
<?php
//Set session variables
if (isset($_POST['submit'])) {
$_SESSION['name'] = $_POST ['name'];
}
?>
</body>
</html>
<?php
session_start();
if (isset($_POST['submit'])) {
$_SESSION['name'] = $_POST ['name'];
$_SESSION['email'] = $_POST ['email'];
}
?>
<html>
<head>
<title>phpsession</title>
</head>
<body>
<form method="POST" action="test_2_page_2.php">
<input type="text" name="email" placeholder="enter email"></input>
<input type="submit"> next</input>
</form>
<?php
// Set session variables
?>
</body>
</html>
<?php
session_start();
if (isset($_POST['submit'])) {
$_SESSION['name'] = $_POST ['name'];
$_SESSION['email'] = $_POST ['email'];
$_SESSION['age'] = $_POST ['age'];
}
?>
<html>
<head>
<title>phpsession</title>
</head>
<body>
<form method="POST" action="post_test.php">
<input type="text" name="age" placeholder="enter age"></input>
<input type="submit"> next</input>
</form>
<?php
// Set session variables
?>
</body>
</html>
博士学位
下一个
博士学位
下一个
博士学位
下一个
HTML中没有名为submit
的输入元素,因此PHP代码的以下部分将始终计算为false
:
if(设置($\u POST['submit']){
将HTML中的“提交”按钮更改为以下内容,在发布表单时,上面的行将计算为true
:
下一步
输入
元素是自动关闭
,因为您不需要
-而只需使用/>关闭标签
要将Next
显示为提交按钮,您需要使用value属性-ie:
分配会话变量后,您无需继续尝试设置它,如果POST数组中没有该变量,您将遇到错误-因此在创建变量之前,请使用isset
进行测试
<?php
session_start();
if ( isset( $_POST['submit'], $_POST['name'] ) ) {
$_SESSION['name'] = $_POST['name'];
}
?>
<html>
<head>
<title>phpsession</title>
</head>
<body>
<form method="POST" action="test_2_page_1.php">
<input type="text" name="name" placeholder="enter name" />
<input type="submit" name='submit' value='Next'>
</form>
</body>
</html>
<?php
session_start();
if ( isset( $_POST['submit'], $_POST['email'] ) ) {
$_SESSION['email'] = $_POST['email'];
}
?>
<html>
<head>
<title>phpsession</title>
</head>
<body>
<form method="POST" action="test_2_page_2.php">
<input type="text" name="email" placeholder="enter email" />
<input type="submit" name='submit' value='Next'>
</form>
</body>
</html>
<?php
session_start();
if( isset( $_POST['submit'],$_POST['age'] ) ) {
$_SESSION['age'] = $_POST['age'];
}
?>
<html>
<head>
<title>phpsession</title>
</head>
<body>
<form method="POST" action="post_test.php">
<input type="text" name="age" placeholder="enter age" />
<input type="submit" name='submit' value='Next'>
</form>
</body>
</html>
博士学位
博士学位
博士学位
为了进一步帮助您解决问题,我快速制作了一个基于表单提交获取和设置会话变量的单页演示。希望对您有所帮助
<?php
session_start();
#https://stackoverflow.com/questions/54194496/what-am-i-doing-wrong-with-this-phone-session-im-trying-to-print-to-screen/54194890?noredirect=1#comment95217192_54194890
if( !empty( $_GET['reset'] ) ){
unset( $_SESSION['name'] );
unset( $_SESSION['email'] );
unset( $_SESSION['age'] );
header( sprintf('Location: %s', $_SERVER['SCRIPT_NAME'] ) );
}
/*
as each form only submits two values ( submit being one ) we can
simply remove it from the POST array and use the remaining field/value
to generate the session variables using simple array techniques
The below could easily be replaced with pre-defined variables, such as:
if( isset( $_POST['name'] ) )$_SESSION['name']=$_POST['name']; etc
*/
if ( isset( $_POST['submit'] ) ) {
/* remove the submit button & value from the array */
unset( $_POST['submit'] );
/* there will now be one item, with index = 0 */
$keys=array_keys( $_POST );
$values=array_values( $_POST );
/* set the session variable */
$_SESSION[ $keys[0] ]=$values[0];
}
?>
<html>
<head>
<title>phpsession</title>
</head>
<body>
<form method='POST'>
<?php
if( empty( $_SESSION['name'] ) ){
echo "<input type='text' name='name' placeholder='enter name' />";
}
if( !empty( $_SESSION['name'] ) && empty( $_SESSION['email'] ) ){
echo "<input type='text' name='email' placeholder='enter email address' />";
}
if( !empty( $_SESSION['name'] ) && !empty( $_SESSION['email'] ) && empty( $_SESSION['age'] ) ){
echo "<input type='text' name='age' placeholder='enter your age' />";
}
if( empty( $_SESSION['age'] ) ){
echo "<input type='submit' name='submit' value='Next'>";
} else {
if( empty( $_POST['finish'] ) ) echo "<input type='submit' name='finish' value='Finish'>";
}
if( isset( $_POST['finish'] ) ){
/*
Once the user has completed each form, send them off to their final destination?
or do something else....
*/
printf(
'Do some interesting stuff now ....
<pre>%s</pre><a href="?reset=true">Reset</a>',
print_r( $_SESSION, true )
);
}
?>
</form>
</body>
</html>
博士学位
你能分享你发布的表单是什么样子吗?我刚刚更新了原始帖子。你有一些无效的HTML标记。你从来没有在test_2_page_2.php中进入过你的状态。你需要替换if(isset($\u post['submit']){
到if(!empty($\u post)){
请解释一下,就像我是五个不起作用的人一样。我最终犯了更多的错误。什么不起作用?在上面的html代码片段中,表单操作是同一个页面吗?没有,它在3个页面上进行。最后应该发布,但没有。在东部时间感觉困倦。为了让这件事起作用,我彻夜未眠。如果我不回应,我会第一件事早上。我运行了上面的代码,直到最后一页,我仍然没有发现任何错误或未定义的变量错误。真的吗?我只是重新运行了上面的代码,没有发现任何错误,请告诉我消息是什么通知:未定义的索引: