【问题标题】:Undefiend index未定义的索引
【发布时间】:2013-10-10 10:19:26
【问题描述】:

当我将表单发送到另一个页面时,它显示:Notice: Undefined index: gebruikersnaamRegistreren in on line 55 这适用于输入的每个名称

HTML 代码

<form action="RegistrerenSucces.php" method="POST">
<fieldset id="inputs">
<input id="gebruikersnaam" type="text" name="gebruikersnaamRegistreren" placeholder="Gebruikersnaam " required />   
                        <input id="paswoord" type="password" name="paswoordRegistreren" placeholder="Paswoord" required />
                        <input id="voornaam" type="text" name="voornaamRegistreren" placeholder="Voornaam" required />
                        <input id="achternaam" type="text" name="achternaamRegistreren" placeholder="Achternaam" required />
                        <input id="email" type="email" name="emailRegistreren" placeholder="E-mail adres" required />
                        <input id="straat" type="text" name="straatRegistreren" placeholder="Straatnaam en huisnummer" required />
                        <input id="postcode" type="text" name="postcodeRegistreren" placeholder="Postcode" required />
                        <input id="gemeente" type="text" name="gemeenteRegistreren" placeholder="Gemeente" required />
                    </fieldset>
                    <fieldset id="actions">
                        <input type="submit" id="submit" value="Registreren" />
                    </fieldset>
                </form>

PHP 代码

<?php
    $dbhost='localhost';
    $dbuser='root';
    $dbpassword='usbw';
    $dbdatabase='computingstore';


    $paswoordEncrypted = hash('sha512',$_POST['paswoordRegistreren']);


    print_r($_POST);

    /*Database verbinden*/
$link = mysqli_connect($dbhost , $dbuser ,$dbpassword , $dbdatabase);

$query = ("INSERT INTO gebruiker (gebruikersnaam, paswoord, voornaam, achternaam, e-mail, straatnaam, postcode, gemeente) 
VALUES 
('".$_POST['gebruikersnaamRegistreren']."',
'".$paswoordEncrypted."',
'".$_POST['voornaamRegistreren']."',
'".$_POST['achternaamRegistreren']."', 
'".$_POST['emailRegistreren']."', 
'".$_POST['straatnaamRegistreren']."',
".$_POST['postcodeRegistreren'].",
'".$_POST['gemeenteRegistreren']."')");

mysqli_query($link,$query);

/*Verbing afsluiten*/
mysqli_close($link);


?>

如何解决这个我已经找了 2 天的错误。

【问题讨论】:

  • 尝试在mysqli中使用prepared statements
  • 嗨,print_r($_POST); 提供了什么?
  • 作为一个荷兰人,我建议你用英文写你的代码。
  • 它在你的表中拥有 id 字段
  • 您的代码对 SQL 注入非常开放,因此非常不安全。神奇地将mysql 更改为mysqli 并不能解决此问题。您必须使用 mysqli 功能,例如准备好的语句和绑定值。

标签: php html database forms


【解决方案1】:

尝试使用isset判断是否定义了索引,如果没有定义空值,看问题是否解决。

例如,在第二页中使用以下内容:

isset($_POST['gebruikersnaamRegistreren']) ? $_POST['gebruikersnaamRegistreren'] : "";

而不是

$_POST['gebruikersnaamRegistreren']

对您遇到问题的所有字段重复此操作。

【讨论】:

    【解决方案2】:

    一切似乎都运行良好。不过,请尝试为您的查询使用准备。不过,我建议您检查任何 javascript 问题。

    【讨论】:

      猜你喜欢
      • 2012-12-08
      • 2012-09-18
      • 1970-01-01
      • 2013-07-19
      • 2014-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多