اريد ان اعمل صفحة لا يسمح بالدخول اليها الا للأعضاء المسجلين من قبل وموجود بياناتهم فى جدول اسمه user موجود به ال username و password اريد ها عاااااااااااااااااااجل
نظام log in
اسف : المنتدى مش بيقدم خدمة توصيل الأكواد
لكن انت فى موضوعك شرحت حل مشكلتك و ممكن تعمله بسهولة إن شاء الله
يا جماعة انا عايز حد يساعدنى بالكود لأنى كل ما اعمل واحد ميشتغلش
config.php
<?php $username = 'admin'; $password = 'pass'; ?>
login.php
<?php
session_start();
if($_SESSION['admin']) exit;
if(isset($_POST['user_pw'])){
require('config.php'); // require when needed only
if($_POST['user_pw'] == $password && $_POST['user_un'] == $username){
$_SESSION['admin'] = true; // the action
require('done.htm');
exit;
}
}
?>
<html dir="rtl">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>ÊÓÌíá ÏÎæá</title>
<link href="css.css" rel="stylesheet" type="text/css">
</head>
<body>
<div class="announce">
<div>ãä ÝÖáß Þã ÈÊÓÌíá ÇáÏÎæá ÇæáÇ</div>
</div>
<form action="login.php" method="post">
<fieldset class="fieldset">
<legend> ÊÓÌíá ÏÎæá </legend>
<table width="460" align="center">
<tr>
<td>
ÇÓã ÇáãÓÊÎÏã
</td>
<td><input type="text" name="user_un" dir="ltr"></td>
</tr>
<tr>
<td>
ßáãÉ ÇáãÑæÑ
</td>
<td><input type="password" name="user_pw" dir="ltr"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="ÇÑÓÜÜÜÜÜÜÜÇá"></td>
</tr>
</table>
</fieldset>
</form>
</body>
</html>
<?php
exit;
?>اريد ان اعدل ملف ال login.php بدلا ما يقتصر على اسم مستخدم واحد وباسورد واحد اريده ان يتفحص ذلك من قاعدة بيانات حتى يتاح لى اضافة العديد من المستخدمين
اولا اعمل جدول فى قاعدة البيانات اسمه users مثلا و فيه الأعمدة دى
- id
- user
- pass
CREATE TABLE users ( id int unsigned not null auto_increment, user varchar(25) not null, pass varchar(50) not null, PRIMARY KEY(id) )
دلوقتى عندك الجدول الى فيه بيانات دخول كل عضو
______________
دة جزء التأكد من بيانات العضو او الشخص الى عايز يسجل دخول
بس انت عليك طبعا بقية التعديلات والتحسين فيه
$con = mysql_pconnect('localhost','root','');
mysql_select_db('database_name') or die('failed to connect');
$sql = 'SELECT * FROM users
WHERE user=\''.$_POST['user_un'].'\' AND pass=\''.$_POST['user_pw'];
$result = mysql_query($sql);
if (mysql_num_rows($result))
{
//user is loged in
}
else
(
//wrong username or password
}اخى الغالى جربت الكود وما نفع وين احط هالكود وانا عامل قاعدة البيانات وعدلت كل حاجة وما يشتغل ممكن تقولى وين احط هالكود
استبدل الكود التالي بكود الأخ shreef وتأكد من مطابقة المتغيرات واسماء الحقول وقاعدة البيانات والجداول لما في برنامجك
<?php
session_start();
if($_SESSION['admin']) exit;
if(isset($_POST['user_pw'])){
require('config.php'); // require when needed only
if($_POST['user_pw'] == $password && $_POST['user_un'] == $username){
$_SESSION['admin'] = true; // the action
require('done.htm');
exit;
}
}
?>تم تعديل هذه المشاركة بواسطة Hazeim في 23 سبتمبر 2005 في 08:28
اخى الغالى هناك مشكلتين تواجهنى الاولى ان كود الاخ شريف واضع به الاتصال بقاعدة البيانات فى الكود وانا اريده ان يكون فى ملف config.php كيف اعملها ؟؟
ثانيا الكود به مشكلة عندما استبدله كيف ما قلتلى ما يشتغل ويطلع لى مكتوب فى صفحة ال login لما بفتحها بالمتصفحة وعندما اضع الكود بين
<?php
?>
يقولى فى مشكلة فى السطر اللى فيه العلامة ده { انا بصراحه احترت عايز كود يشتغل معاى ارجو المساعدة
وشكرا جزيلاً
يا أخي الكريم إذا كنت تريد الاتصال بقاعدة البيانات من ملف config.php فبسيطة ضع أوال سطرين من الكود في نهاية هذا الملف, أما مشكلة { فيمكن أن تنتج عن نسان أحد الأقواس أو العلامة ; في أحد الأسطر رجاء راجع الكود بدقة واستخدام محرر جيد يتيح لك معرفة قوس الإغلاق للقوس المفتوح أو يدرج الأقواس بنفسه. وحاول يا أخي التجربة بنفسك الأمر بسيط وأنت قمت به بالفعل وإذا كنت على غير دراية بـmysql أو غير واثق من معلوماتك فيها فراجع أحد المراجع لعلك تستغيد منها , بالتوفيق
اخى الكريم هذا هو ملف login.php
اقتباس<?php$con = mysql_pconnect('localhost','computec_a','a');
mysql_select_db('computec_des4soft') or die('failed to connect');
$sql = 'SELECT * FROM users
WHERE user=\'username'.$_POST['user_un'].'\' AND pass=\'password'.$_POST['user_pw'];
$result = mysql_query($sql);
if (mysql_num_rows($result))
{
//user is loged in
}
else
{
//wrong username or password
}
?>
<html dir="rtl">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>ÊÓÌíá ÏÎæá</title>
<link href="css.css" rel="stylesheet" type="text/css">
</head>
<body>
<div class="announce">
<div>ãä ÝÖáß Þã ÈÊÓÌíá ÇáÏÎæá ÇæáÇ</div>
</div>
<form action="login.php" method="post">
<fieldset class="fieldset">
<legend> ÊÓÌíá ÏÎæá </legend>
<table width="460" align="center">
<tr>
<td>
ÇÓã ÇáãÓÊÎÏã
</td>
<td><input type="text" name="user_un" dir="ltr"></td>
</tr>
<tr>
<td>
ßáãÉ ÇáãÑæÑ
</td>
<td><input type="password" name="user_pw" dir="ltr"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="ÇÑÓÜÜÜÜÜÜÜÇá"></td>
</tr>
</table>
</fieldset>
</form>
</body>
</html>
<?php
exit;
?>
بيعطينى هذا الخطأ
اقتباسWarning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/computec/public_html/des4soft/bad_user/login.php on line 10
ايش الخطأ وأيش الحل معلش بتعبكم معاى بس ارجو المساعدة وتقولولى ايش الخطأ
واى كود اضعه فى ملف ال config وايش اضعه بدلا منه فى ملف ال login وشكرا على المساعدة
طيب بص انا غيرتلك شوية فى الكود عشان تبانلك الغلطة لو انت عملتها تانى رغم انى عرفتها خلاص
بس الأحسن تعمل التالى :
حط الكود دة فى ملف مثلا و سميه check.php وغير الـ action فى ملف login.php
و بعد كدة اطلب ملف login.php و شوف الناتج
<?php
$con = mysql_pconnect('localhost','root','');
mysql_select_db('database_name') or die('failed to connect');
if (!isset($_POST['user_un']) || !isset($_POST['user_pw']))
{
print 'you forgot to add somthing dear ..';
exit();
}
$sql = 'SELECT * FROM users
WHERE user=\''.$_POST['user_un'].'\'
AND pass=\''.$_POST['user_pw'];
$result = mysql_query($sql);
if (mysql_num_rows($result))
{
//user is loged in
print 'hollay , you are logged in sweety';
}
else
(
//wrong username or password
print 'sorry, wrong password or username';
}
?>
عموما الغلطة ان انت استخدمت الكود غلط لمة حتيطه فى نفس الملف من فوق كدة من غير الأضافات الازمة
بص للملف كدة من الأول و ركز معاه هو بيعمل ايه خطوة خطوة وحس بيه وحتفهم الى بيحصل إن شاء الله :)
بصراحة انا مش فاهم حاجة انا لما عملت اللى قلتلى عليه بقى يدخل باى يوزر نيم وباسسورد حتى لو مش موجود فى قاعدة البيانات ارجوك حللى الفزورة وقولى الحل
هذا الموضوع مغلق.
