2015-07-01 46 views
-1

我试图运行一个简单的程序,将从一个HTML格式,收集用户的名称和性别和使用服务器端脚本(PHP)将输出名称和性别输入。这是我的html和php代码,我正在运行xampp控制面板版本3.2.1。当我使用http://localhost:8080/xampp/test.html从浏览器运行它时,页面将转到http://localhost:8080/xampp/test.php,但该页面是空白的。 PHP文件是test.php的和HTML文件test.html的服务器端PHP脚本不工作在Xamppp

HTML

<html> 

<form action="test.php" method="post"> 
<p> 
Name: 
<input type="text" name="fname" id="idone"/> 
</p> 
<p> 
Sex: 
<input type="text" name="sex" id="idtwo"/> 
</p> 
<input type="submit" value="Go" name="submit" id="submit"/> 

</form> 

</html> 

php code 

<?php 
//if the name field is filled in 
if(isset($_POST['idone'])) 
{ 
$name=$_POST['idone']; 
$sex=$_POST['idtwo']; 
printf("hello %s, you are a %s",$name,$sex); 
} 

?> 
+0

也许尝试HTTP://localhost/test.php并命名您的文件test.php的 – Toumash

+0

php的文件已经命名为test.php的,和HTML文件名为test.html的 –

+0

* *危险**:此代码[易受XSS影响](https://www.owasp.org/index.php/Cross-site_Scripting_(XSS))。用户输入需要在插入HTML文档之前进行转义! – Quentin

回答

2

你是不是正确引用从POST数据的形式输入在PHP。
的对象名称$_POST是那些从name属性,所以你的情况正确的代码将是:

if(isset($_POST['fname'])) 
{ 
// make sure you are properly escaping theese values, 
// when you will be dealing with dbs or files 
$name=$_POST['fname']; 
$sex=$_POST['sex']; 
} 

<input type="text" name="fname" id="idone"/>
在这种情况下,id ATTRIB(idone)在HTML将只针对CSS中使用。
它不发布到服务器回来,所以PHP 看到它

+0

ID属性不仅用于CSS。它们也用于JS,HTML(例如'label'元素的'for'属性)和用于操作HTML的其他工具。 – Quentin

1

你的PHP需要引用输入字段名称不是IDS。因此,

<?php 
//if the name field is filled in 

if(isset($_POST['fname'])) { 
    $name=$_POST['fname']; 
    $sex=$_POST['sex']; 
    printf("hello %s, you are a %s",$name,$sex); 
} 

?> 
2

服务器不会从html中看到id - 它对于js和css。
因此,您需要使用name参数。
希望帮助;)