2015-04-03 61 views
0

我想问的可能是愚蠢的问题,但很难找到错误,因为它太简单了。我想要做的是获取一个字符串值并在另一个页面中发布到值。两页的来源如下。问题是,无论我在文本框中输入什么内容,当我按下OK按钮时,结果都是这样的“;?> 这是我第一次使用实际的服务器,所以......你们能帮我吗? 关于html表单提交服务器

<html> 
<body> 
    <form method="get" action="id.php"> 
     <input type='text' name='id'> 
     <input type='submit' value='OK'> 
     <input type='reset' value='Cancel'> 
    </form> 
</body> 
</html> 

id.php

<? php 

echo " $id welcome <p>"; 

?> 
+0

我怀疑'<? PHP'也没有帮助 - 删除空间。我怀疑第二页不是通过PHP引擎渲染的(在浏览器中使用View Source进行检查)。 – halfer 2015-04-03 11:10:30

回答

2

你实际上是非常接近

由于您使用method="get"我们将与超全局$_GET

获得ID

id.php:

<?php 
echo "<p>".htmlspecialchars($_GET['id'], ENT_QUOTES, 'UTF-8'). "welcome </p>"; 
?> 

注意我们用这个来防止为了保护输出数据的XSS攻击, 功能htmlspecialchars,你应该把它展示给用户的时候逃跑的数据。这可以防止浏览器将任何意想不到的意义应用于任何可能被发现的特殊字符序列(例如,用户未经授权的JavaScript注入)。

+0

@halfer感谢您指出,更新了我的答案。 – Daan 2015-04-03 11:05:41

+0

出色的工作,谢谢。 – halfer 2015-04-03 11:07:15

1
<html> 
<body> 
    <form method="get" action="id.php"> 
     <input type='text' name='id'> 
     <input type='submit' value='OK' name="submit"> 
     <input type='reset' value='Cancel'> 
    </form> 
</body> 
</html> 

在这样

<?php 

echo $_GET['id']."welcome <p>"; 

?> 
0

更改您的id.php这个id.php使用,

<?php 

if(isset($_GET['submit'])) // checks if submit button is clicked. Prevents accident submit 
{ 

    $get_id = $_GET['id']; 
    echo "Id is : " . $get_id; 
} 

?> 

变化

<input type='submit' value='OK'> 

<input type='submit' value='OK' name="submit">