Ich bin ein Anfänger bei PHP und ich versuche, ein Registrierungsformular für ein Projekt zu bauen, habe ich alle Validierungen möglich gemacht, aber ich bin von hier fest, wie es gehen soll, ich will die Formular, um alle folgenden zu validieren dann zu senden, wenn alles wahr ist.Registrierungsformular bei der Datenbank PHP
PHP-Code:
<?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>';
}
}
?>
Ich bin mir nicht sicher, was Sie erwarten. Dies ist kein Problem, es fehlt Code. Sie haben Funktionen, daher benötigen Sie eine Schleife mit einem if -hen-else-Block, der mithilfe Ihrer Validierungsfunktionen überprüft, ob das Formular gesendet und validiert wurde. Für die else-Anweisung sollten Sie Ihr Formular zurückgeben, möglicherweise mit Fehlermeldungen versehen. Ihre Validierungsfunktionen sollten die Fehler nicht direkt widerspiegeln, sondern sollten sie stattdessen zu einer Array-Variablen hinzufügen, die in Ihrem Formular verwendet wird, sofern sie existiert. Die Funktionen müssen wahr, wenn validiert und falsch, wenn nicht. – gview
Ihr Code ist anfällig für SQL-Injection. Bitte lesen Sie [Wie kann ich SQL-Injection in PHP verhindern?] (Http://StackOverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) für Informationen, wie man es beheben kann . –
Die 'mysql_ *' - Funktionen in PHP sind veraltet und sollten nicht verwendet werden. Bitte lesen Sie [Warum sollte ich nicht mysql_ * Funktionen in PHP verwenden?] (Http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php) für Informationen über warum und was sie ersetzen sollen. –