Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法将用户注册详细信息插入数据库_Php - Fatal编程技术网

Php 无法将用户注册详细信息插入数据库

Php 无法将用户注册详细信息插入数据库,php,Php,我不能在注册后将用户插入数据库,我已经做了所有我能做的,但没有成功,我真的需要在这里提供帮助,请我想知道我的脚本中哪里做错了 这是我的注册html脚本: <span class='details' ><h1><bold>ENTER YOUR DETAILS HERE</bold></h1></span> <form action="trotle.php" method="POST">

我不能在注册后将用户插入数据库,我已经做了所有我能做的,但没有成功,我真的需要在这里提供帮助,请我想知道我的脚本中哪里做错了

这是我的注册html脚本:

<span class='details' ><h1><bold>ENTER YOUR DETAILS HERE</bold></h1></span>

  <form action="trotle.php"  method="POST">            


              <div class="form-group" style="margin-left:50px;color:#000099; font-family:times;">
              <input type="hidden" class="form-control" name="id" placeholder="enter your id" required />
                </div><br>


               <div class="form-group" style="margin-left:50px;color:#000099; font-family:times;">

              <label>fullname</label>

                  <input type="text" class="form-control" name="fullname" placeholder="Enter your fullname" required />
                </div><br>

                <div class="form-group" style="margin-left:50px;color:#000099; font-family:times;">

              <label>username</label>

                  <input type="username" class="form-control" name="username" placeholder="Enter your username" required />
                </div><br>



                <div class="form-group" >
                   <label>password</label>

                 <input type="password" class="form-control" name="password"  placeholder="type in your password" required />
                </div>

              <br>
              <div class="form-group" style="margin-left:50px;color:#000099; font-family:times;" />
                <label>email</label>

                  <input type="email" class="form-control" name="email"  placeholder="Enter your email" required />
                </div><br>

                <div class="form-group" style="margin-left:50px;color:#000099; font-family:times;">
                <label>country</label>

                  <input type="text" class="form-control" name="country"  placeholder="Enter your country" required />
                </div><br>


                <div class="form-group" style="margin-left:50px;color:#000099; font-family:times;">
                <label>phone number</label>

                  <input type="number" class="form-control" name="phonenumber"  placeholder="Enter your phonenumber" required />
                </div><br>

                <div class="form-group" style="margin-left:50px;color:#000099; font-family:times;">
                <label>Alternative phone number</label>

                  <input type="number" class="form-control" name="alternativephonenumber"  placeholder="Enter your alternative phonenumber" required />
                </div><br>


              <div class="form-group"  style="margin-left:50px;color:#000099; font-family:times;">
                <label>referrer</label>
                  <input type="text" class="form-control" name="referrer" placeholder="type in who referred you here" required />
                </div><br>


              <div class="form-group"  style="margin-left:50px;color:#000099; font-family:times;"">
                <label>paymentmode</label>

                  <select name="paymentmode" class="form-control" required />
<option value="">Select your paymentmode</option>
<option value="bitcoin">bitcoin</option>
<option value="perfectmoney">perfectmoney</option>
<option value="naira">naira</option>

                  </select>

                </div>
                <br>

           <div class="form-group" style='text-align: center;padding-top: 30px;'>

              <input type="checkbox" style=" vertical-align: sub; margin-left: 120px;margin-bottom: -15px; " required><a href="homepage.php">  I agree with </a><a href='../terms' target="_blank">Terms and conditions</a><br>
              <input type="submit" class="btn btn-success" name="submit_signup" value='REGISTER' style="margin-left:145px;border:none; margin-bottom: -10px; background-color: green; font-weight: bold;border-style: dotted;">
              <a href="trotle.php"><input type="post" class="btn btn-success" value='LOGIN' style="margin-left:140px;background-color: green; font-weight: bold;border-style: dotted; border-color:black ;padding: 5px; size:20px; margin-bottom:-10px;"></a>
              </div>
              <br>
              <?php


              ?>
              </form>
在此处输入您的详细信息

全名
用户名
密码
电子邮件
国家
电话号码
备用电话号码
推荐人

像这样更改PHP脚本并尝试,如果没有得到错误,可能是验证错误

$id=$fullname=$username=$password=$email=$country= $phonenumber=$alternativephonenumber=$referrer=$paymentmode="";
if(isset($_POST['submit_signup']))  //simplified validation 
{  

if(isset($_POST['id'])){
$id= $_POST['id'];  

}

if(isset($_POST['fullname'])){
$fullname= $_POST['fullname'];  
}
else{
    echo 'please enter your fullname';
}

if(isset($_POST['username'])){
$username= $_POST['username'];  
}
else{
    echo 'enter your username';
}

if(isset($_POST['password'])){
$password= $_POST['password'];  
}
else{
    echo 'enter your password';
}

if(isset($_POST['email'])){
$email= $_POST['email'];    
}
else{
    echo 'enter your email';
}

if(isset($_POST['country'])){
$country= $_POST['country'];    
}
else{
    echo 'enter your country';
}

if(isset($_POST['phonenumber'])){
$phonenumber= $_POST['phonenumber'];    
}
else{
    echo 'enter your phonenumber';
}

if(isset($_POST['alternativephonenumber'])){
$alternativephonenumber= $_POST['alternativephonenumber'];  
}
else{
    echo 'enter your alternativephonenumber';
}

if(isset($_POST['referrer'])){
$referrer= $_POST['referrer'];  
}
else{
    echo 'enter your referrer';
}

if(isset($_POST['paymentmode'])){
$paymentmode= $_POST['paymentmode'];    
}
else{var_dump($_POST['id']);
    echo 'enter your paymentmode';
}
}
    else {
        echo 'nah';

    }

    $serverhost='localhost';
$serverdb='charles';
$serveruser='root';
$serverpassword='';




try{ 
    $connect= new PDO("mysql:host=$serverhost;dbname=$serverdb;" , $serveruser, $serverpassword);
 $connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
     } 
      catch( PDOException $e)
        {
            echo $e->getmessage();
        }

     if($connect){
        echo 'database successful!';
     }


$sql="INSERT INTO users(id, fullname, username, password, email, country, phonenumber, alternativephonenumber, referrer, paymentmode)VALUES(:id, :fullname, :username, :password, :email, :country, :phonenumber, :alternativephonenumber, :referrer, :paymentmode)";

$query=$connect->prepare($sql);
$query->bindParam(':id', $id, PDO::PARAM_INT);
$query->bindParam(':fullname', $fullname, PDO::PARAM_STR);
$query->bindParam(':username', $username, PDO::PARAM_STR);
$query->bindParam(':password', $password, PDO::PARAM_STR);
$query->bindParam(':email', $email, PDO::PARAM_STR);
$query->bindParam(':country', $country, PDO::PARAM_STR);
$query->bindParam(':phonenumber', $phonenumber, PDO::PARAM_INT);
$query->bindParam(':alternativephonenumber', $alternativephonenumber, PDO::PARAM_INT);
$query->bindParam(':referrer', $referrer, PDO::PARAM_STR);
$query->bindParam(':paymentmode', $paymentmode, PDO::PARAM_STR);
$query->execute();
所作的修改:

  • 简化了验证
  • 删除了不必要的变量赋值,如果您使用的是
    isset
    ,则不要将其赋值到
    isset
  • 使用数据库名称的变量更新数据库名称

  • 最后一个建议是,如果要回显验证错误以进行测试,则可以,否则请保留一个变量并将其回显到正确的位置。并将插入查询代码块放入验证中。

    使用css,使用类、ID或父>子选择器等指定样式,而不是不可管理的内联样式

    DIV元素不使用标记末尾的
    /
    (请参阅原始代码中的电子邮件部分)

    没有输入类型
    POST
    )-可能一个按钮会更好

    id
    字段隐藏在HTML中,但db可能为此使用了一个
    自动增量
    字段(主键),因此无需发送此值-用户在提交表单之前不会知道这一点,也不会阻止他们使用任何可能需要的数字

    <style>
        .form-group{margin-left:50px;color:#000099; font-family:times;}
        .form-control{}
        input[type='checkbox']{vertical-align: sub; margin-left: 120px;margin-bottom: -15px;}
        input[type='submit']{margin-left:145px;border:none; margin-bottom: -10px; background-color: green; font-weight: bold;border-style: dotted;}
        input[type='button']{margin-left:140px;background-color: green; font-weight: bold;border-style: dotted; border-color:black ;padding: 5px; size:20px; margin-bottom:-10px;}
    </style>
    
    
    <span class='details' >
       <h1>
          <bold>ENTER YOUR DETAILS HERE</bold>
       </h1>
    </span>
    
    <form action='trotle.php' method='POST'>
    
       <!-- HOW does a user enter a value here if it is HIDDEN??? Removed `required` attribute -->
       <div class='form-group'>
          <input type='hidden' class='form-control' name='id' placeholder='enter your id' />
       </div>
       <br>
    
       <div class='form-group'>
          <label>fullname</label>
          <input type='text' class='form-control' name='fullname' placeholder='Enter your fullname' required />
       </div>
       <br>
       <div class='form-group'>
          <label>username</label>
          <input type='username' class='form-control' name='username' placeholder='Enter your username' required />
       </div>
       <br>
       <div class='form-group' >
          <label>password</label>
          <input type='password' class='form-control' name='password' placeholder='type in your password' required />
       </div>
       <br>
       <div class='form-group'>
          <label>email</label>
          <input type='email' class='form-control' name='email'  placeholder='Enter your email' required />
       </div>
       <br>
       <div class='form-group'>
          <label>country</label>
          <input type='text' class='form-control' name='country' placeholder='Enter your country' required />
       </div>
       <br>
       <div class='form-group'>
          <label>phone number</label>
          <input type='number' class='form-control' name='phonenumber' placeholder='Enter your phonenumber' required />
       </div>
       <br>
       <div class='form-group'>
          <label>Alternative phone number</label>
          <input type='number' class='form-control' name='alternativephonenumber' placeholder='Enter your alternative phonenumber' required />
       </div>
       <br>
       <div class='form-group'>
          <label>referrer</label>
          <input type='text' class='form-control' name='referrer' placeholder='type in who referred you here' required />
       </div>
       <br>
       <div class='form-group'>
          <label>paymentmode</label>
          <select name='paymentmode' class='form-control' required />
             <option value=''>Select your paymentmode</option>
             <option value='bitcoin'>bitcoin</option>
             <option value='perfectmoney'>perfectmoney</option>
             <option value='naira'>naira</option>
          </select>
       </div>
       <br>
       <div class='form-group'>
          <!-- this checkbox needs a name!! Assign name `terms` -->
          <input type='checkbox' name='terms' required />
          <a href='homepage.php'>  I agree with </a><a href='../terms' target='_blank'>Terms and conditions</a>
          <br>
          <input type='submit' class='btn btn-success' name='submit_signup' value='REGISTER' />
          <a href='trotle.php'>
            <input type='button' class='btn btn-success' value='LOGIN' />
          </a>
       </div>
       <br>
    </form>
    
    
    
    
    
    <?php
    
        if( $_SERVER['REQUEST_METHOD']=='POST' && isset( $_POST['submit_signup'] ) ){
            /* id should be an auto-increment field in the db */
            $id = isset( $_POST['id'] ) ? $_POST['id'] : false;
            $fullname = isset( $_POST['fullname'] ) ? $_POST['fullname'] : false;
            $username = isset( $_POST['username'] ) ? $_POST['username'] : false;
            $password = isset( $_POST['password'] ) ? $_POST['password'] : false;
            $email = isset( $_POST['email'] ) ? $_POST['email'] : false;
            $country = isset( $_POST['country'] ) ? $_POST['country'] : false;
            $phonenumber = isset( $_POST['phonenumber'] ) ? $_POST['phonenumber'] : false;
            $alternativephonenumber = isset( $_POST['alternativephonenumber'] ) ? $_POST['alternativephonenumber'] : false;
            $referrer = isset( $_POST['referrer'] ) ? $_POST['referrer'] : false;
            $paymentmode = isset( $_POST['paymentmode'] ) ? $_POST['paymentmode'] : false;
    
    
    
    
            $errors=array();
            if( !$fullname )$errors[]='please enter your fullname';
            if( !$username )$errors[]='enter your username';
            if( !$password )$errors[]='enter your password';
            if( !$email )$errors[]='enter your email';
            if( !$country )$errors[]='enter your country';
            if( !$phonenumber )$errors[]='enter your phonenumber';
            if( !$alternativephonenumber )$errors[]='enter your alternativephonenumber';
            if( !$referrer )$errors[]='enter your referrer';
            if( !$paymentmode )$errors[]='enter your paymentmode';
    
    
            if( !empty( $errors ) ){
    
                /* display any errors with form submission */
                foreach( $errors as $error ){
                    echo $error . '<br />';
                }
    
            } else {
    
                try{
    
                    $serverhost='localhost';
                    $serverdb='charles';
                    $serveruser='root';
                    $serverpassword='';
    
    
                    $connect=new PDO("mysql:host={$serverhost};dbname={$serverdb};" , $serveruser, $serverpassword);
                    $connect->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
    
    
                    if( $connect ){
    
                        $sql="insert into `users`
                                ( `fullname`, `username`, `password`, `email`, `country`, `phonenumber`, `alternativephonenumber`, `referrer`, `paymentmode` )
                                values
                                ( :fullname, :username, :password, :email, :country, :phonenumber, :alternativephonenumber, :referrer, :paymentmode )";
    
                        $stmt=$connect->prepare( $sql );
    
                        if( $stmt ){
    
                            $stmt->bindParam(':fullname', $fullname, PDO::PARAM_STR);
                            $stmt->bindParam(':username', $username, PDO::PARAM_STR);
                            $stmt->bindParam(':password', $password, PDO::PARAM_STR);
                            $stmt->bindParam(':email', $email, PDO::PARAM_STR);
                            $stmt->bindParam(':country', $country, PDO::PARAM_STR);
                            $stmt->bindParam(':phonenumber', $phonenumber );
                            $stmt->bindParam(':alternativephonenumber', $alternativephonenumber );
                            $stmt->bindParam(':referrer', $referrer, PDO::PARAM_STR);
                            $stmt->bindParam(':paymentmode', $paymentmode, PDO::PARAM_STR);
    
                            $result = $stmt->execute();
                            echo $result ? 'success' : 'fail';
                        }
                    }
                } catch( PDOException $e ) {
                    echo $e->getMessage();
                }
            }
        }
    
    ?>
    
    
    .form组{左边距:50px;颜色:#000099;字体系列:times;}
    .form控件{}
    输入[type='checkbox']{垂直对齐:子;左侧边距:120px;底部边距:-15px;}
    输入[type='submit']{左边距:145px;边框:无;边框底部:-10px;背景色:绿色;字体粗体;边框样式:虚线;}
    输入[type='button']{左边距:140px;背景色:绿色;字体粗体;边框样式:虚线;边框颜色:黑色;填充:5px;大小:20px;边距底部:-10px;}
    在此处输入您的详细信息
    
    全名
    用户名
    密码
    电子邮件
    国家
    电话号码
    备用电话号码
    推荐人
    付款方式 选择您的付款方式 比特币 完美货币 奈拉



    执行时有错误吗?
    id
    字段是隐藏的,因此用户如何输入值?@kuru,执行时没有错误execution@RamRaider,id字段不是由用户输入的,请记住数据库更新id由自己完成我已经完成了您建议的所有操作,但仍然没有插入到数据库中,我真的很困惑,如果您使用id作为自动增量,请从插入查询中删除其他事件和trythanks@Ramraider以获得您的帮助,但仍然没有插入,尽管它显示了一条成功消息,但没有插入用户,我下一步将做什么,我想弄清楚这一点,并知道它不,它显示的消息是'成功',正如您在脚本中指出的,如果它成功了,但没有insertionI只是为上述设置了一个完整的端到端测试(只进行了一些小的编辑以适应数据库),它工作得很好。多亏了大家,我已经解决了这个问题,我现在可以将用户插入到我的数据库中,非常感谢@RamRaider为我提供了详细的帮助。爱你的家伙谢谢大家,我已经解决了这个问题,我现在可以将用户插入我的数据库,特别感谢@RamRaider为我提供了详细的帮助。我爱你们
    <style>
        .form-group{margin-left:50px;color:#000099; font-family:times;}
        .form-control{}
        input[type='checkbox']{vertical-align: sub; margin-left: 120px;margin-bottom: -15px;}
        input[type='submit']{margin-left:145px;border:none; margin-bottom: -10px; background-color: green; font-weight: bold;border-style: dotted;}
        input[type='button']{margin-left:140px;background-color: green; font-weight: bold;border-style: dotted; border-color:black ;padding: 5px; size:20px; margin-bottom:-10px;}
    </style>
    
    
    <span class='details' >
       <h1>
          <bold>ENTER YOUR DETAILS HERE</bold>
       </h1>
    </span>
    
    <form action='trotle.php' method='POST'>
    
       <!-- HOW does a user enter a value here if it is HIDDEN??? Removed `required` attribute -->
       <div class='form-group'>
          <input type='hidden' class='form-control' name='id' placeholder='enter your id' />
       </div>
       <br>
    
       <div class='form-group'>
          <label>fullname</label>
          <input type='text' class='form-control' name='fullname' placeholder='Enter your fullname' required />
       </div>
       <br>
       <div class='form-group'>
          <label>username</label>
          <input type='username' class='form-control' name='username' placeholder='Enter your username' required />
       </div>
       <br>
       <div class='form-group' >
          <label>password</label>
          <input type='password' class='form-control' name='password' placeholder='type in your password' required />
       </div>
       <br>
       <div class='form-group'>
          <label>email</label>
          <input type='email' class='form-control' name='email'  placeholder='Enter your email' required />
       </div>
       <br>
       <div class='form-group'>
          <label>country</label>
          <input type='text' class='form-control' name='country' placeholder='Enter your country' required />
       </div>
       <br>
       <div class='form-group'>
          <label>phone number</label>
          <input type='number' class='form-control' name='phonenumber' placeholder='Enter your phonenumber' required />
       </div>
       <br>
       <div class='form-group'>
          <label>Alternative phone number</label>
          <input type='number' class='form-control' name='alternativephonenumber' placeholder='Enter your alternative phonenumber' required />
       </div>
       <br>
       <div class='form-group'>
          <label>referrer</label>
          <input type='text' class='form-control' name='referrer' placeholder='type in who referred you here' required />
       </div>
       <br>
       <div class='form-group'>
          <label>paymentmode</label>
          <select name='paymentmode' class='form-control' required />
             <option value=''>Select your paymentmode</option>
             <option value='bitcoin'>bitcoin</option>
             <option value='perfectmoney'>perfectmoney</option>
             <option value='naira'>naira</option>
          </select>
       </div>
       <br>
       <div class='form-group'>
          <!-- this checkbox needs a name!! Assign name `terms` -->
          <input type='checkbox' name='terms' required />
          <a href='homepage.php'>  I agree with </a><a href='../terms' target='_blank'>Terms and conditions</a>
          <br>
          <input type='submit' class='btn btn-success' name='submit_signup' value='REGISTER' />
          <a href='trotle.php'>
            <input type='button' class='btn btn-success' value='LOGIN' />
          </a>
       </div>
       <br>
    </form>
    
    
    
    
    
    <?php
    
        if( $_SERVER['REQUEST_METHOD']=='POST' && isset( $_POST['submit_signup'] ) ){
            /* id should be an auto-increment field in the db */
            $id = isset( $_POST['id'] ) ? $_POST['id'] : false;
            $fullname = isset( $_POST['fullname'] ) ? $_POST['fullname'] : false;
            $username = isset( $_POST['username'] ) ? $_POST['username'] : false;
            $password = isset( $_POST['password'] ) ? $_POST['password'] : false;
            $email = isset( $_POST['email'] ) ? $_POST['email'] : false;
            $country = isset( $_POST['country'] ) ? $_POST['country'] : false;
            $phonenumber = isset( $_POST['phonenumber'] ) ? $_POST['phonenumber'] : false;
            $alternativephonenumber = isset( $_POST['alternativephonenumber'] ) ? $_POST['alternativephonenumber'] : false;
            $referrer = isset( $_POST['referrer'] ) ? $_POST['referrer'] : false;
            $paymentmode = isset( $_POST['paymentmode'] ) ? $_POST['paymentmode'] : false;
    
    
    
    
            $errors=array();
            if( !$fullname )$errors[]='please enter your fullname';
            if( !$username )$errors[]='enter your username';
            if( !$password )$errors[]='enter your password';
            if( !$email )$errors[]='enter your email';
            if( !$country )$errors[]='enter your country';
            if( !$phonenumber )$errors[]='enter your phonenumber';
            if( !$alternativephonenumber )$errors[]='enter your alternativephonenumber';
            if( !$referrer )$errors[]='enter your referrer';
            if( !$paymentmode )$errors[]='enter your paymentmode';
    
    
            if( !empty( $errors ) ){
    
                /* display any errors with form submission */
                foreach( $errors as $error ){
                    echo $error . '<br />';
                }
    
            } else {
    
                try{
    
                    $serverhost='localhost';
                    $serverdb='charles';
                    $serveruser='root';
                    $serverpassword='';
    
    
                    $connect=new PDO("mysql:host={$serverhost};dbname={$serverdb};" , $serveruser, $serverpassword);
                    $connect->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
    
    
                    if( $connect ){
    
                        $sql="insert into `users`
                                ( `fullname`, `username`, `password`, `email`, `country`, `phonenumber`, `alternativephonenumber`, `referrer`, `paymentmode` )
                                values
                                ( :fullname, :username, :password, :email, :country, :phonenumber, :alternativephonenumber, :referrer, :paymentmode )";
    
                        $stmt=$connect->prepare( $sql );
    
                        if( $stmt ){
    
                            $stmt->bindParam(':fullname', $fullname, PDO::PARAM_STR);
                            $stmt->bindParam(':username', $username, PDO::PARAM_STR);
                            $stmt->bindParam(':password', $password, PDO::PARAM_STR);
                            $stmt->bindParam(':email', $email, PDO::PARAM_STR);
                            $stmt->bindParam(':country', $country, PDO::PARAM_STR);
                            $stmt->bindParam(':phonenumber', $phonenumber );
                            $stmt->bindParam(':alternativephonenumber', $alternativephonenumber );
                            $stmt->bindParam(':referrer', $referrer, PDO::PARAM_STR);
                            $stmt->bindParam(':paymentmode', $paymentmode, PDO::PARAM_STR);
    
                            $result = $stmt->execute();
                            echo $result ? 'success' : 'fail';
                        }
                    }
                } catch( PDOException $e ) {
                    echo $e->getMessage();
                }
            }
        }
    
    ?>