2017-07-18 42 views
-2

有在PHP方式使用$ _SESSION来获取用户输入并提交时,它传递文本里面?

我试过使用$ _SESSION,但使用$ _POST调用它,但它不会显示。

这里是我的input.php文件

<!DOCTYPE html> 
<form action="displayoutput.php" method="POST"> 
<input type="text" placeholder="Name" name="name"> 
<input type="submit"> 
</form> 

<?php 
session_start(); 
if (isset($_SESSION['username'])) 
{ 
$_SESSION['username']=$_POST['name']; 
} 
?> 
</html> 

代码和这里是displayoutput.php

<!DOCTYPE html> 
<?php 
session_start(); 
?> 
<input type="text" value="Name"><input type="text" value="<?php echo $_SESSION['username'];?>"> 

我想这个代码,但它不会显示用户提供的输入。

有没有其他方法可以做到这一点?

+1

在任何输出之前,在文件顶部添加'session_start()'。 –

+1

你的表单动作是'displayoutput.php',所以你不能获得数据'$ _POST ['name'];'in'input.php' –

+0

是的,你是对的,我没有看到有人来。 –

回答

0

在顶部 添加session_start()的请尝试这种 input.php

<?php 
@session_start() 
?> 


<form action="displayoutput.php" method="POST"> 
    <input type="text" placeholder="Name" name="name"> 
    <input type="hidden" name="username" value="<?php echo $_SESSION['username']?>"> 
    <input type="submit" name="btn_submit"> 
</form> 

displayoutput。php

<?php if(isset($_POST['btn_submit'])) {?> 
<input type="text" value="Name"><input type="text" value="<?php echo $_POST['username'];?>"> 
<?php }?> 
+0

是的,你是对的,谢谢你。 –

+0

@ RusselLaurio - 请接受它作为答案 –

0

标题已输出后,无法启动会话。 if语句中的isset也有错误。改变你的输入文件像这样:

<?php 
session_start(); 
?> 
<!DOCTYPE html> 
<form action="displayoutput.php" method="POST"> 
<input type="text" placeholder="Name" name="name"> 
<input type="submit"> 
</form> 
<?php 
if (!isset($_SESSION['username'])) 
{ 
    $_SESSION['username'] = $_POST['name']; 
} 
?> 
</html> 

今后,尝试启用错误首次报告,通过将这些行文件的顶部:

ini_set('display_errors', 1); 
error_reporting(E_ALL); 

这将导致你的警告消息该头文件已经输出,这可以帮助您找出代码不工作的原因。

+0

@RusselLaurio您可能已经从另一个包含文件开始了会话(或者您没有使用基于cookie的会话)。也有可能您的输出被缓冲,并且不会立即发送出去,从而允许设置cookie标头。 – FrankerZ

0
if (!isset($_SESSION['username'])) 
{ 
$_SESSION['username']=$_POST['name']; 
} 
?> 

如果不存在会话,然后分配$ _ POST [“名”]到$ _SESSION [“用户名”]

+0

谢谢你。 –

0

一旦你开始session没有必要再次启动它。如果你这样做,它会导致这样的错误:

注意:一个会议已经开始了 - 忽略在session_start()

试试这个,它应该工作:

<?php session_start(); ?> 
<!DOCTYPE html> 
<head> 
<title>Title Here</title> 
</head> 
<body> 
    <form action="displayoutput.php" method="POST"> 
     <input type="text" placeholder="Name" name="name"> 
     <input type="submit"> 
    </form> 
</body> 
</html> 

displayoutput.php

<!DOCTYPE html> 
<head> 
    <title>Title Here</title> 
</head> 
<body> 
<?php 
     if(!isset($_SESSION['username'])) 
     $_SESSION['username'] = $_POST['name']; 
?> 
<input type="text" value="<?php echo $_SESSION['username'];?>" /> 
</body> 
</html> 
+0

谢谢你。这对我有很大的帮助。 –

0

您的表单动作displayoutput.php所以你不能得到数据$_POST['name'];input.php而不是使用会话就可以直接得到displayoutput.php

displayoutput.php使用$_POST['name'];数据

<!DOCTYPE html> 
<?php 
$user_name = isset($_POST['name']) ? $_POST['name'] : ""; 

?> 
<input type="text" value="Name"><input type="text" value="<?php echo $user_name;?>"> 
+0

我需要'$ _SESSION'兄弟,不用担心我的代码正在工作。谢谢你的时间。 –

相关问题