2012-09-26 88 views
4

我可以通过值形成一个网页到另一个,但我需要通过这样的价值,如何从一个PHP页面值传递到另一个使用会话

第1页:

Page4.php

Page3.php

我需要将Page1.php中的文本字段中的值传递给Page2.php中的文本字段,因为表单不是直接重定向到page2,我无法传递该值,我尝试了会话,表单发布方法和其他一些方法,但我还没有成功。

如果您可以帮助我的代码或一些建议,我会很高兴。

谢谢!

编辑..........

我找到了答案,感谢您的帮助,它实际上是我的一个无心之失,我用$ _ POST,而不是$ _SESSION。

它现在工作。

感谢您的帮助。

+1

向我们展示您的代码将是一个好的开始。 – David

+0

使用会话可以将变量传递给任何页面。那是什么问题? –

+0

如果您不知道事件的顺序,可能会有点混乱。页面的PHP代码被执行,*然后*页面加载。如果您使用表单加载新页面,表单的输入标记将在$ _REQUEST下的下一页的PHP代码中可用。从那里,您可以添加到$ _SESSION中,或者直接在新页面上指定表单值。 – Neil

回答

7

使用这样的事情:

page1.php中

<?php 
session_start(); 
$_SESSION['myValue']=3; // You can set the value however you like. 
?> 

任何其他PHP页面:

<?php 
session_start(); 
echo $_SESSION['myValue']; 
?> 

的几个注意事项要牢记虽然:你需要调用session_start()前任何输出,HTML,回声 - 甚至是空格。

你可以不断地改变在会话中值 - 但它会能够在第一页之后使用 - 这意味着,如果你将其设置在第1页,您将无法直到你使用它到另一个页面或刷新页面。

变量本身可以以多种方式中的一种进行的设定:

$_SESSION['myValue']=1; 
$_SESSION['myValue']=$var; 
$_SESSION['myValue']=$_GET['YourFormElement']; 

如果你想检查的变量是得到一个潜在的错误之前设置,使用这样的:仅仅使用POST

if(!empty($_SESSION['myValue']) 
{ 
    echo $_SESSION['myValue']; 
} 
else 
{ 
    echo "Session not set yet."; 
} 
3

解决方案 - 没有$ _SESSION

page1.php中

<form action="page2.php" method="post"> 
    <textarea name="textarea1" id="textarea1"></textarea><br /> 
    <input type="submit" value="submit" /> 
</form> 

使page2.php

<?php 
    // this page outputs the contents of the textarea if posted 
    $textarea1 = ""; // set var to avoid errors 
    if(isset($_POST['textarea1'])){ 
     $textarea1 = $_POST['textarea1'] 
    } 
?> 
<textarea><?php echo $textarea1;?></textarea> 

解决方案使用$ _SESSION和POST

第1页。PHP

<?php 

    session_start(); // needs to be before anything else on page to use $_SESSION 
    $textarea1 = ""; 
    if(isset($_POST['textarea1'])){ 
     $_SESSION['textarea1'] = $_POST['textarea1']; 
    } 

?> 


<form action="page1.php" method="post"> 
    <textarea name="textarea1" id="textarea1"></textarea><br /> 
    <input type="submit" value="submit" /> 
</form> 
<br /><br /> 
<a href="page2.php">Go to page2</a> 

使page2.php

<?php 
    session_start(); // needs to be before anything else on page to use $_SESSION 
    // this page outputs the textarea1 from the session IF it exists 
    $textarea1 = ""; // set var to avoid errors 
    if(isset($_SESSION['textarea1'])){ 
     $textarea1 = $_SESSION['textarea1'] 
    } 
?> 
<textarea><?php echo $textarea1;?></textarea> 

警告! - 这包含没有验证!

+0

更好使用隐藏字段。

相关问题