为了账号安全,请及时绑定邮箱和手机立即绑定

我如何禁用或影响 php 中的变量为 null

我如何禁用或影响 php 中的变量为 null

PHP
斯蒂芬大帝 2023-08-26 17:33:58
我有 3 个网页,一个用于登录,一个用于注册,最后一个是主页(索引)。我有 2 个来自登录的变量和 5 个来自注册的变量,所有变量都被发送到主页,因此当我在登录变量中注册时没有值,因此会出现错误“注意未定义的索引” ,当我注册时,也会发生同样的情况,但错误显示了登录的变量。我在谷歌上进行了很多搜索,发现了一个名为 unset 的函数来禁用变量,但没有任何反应。// Sous WAMP$bdd = new PDO('mysql:host=localhost;dbname=test exbook;charset=utf8', 'root', '');$reponse = $bdd->query('SELECT * FROM registration');$nom = $_POST['nom'];$birthday = $_POST['birthday'];$genre = $_POST['genre'];$email = $_POST['email'];$password = password_hash($_POST['password'], PASSWORD_DEFAULT);if (isset($nom , $birthday , $genre , $email, $password )) {    unset($nom);    unset($birthday);    unset($genre);    unset($email);    unset($password);} else {    $req = $bdd->prepare('INSERT INTO registration(`Nom`, `Date de naissance`, `Genre`, `Email`, `Password`) VALUES(?,?,?,?,?)');    $req->execute(array($nom, $birthday, $genre, $email, $password));}while ($donnees = $reponse->fetch()) {    echo $donnees['Nom'];}$bdd = new PDO('mysql:host=localhost;dbname=test exbook;charset=utf8', 'root', '');$emailsignup = $_POST['emailsignup'];if (isset($emailsignup)) {    unset($emailsignup);} else{    $bdd1 = $bdd->query('SELECT * FROM registration WHERE $emailsignup');}感谢您阅读本文并尽力提供帮助。祝你今天过得愉快 :)
查看完整描述

1 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

未定义索引错误来自 $_POST 变量。当您尝试emailsignup参数nom, birthday...时,$_POST 数组中不存在。你可以这样做:


           // Sous WAMP

            $bdd = new PDO('mysql:host=localhost;dbname=test exbook;charset=utf8', 'root', '');

            $reponse = $bdd ->query('SELECT * FROM registration');

            $hasnom=isset($_POST['nom']);

            $hasbirthday=isset($_POST['birthday']);

            $hasgenre=isset($_POST['genre']);

            $hasemail=isset($_POST['email']);

            $haspass = $isset($_POST['pass']);



            if ($hasnom && $hasbirthday && $hasgenre && hasemail && haspass) {

              $nom=$_POST['nom'];

              $birthday=$_POST['birthday'];

              $genre=$_POST['genre'];

              $email=$_POST['email'];

              $password=password_hash($_POST['password'], PASSWORD_DEFAULT);


                $req = $bdd ->prepare('INSERT INTO registration(`Nom`, `Date de naissance`, `Genre`, `Email`, `Password`) VALUES(?,?,?,?,?)');

                $req->execute(array($nom,$birthday,$genre,$email,$password));   

             }

              while ($donnees = $reponse->fetch())

              {

                echo $donnees['Nom'];

              }

          ?>

          <?php

                $bdd = new PDO('mysql:host=localhost;dbname=test exbook;charset=utf8', 'root', '');

                $hasemailsignup=isset($_POST['emailsignup']);

                if ($hasemailsignup) {

                    $emailsignup = $_POST['emailsignup'];

                    $bdd1=$bdd ->query('SELECT * FROM registration WHERE $emailsignup');

                }

             ?>


查看完整回答
反对 回复 2023-08-26
  • 1 回答
  • 0 关注
  • 78 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信