【问题标题】:PHP form request with javascript form validation带有 javascript 表单验证的 PHP 表单请求
【发布时间】:2017-04-24 03:32:11
【问题描述】:

所以我有一个在

上执行简单表单验证的 javascript
<form method="get" name="formPG" onsubmit="return (validateForm());" action="filter.php">
<p>Noun <input id="iNoun" name="fNoun" type="text" /></p>

<p><br />
Pronoun <input id="iPronoun" name="fPronoun" type="text" /></p>

<p><br />
Verb <input id="iVerb" name="fVerb" type="text" /></p>

<p><br />
Adverb <input id="iAdverb" name="fAdverb" type="text" /></p>

<p><br />
Adjective <input id="iAdjective" name="fAdjective" type="text" /></p>

<p><br />
Silly Word <input id="iSillyWord" name="fSillyWord" type="text" /></p>

<p><br />
Magic Spell <input id="iMagic" name="fMagic" type="text" /></p>

<p><br />
<input type="submit" value="submit" /></p>
</form>

javascript 说“嘿,这是填写”或“嘿,这没有填写,请填写”。

现在,我有一个从 HTML 标签收集信息的 PHP 文件

<?php
    require "start.php"
?>

<div class="work"><</div>
<?php
if(!empty($_GET['fNoun']) && !empty($_GET['fPronoun']) && !empty($_GET['fVerb']) && !empty($_GET['fAdverb']) && !empty($_GET['fAdjective']) && !empty($_GET['fSillyWord']) && !empty($_GET['fMagic']))
{
    $noun = filter_input(INPUT_GET, 'fNoun', FILTER_SANITIZE_STRING);
    $pronoun = filter_input(INPUT_GET, 'fPronoun', FILTER_SANITIZE_STRING);
    $verb = filter_input(INPUT_GET, 'fVerb', FILTER_SANITIZE_STRING);
    $adverb = filter_input(INPUT_GET, 'fAdverb', FILTER_SANITIZE_STRING);
    $adjective = filter_input(INPUT_GET, 'fAdjective', FILTER_SANITIZE_STRING);
    $sillyword = filter_input(INPUT_GET, 'fSillyWord', FILTER_SANITIZE_STRING);
    $magic = filter_input(INPUT_GET, 'fMagic', FILTER_SANITIZE_STRING);
        echo "There was once a $adjective magician who roamed the wild terrains of $adverb <br>The magician $noun cast the mighty spell $magic around the $sillyword <br>$pronoun knew there was only one way to win the war - $verb";
}
else
{
    echo "parameters not provided."
}
?>

<?php
    require "end.php"
?>

我遇到的问题是它收集信息(您可以在 URL 中看到它)但是,它不会将信息回显到屏幕上。

会不会是与 PHP 和 JavaScript 的奇怪交互?

【问题讨论】:

  • 嗨。您可能应该尝试在没有启动功能的情况下运行它,看看您的数据是否被打印出来。此外,根据您的设置,您可能必须将值声明为字符串 $b = (string)filter_input(INPUT_GET, 'b');
  • 好的,让我试试这个...我会编辑这条评论结果结果:空白页仍然filter.php?fNoun=q&amp;fPronoun=q&amp;fVerb=q&amp;fAdverb=q&amp;fAdjective=q&amp;fSillyWord=q&amp;fMagic=q这是正在传递的内容
  • 查看之前的评论,我认为您可能需要使用 filter_var,因为我认为 filter_input 是标量,请参阅此 SO 答案stackoverflow.com/questions/298535/…
  • 我正在查看调试器,我收到 500 内部服务器错误 [Sun Apr 23 14:51:50.552397 2017] [:error] [pid 26426] [client 199.249.223.60:62465] File does not exist: /home/gyqynpkr/public_html/index.php
  • 您要发送到 filter.php 吗?检查所有内容的拼写。这是我认为你正在寻找的一个例子......w3schools.com/php/…祝你好运

标签: javascript php html forms


【解决方案1】:

这是一个选项,您需要首先检查 filter_input 返回的内容,然后您可以将其分配给一个变量并显示它,下面是一个简单的示例,源自 w3schools 在此处提供的内容:https://www.w3schools.com/php/showphp.asp?filename=demo_func_filter_input。下面的示例验证来自表单的电子邮件,如果过滤器输入未返回 false,它将打印一条消息,说明“此电子邮件:是有效的电子邮件”

例子:

<!DOCTYPE html>
<html>
<body>

<form method="get" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
E-mail: <input type="text" name="email">
<input type="submit" name="submit" value="Submit">
</form>

<?php
if (isset($_GET["email"])) {
    if (!filter_input(INPUT_GET, "email", FILTER_VALIDATE_EMAIL) === false) {
        $email = filter_input(INPUT_GET, "email", FILTER_VALIDATE_EMAIL);
        echo("This email: ".$email." is a valid Email");
    } else {
        echo("Email is not valid");
    }
}
?>

</body>
</html>

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-02
    相关资源
    最近更新 更多