我刚开始使用php。我在网页中有一个表单指向handle.php,如下所示:
<form action = "handle.php" method="post">
<p><b>name:</b> <input type = "text" name = "name" size="20"/><p>
<input type="submit" name="submit" value="submit my info">
</form>
在我的handle.php
中,这就是我所拥有的:
<!DOCTYPE HTML>
<html>
<head>
<title> Hello! </title>
</head>
<body>
<?php
echo "<p>Name: $_REQUEST['name']<p>";
?>
<p> Hi</p>
</body>
</html>
此页面显示为完全空白。有趣的是,如果我删除$_REQUEST['name']
,那么一切都很好。在我看来,调用$_REQUEST
会使页面变空(我检查源代码并且没有任何内容)。
我做错了什么?感谢。
答案 0 :(得分:5)
试试这个:
echo "<p>Name: " . $_REQUEST['name'] . "<p>";
您还可以启用错误报告,以避免出现这种情况。您可以在php.ini文件或PHP页面顶部执行此操作:error_reporting(-1)。
答案 1 :(得分:4)
您有错误报告,并且您收到致命错误,这就是您没有看到任何内容的原因。内联变量不能按照您的方式使用,因此请尝试用以下内容替换回声:
echo "<p>Name: ".$_REQUEST['name']."<p>";
或者这个:
echo "<p>Name: {$_REQUEST['name']}<p>";
答案 2 :(得分:3)
正确的语法:
echo "<p>Name: ".$_REQUEST['name']."<p>";
或
echo "<p>Name: {$_REQUEST['name']}<p>";
我真的建议您阅读此文档:
答案 3 :(得分:2)
您应该将代码更改为:
echo "<p>Name: {$_REQUEST['name']}<p>";
您应该查看PHP Manual string page上的“复杂卷曲语法”部分。
你应该阅读如何enable error reporting。
答案 4 :(得分:1)
echo "<p>Name: $_REQUEST[name]<p>";
答案 5 :(得分:1)
如果你想回应一个数组变量,你需要像它一样“逃避”:
<?php
echo "<p>Name: {$_REQUEST['name']}<p>";
?>
另一种解决方案是:
<?php
echo '<p>Name: '.$_REQUEST['name'].'<p>';
?>
查看'
字符串与"
答案 6 :(得分:1)
我猜你的脚本会抛出语法错误。
尝试替换此行
echo "<p>Name: $_REQUEST['name']<p>";
与
echo "<p>Name: {$_REQUEST['name']}<p>";
有关单引号和双引号字符串如何工作的信息,请参阅echo的手册。
一般情况下,在开发网站上启用错误报告通常是一个好主意,因此页面会显示这样的错误,而不仅仅是“抛出白色”。如果确实如此,请确保在生产站点上禁用显示错误(尽管您可能仍想记录错误)。
答案 7 :(得分:1)
可能发生的是你得到一个致命的错误,但是在error_reporting部分中php.ini的配置只是忽略它,这就是你得到一个白页的原因。将其更改为E_ALL或类似的东西,以便更容易开发!
如果您有明确的错误,如果仍未解决,请在此处发布。
答案 8 :(得分:0)
重新发布我之前的回答,删除了错误的位
您没有正确地将值包装在{}
中。
<!DOCTYPE HTML>
<html>
<head>
<title> Hello! </title>
</head>
<body>
<?php
echo "<p>Name: {$_REQUEST['name']}<p>";
?>
<p> Hi</p>
</body>
</html>
您也不应该使用$_REQUEST
,而是使用$_GET
和$_POST
。养成使用$_REQUEST
的习惯通常是一个坏主意,因为它可以打开CSRF(跨站点请求伪造)攻击。
我还建议在htmlspecialchars
中包装您的用户变量,以防止他们将HTML或脚本注入您的网页:
<?php
$name = htmlspecialchars($_REQUEST['name']);
echo "<p>Name: {$name}<p>";
?>
答案 9 :(得分:-5)
replace this
echo "<p>Name: $_REQUEST['name']<p>";
to
echo "<p>Name: $_REQUEST[name]<p>";