【问题标题】:Call to undefined function testinput() line 48调用未定义函数 testinput() 第 48 行
【发布时间】:2016-09-18 05:18:38
【问题描述】:
<script>
    function testinput(value) {
        value = trim(value);
        value = stripslashes(value);
        value = htmlspecialchars(value);
    }
</script>

<?php
    $servername ="localhost";
    $username = "k";
    $password = "password";
    $dbname = "password";

    $connect1 = new mysqli($servername, $username, $password, $dbname);


    if($connect1->connect_error) {
        die("Connection failed:  " . $connnect1->connect_error);
    }

    if (isset($_POST['btnreg'])) {
        $klantVoornaam = $_POST["txtVoornaam"];
        $klantAchternaam = $_POST["txtAchternaam"];
        $klantMail = $_POST["txtEmail"];
        $klantWachtwoord = $_POST["txtWw"];

        (line48)$klantVoornaam = testinput($klantVoornaam);
        $klantAchternaam = testinput($klantAchternaam);
        $klantMail = testinput($klantMail);
        $klantWachtwoord = testinput($klantWachtwoord);

        $sql = "INSERT INTO `klanten` (KlantID, Voornaam, Achternaam, Wachtwoord, Email, Klantreg, KlantActief) 
        VALUES(NULL,'".$klantVoornaam."','".$klantAchternaam."', '".md5($klantWachtwoord)."','".$klantMail."',". regCode() ."','0')";

        $qresult = mysql_query($sql);


        if($connect1 ->query($qresult)){

            echo "Registered successfully!";
            echo "Voornaam: " . $klantVoornaam;
            echo "Achternaam" . $klantAchternaam;
            echo "E-mail" . $klantMail;
            echo "Wachtwoord" . $klantWachtwoord;

        }
    }
?>

基本上说我上面的函数testinput()undefined,但我似乎没有看到其中的错误。 该脚本与其余部分一样设置在我的身体中,使用testinput() 去除任何奇怪的字符,因为它是用户名。

【问题讨论】:

  • testinput() 应该是哪种语言? PHP (&lt;?php) 还是 JavaScript (&lt;script&gt;)?
  • 去掉script标签内的所有代码,使php中的函数不是js
  • mysqli 不适用于mysql_。也使用准备好的语句,您正在使用支持它们的驱动程序。 php.net/manual/en/mysqli.quickstart.prepared-statements.php 另外,如果 $klantWachtwoord 你应该考虑一种新的哈希机制而不是改变它,这可能会降低它的安全性。

标签: php mysql function post mysqli


【解决方案1】:

您在 javascript 中定义 testinput,您不能从 PHP 中调用它。相反,您应该在 PHP 中定义它:

<?php

function testinput($value) {
    $value = trim($value);
    $value = stripslashes($value);
    $value = htmlspecialchars($value);
    return $value;
}

// Rest of your PHP code

顺便说一句:这个函数并没有真正测试你的输入,它会清理它。您可能应该给它一个不同的名称以更好地描述它的作用。

【讨论】:

  • 而且它也不能很好地对其进行消毒。 stripslashes 是您想要的相反,而htmlspecialchars 用于在您的 HTML 页面上显示它。
【解决方案2】:

非常感谢!我犯了一个愚蠢的错误,老师告诉我要使用这些装饰条,所以我想我会坚持下去

【讨论】:

    猜你喜欢
    • 2014-11-02
    • 2017-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-01
    相关资源
    最近更新 更多