مرحبا أصدقائي :
أحاول ايجاد كود يقوم بالتأكد من وجود اسم المستخدم مثلا او البريد الالكتروني داخل قاعدة بيانات الموقع, وإن وجد يقوم بمنع الزائر من استخدام ذلك الاسم.
function checkUser($name) {
$sql = "SELECT user_name FROM users WHERE user_name = '" . $name . "'";
$result = mysql_query($sql);
if ($result) {
if (mysql_num_rows($result) > 0) {
return false;
} else {
return true;
}
} else {
return false;
}
}
هذا الفانكشن كما هو أخذته من أحد المواقع وقمت بتجربته قبل قليل, وقمت بتصفية قاعدة البيانات, ثم قمت بالتجربة أول مرة وتمت بنجاح دون أية مشاكل..
لكن عندما قمت بالتجربة للمرة الثانية لم تنجح وحاولت الكرة عدة مرات لكن جميع المحاولات باءت بالفشل.
هل من اقتراحات, ما رأيكم؟
هذا الكود يقوم بعملية شرطية للتأكد من حالة التسجيل أقوم باستدعاء هذا الكود بعد عملية التسجيل
if ($username && $pass1 && $pass2 && $email) {
if (checkUser($username)) {
if (checkPass($pass1, $pass2)) {
if (checkValidEmail($email) && checkEmail($email)) {
$result = insertUserData($username, $pass1, $email);
if ($result) {
get_title('succeed');
echo '<p align=\'center\'>';
echo ' you have done register<br>';
linking('index.php', 'please sign in');
echo '</p>';
get_footer();
} else {
get_title('error');
echo '<p align=\'right\'>';
echo ' there is error ,, please try again <br>';
linking('register.php', 'go back');
echo '</p>';
get_footer();
exit;
}
} else {
get_title('error');
echo '<p align=\'right\'>';
echo 'please be sure about your e-mail , or this e-mail registered <br>';
linking('register.php', 'go back');
echo '</p>';
get_footer();
exit;
}
} else {
get_title('error');
echo '<p align=\'right\'>';
echo ' please be sure about your password <br>';
linking('register.php', 'go back');
echo '</p>';
get_footer();
exit;
}
} else {
get_title('error');
echo '<p align=\'right\'>';
echo ' username is registered <br>';
linking('register.php', 'go back');
echo '</p>';
get_footer();
exit;
}
} else {
get_title('error');
echo '<p align=\'right\'>';
echo ' dear visitor , you have to whrite in all fields <br>';
linking('register.php', 'go back');
echo '</p>';
get_footer();
exit;
}
هذه التي بالأسفل الأكواد التي ربطتها بالحالة الشرطية في الأعلى
function checkPass($p1, $p2) {
if ($p1 == $p2) {
return true;
} else {
return false;
}
}
function checkUser($name) {
$sql = "SELECT user_name FROM users WHERE user_name = '" . $name . "'";
$result = mysql_query($sql);
if ($result) {
if (mysql_num_rows($result) > 0) {
return false;
} else {
return true;
}
} else {
return false;
}
}
function checkEmail($email) {
$sql = "SELECT user_email FROM users WHERE user_email = '" . $email . "'";
$result = mysql_query($sql);
if ($result) {
if (mysql_num_rows($result) > 0) {
return false;
} else {
return true;
}
} else {
return false;
}
}
function checkValidEmail($email) {
$exp = '^[a-zA-Z0-9_\-]+@[a-zA-Z0-9_]+\.[a-zA-Z0-9]+$';
if (ereg($exp, $email)) {
return true;
} else {
return false;
}
}
function insertUserData($name, $pass, $email) {
$sql = "INSERT INTO users VALUES ( '' , '" . addslashes($name) . "' , '" . addslashes(md5($pass)) . "' , '" . addslashes($email) . "' )";
$result = mysql_query($sql);
if ($result) {
return true;
} else {
return false;
}
}
والبرنامج مربوط مع قاعدة بيانات أقوم باستدعائها في كل مرة من ملف سميته config.php
$dbName = 'weallte_ols';
$dbUser = 'weallte_ols';
$dbPass = 'marlboro04030049179red';
$dbServer = 'localhost';
$conn = mysql_connect($dbServer, $dbUser, $dbPass) or die (mysql_error ());
if (!$conn) {
echo "لا يمكن الاتصال بقاعدة البيانات";
exit;
}
$select = mysql_select_db($dbName) or die (mysql_error ());
if (!$select) {
echo "لا يمكن اختيار قاعدة البيانات";
exit;
}
أرجو ألا أكون أطلت عليكم, وأجد الاجابة على سؤالي, شكرا لكم
التعليقات