私はPHPの初心者です。プロジェクトの登録フォームを作成しようとしていますが、すべての検証を可能にしましたが、ここからどこに行かなければならないのでしょうか?フォームをすべて検証し、すべてが真であれば送信します。データベースに登録する登録フォーム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>';
}
}
?>
私はあなたが何を期待しているのか分かりません。これは問題ではなく、コードがありません。関数があるので、検証関数を使ってフォームが送信され、検証されたかどうかを調べるif -then-elseブロックを持つループが必要です。 else文の場合は、エラーメッセージとともに注釈をつけたフォームを返すべきです。検証関数は、エラーを直接エコーするのではなく、フォームに存在する配列変数にそれらを追加する必要があります。検証する場合は関数をtrueに、そうでない場合はfalseを返す必要があります。 – gview
あなたのコードはSQLインジェクションに対して脆弱です。 PHPを修正する方法については、[PHPでのSQLインジェクションを防ぐには?](http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php)をお読みください。 。 –
PHPの 'mysql_ *'関数は廃止予定ですので、使用しないでください。なぜPHPのmysql_ *関数を使うべきではないのですか?](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php)を読んでください。それらを何に置き換えるか。 –