2011-04-26 102 views
0

我使用的是Win XP操作系统和XAMPP。我使用eclipse作为编辑器。在Eclipes中,我无法重定向下一页,所以现在我已经安装了Zend开发环境。无法重定向到下一页

现在我也遇到同样的问题。

我的代码是

HomePage.php

<html> 
<body> 
<form name="Form1" id="FormId" action="Welcome.php" method="post"> 
    name : <input type="text" name="txtName"> 
    Phone Number : <input type="text" name="txtPnum"> 
    <input type="submit" name="SubmitIt" value="Submit It">  
</form> 
</body> 
</html> 


And Welcome.php is 

<?php 
    ob_start(); 
    session_start();  
    if(!($_SESSION['UName'])) 
    { 
     $_SESSION['UName']=$_POST['txtName']; 
    } 
    if(!($_SESSION['Ph Num'])) 
    { 
     $_SESSION['Ph Num']=$_POST['txtPnum']; 
    } 
?> 
<html> 
<body> 
Welcome <?php 
    if(isset($_SESSION['UName'])) 
    { 
     echo $_SESSION['UName']; 
    } 
    else 
    { 
     echo "Session not set<br/>";  
     echo "{$_SESSION['UName']}";   
     echo "The session contains <br>"; 
     print_r($_SESSION); 
    }   
    ?> 
</body> 
</html> 

其工作的罚款(重定向到下一页)在浏览器,但它不是在调试模式下工作。在Eclipse和Zend开发环境中。

而不是显示下一页的内容,它显示页面名称(在我的例子中为Welcome.php)。

我是否需要安装任何其他软件或代码本身worng ....什么问题。请建议我。

在此先感谢....!

+2

哪一部分是应该做一个重定向,我没有看到任何 头(“位置:redirect.php”)或东西 – Ibu 2011-04-26 05:21:59

+0

为什么你需要ob_start()在这里,你可以将内容保存在变量中,并在需要时回显 – Ibu 2011-04-26 05:25:17

+0

我正在提交表单,所以根据action =“Welcome.php”它应该重定向到Welcome.php页面。 – Gnanendra 2011-04-26 05:27:54

回答

0

尝试在你的代码的末尾添加这个我敢肯定那是因为你是不是在释放输出缓冲区,但我认为它应该自动完成它

echo ob_get_clean(); 

更新:

我不确定你为什么在这里使用$ _SESSION变量,但是你想解决这个问题,你可以使用例如$ uname而不是$ _SESSION ['UName'];

Welcome.php 

<?php // at the beginning of your file, no spaces or newline 
    session_start(); 
    $uName=$_POST['txtPnum']; 
    $txtPnum=$_POST['txtPnum']; 
    $_SESSION['UName'] = $uName; 
    $_SESSION['PhNum'] = $uName; 
?> 
<html> 
<body> 
Welcome <?php echo $_SESSION['UName']; ?> 

</body> 
</html> 

由于您仍然在调试您的代码,您将摆脱ob启动。并一次尝试一步。 祝你好看。

+0

我应该在哪里添加此代码?在第一个文件Home.php或欢迎.php? – Gnanendra 2011-04-26 05:37:52

+0

在欢迎的最后一行。php – Ibu 2011-04-26 05:39:23

+0

我已经添加了line echo ob_get_clean();但是我仍然遇到同样的问题 – Gnanendra 2011-04-26 06:04:42

2

哪一部分是应该做一个重定向,我没有看到任何标题(“位置:redirect.php”)或东西

,为什么你在这里使用ob_start()。

你没有释放输出缓冲区add ob_get_clean();到底

<?php 
    ob_start(); 
    session_start();  
    if(!($_SESSION['UName'])) 
    { 
     $_SESSION['UName']=$_POST['txtName']; 
    } 
    if(!($_SESSION['Ph Num'])) 
    { 
     $_SESSION['Ph Num']=$_POST['txtPnum']; 
    } 
    ob_end_flush(); 
?> 
<html> 
<body> 
Welcome <?php 
    if(isset($_SESSION['UName'])) 
    { 
     echo $_SESSION['UName']; 
    } 
    else 
    { 
     echo "Session not set<br/>";  
     echo "{$_SESSION['UName']}";   
     echo "The session contains <br>"; 
     print_r($_SESSION); 
    }   
    ?> 
</body> 
</html> 
+0

雅我已经尝试过,但我无法进入下一页。 – Gnanendra 2011-04-26 11:11:35