注册表单提交到数据库PHP

注册表单提交到数据库PHP,php,html,mysql,forms,Php,Html,Mysql,Forms,我是一名PHP初学者,我正在尝试为一个项目构建一个注册表单,我使所有的验证都成为可能,但是我被困在这里,因为它应该去哪里,我希望表单验证以下所有内容,然后提交,如果都是真的 PHP代码: <?php //register form v1.0 error_reporting(0); //declares register form $formFields = array('reg-username' => 'اسم المستخدم', 'reg-email' =&

我是一名PHP初学者,我正在尝试为一个项目构建一个注册表单,我使所有的验证都成为可能,但是我被困在这里,因为它应该去哪里,我希望表单验证以下所有内容,然后提交,如果都是真的

PHP代码:

<?php

//register form v1.0

error_reporting(0);

//declares register form


$formFields = array('reg-username' => 'اسم المستخدم', 
    'reg-email' => 'البريد الإلكتروني', 
    'reg-password' => 'كلمة المرور', 
    'reg-confirmPassword' => 'تأكيد كلمة المرور');




function checkBlank(){

global $formFields;


//now I want the browser to check each field if its empty

foreach($formFields as $fieldName => $fieldRealName){
    if(empty($_POST[$fieldName])){
        echo '<ul class="ErrorMessage"><li>لم تدخل '. $fieldRealName .' * </li></ul>';
        echo '<style>.'. $fieldName .'{
            border-color: red;
        }
        .'. $fieldName .'::-webkit-input-placeholder {
   color: red;
}
        .'. $fieldName .'-h{
            color: red;
        }
        #asetrik{
            display: none;
        }
        </style>';
}
}

}



//blank fields have been checked
function checkPass(){

        $regPassword = $_POST['reg-password'];
        $regConfPassword = $_POST['reg-confirmPassword'];



    if($regPassword !== $regConfPassword){
        echo '<ul class="ErrorMessage"><li>كلمات المرور غير متطابقة *</li></ul>';
    } //if the fields are not empty i want it to check if the passwords match
    }   


    function checkEmail(){



        $regEmail = $_POST['reg-email'];

        if (!filter_var($regEmail, FILTER_VALIDATE_EMAIL)) {

                echo '<ul class="ErrorMessage"><li>البريد الإلكتروني المدخل غير صحيح *</li></ul>';
    }

    function checkName(){
        $regUsername = $_POST['reg-username'];
if ( !preg_match('/^[A-Za-z][A-Za-z0-9]{5,31}$/', $regUsername)){
  echo '<ul class="ErrorMessage"><li>اسم المستخدم يجب أن يبدأ بحرف *</li></ul>'; 
}
    }



function checkExist(){

        $regUsername = $_POST['reg-username'];
        $regEmail = $_POST['reg-email'];
        $connectToDB  = mysql_connect('localhost', 'root', '') or die(mysql_error());
        $selectDB = mysql_select_db('supermazad') or die(mysql_error());
        $checkIfExist = mysql_query("SELECT * FROM users WHERE username LIKE '".$regUsername."' OR email LIKE '".$regEmail."' ");


        if(mysql_num_rows($checkIfExist) > 0){
        echo '<ul class="ErrorMessage"><li>اسم المستخدم/ البريد الإلكتروني موجود *</li></ul>';

}
}















?>

请参阅我的评论。有不同的方式来处理提交,通常页面上有多个表单。假设您的表单有一个提交按钮

<input type="submit" name="submit-form" value="Done">

为什么不使用jquery验证插件?这是一个很好的选择


检查此项:

我知道您是php新手,但您必须记住,所有后端代码都必须得到保护。这就是为什么你需要做很多检查。此外,在处理数据库时,您需要保护代码不被注入。现在你会发现一些人告诉你用javascript来做,不要听他们的

任何人都可以在不使用js代码的情况下进行post查询,因此所有js检查都将被忽略。当然,在发送到服务器之前,您可以在浏览器中创建一层签入,但您也必须在服务器中进行签入

因此,当您检查发送到服务器的元素时,您必须检查它是否存在
(!=null)
,这可以通过函数
isset
轻松实现:

    if ( isset($_POST['reg-username'],$_POST['reg-email'],$_POST['reg-password'], $_POST['reg-confirmPassword'] ){
         // Further checks
    }else{
         // call a function that will return an error message
         error($PARAMETERS_NOT_SET)
    }
在数据库查询中使用客户机参数时,必须记住的第二件事是检查是否有注入。这可能有点痛苦,这就是为什么您必须使用:


PS:在stackoverflow中看到阿拉伯语真是太酷了。

我不知道你在期待什么。这不是问题,它缺少代码。您有函数,因此需要一个循环,该循环具有if-then-else块,该块使用验证函数检查表单是否已提交和验证。对于else语句,您应该返回表单,可能带有错误消息的注释。验证函数不应直接回显错误,而应将它们添加到表单中使用的数组变量(如果存在)。函数需要返回true(如果已验证),否则返回false。您的代码容易受到SQL注入的攻击。有关如何修复它的信息,请阅读。PHP中的
mysql.*
函数已弃用,不应使用。请阅读以获取有关为什么以及用什么替换它们的信息。
    if ( isset($_POST['reg-username'],$_POST['reg-email'],$_POST['reg-password'], $_POST['reg-confirmPassword'] ){
         // Further checks
    }else{
         // call a function that will return an error message
         error($PARAMETERS_NOT_SET)
    }
$statement ="SELECT * FROM users WHERE username LIKE :username OR email LIKE :email ";
$sth = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$sth->execute(array("username"=>$regUsername,"email"=>$regEmail));
$resultList= $sth->fetchAll();