الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

عمل نظام اصدقاء لموقعك مثل الفيس بوك

بدأه kareem_3d في 25 فبراير 2011 · 7 رد · 3,391 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله , النهاردة هقدملكوا طريقة عمل نظام للأصدقاء بالphp فى موقعك على عدة اجزاء , وهذ الجزء الأول من الدرس

يجب ان يكون لديك معرفة جيدا بالphp وبرمجة المواقع عموما ,

يجب ان يكون فى موقعك نظام تسجيل الاعضاء واظهار البروفايل الخاص بك او بغيرك مثل هذا المنتدى

اولا نبدأ بعمل الجداول :-

1) فى الجدول الخاص بالأعضاء ( والذى تسجل فيه بيانات العضو مثل الاسم والايميل والباسورد و غيرها ) سنزيد صف جديد نسميه مثلا friends و هذا الصف سوف يحمل جميع الاصدقاء لهذا العضو

2) سوف نقوم بعمل جدول جديد والذى سوف يحمل الطلب الذى يرسله عضو لعضو اخر يريد صداقته ( فمثلا فى الفيس بوك عند طلب صداقة احد الأعضاء فإنه يظهر عنده فى الأعلى على الشمال رسالة توضح انك قد طلبت صداقته وبإمكانه ان يتقبل صداقتك او يرفضها )

وهذا هو الجدول الذى سوف نقوم بعمله ونسميه مثلا friends

Create table friends(
	id int(11) NOT NULL auto_increment,
	mem1 int(11) NOT NULL,
	mem2 int(11) NOT NULL,

	PRIMARY KEY (id)

)

mem1 العضو الذى قام بطلب الصداقة( id لهذا العضو )

mem2 العضو الذى قام بإستلام الطلب( id لهذا العضو )

ثانياً :

1) فى صفحة البروفايل للأعضاء , بالطبع انت تتأكد إذا كان العضو الزائر للبروفايل صاحب البروفايل ام لا !!

فإذا لم يكن صاحب البروفايل (مثل الفيس بوك عند الذهاب لبروفايل احد الاعضاء ) سوف يظهر زر وقم بكتابة به اضف صديقا وهو الزر المسئول عن اضافة صديق عند الضغط عليه

وإذا كان صاحب البروفايل (مثل الفيس بوك عند الذها للبروفايل الخاص بك ) لا تظهر هذا الزر

ولاحقا سوف نقوم بعمل شرط اخر لاظهار زر اضافة صديق !!

2) عند الضغط على زر اضافة الاصدقاء سوف نقوم بكتابة هذا الكود لارسال طلب صداقة لهذا العضو

بحيث mem1 هو id العضو الزائر و mem2 هو id العضو صاحب البروفايل , connect_to_mysql.php والذى بها بيانات الداتابيس لموقعك

<?php
include_once("connect_to_mysql.php");

$query = mysql_query("insert into friends(mem1,mem2) values($mem1,$mem2)") or die(mysql_error());

$msg = "لقد تم ارسال طلب صداقة لهذا العضو ";
?>

وبذلك يكون قد تم إرسال طلب الصداقة والذى سوف تظهر للعضو mem2 فى البروفايل الخاص به بهذا الكود ( كتابة هذا الكود إذا كان العضو الزائر صاحب البروفايل ) :

<?php
include_once("connect_to_mysql.php");

$query = mysql_query("select * from friends where mem2=$mem2") or die(mysql_error());
$query_check = mysql_num_rows($query);
if($query_check > 0){

	$friend_requests = 'لديك '.$query_check.'طلب صداقة :';

	while($sql = mysql_fetch_array($query)){
		$friend_requests .= "<br>";
		$mem1_id = $sql['mem1'];

		// قم بكتابة هنا الكود لإستدعاء اسم الmem1
		// من الجدول الخاص بالأعضاء و ضعه فى هذا المتغير مثلا
		// mem1_name

		$friend_requests .= $mem1_name;

	}
}

?>

ارجو ان يكون شرحى مفهوما , ولو فى اسئلة اعرضها هنا و هرد عليها إن شاء الله , وضع ردا لإنزال الجزء الثانى

1
#2

رغم انى لا اجيد الphp غير سطحى

وليست من اهتمامى لكن جذبنى الموضوع

وشرح رائع وننتظر مزيد منك >> تشجيع

وتحياتى لك

GoodBye

#3

مشكوووووووووووور جدا

الى الامام يا بطل

وان شاء الله رح نضل متابعين معاك وشكرا

#4

شكرا للردود , ونكمل الجزء الثانى ::

انتهينا فى الجزء السابق عند ارسال طلب صداقة وظهوره فى بروفايل العضو المرسل إليه , الان سنتكلم عن عمل الازرار بجانب كل طلب صداقة (زر للموافقة على الطلب و زر لرفض الطلب )

سنزود الكود الخاص بالازرار فى السكريبت الاخير للجزء الأول::

ونلاحظ فى هذا الكود ان فى :

1) زر الموافقة ارسلت متغير GET اسمه accept وقيمته الid للعضو الذى ارسل الطلب

2) زر الرفض ارسلت متغير GET اسمه refuse وقيمته ال id للعضو الذة ارسل الطلب

علما بانى افترض ان اسم صفحة البروفايل اسمها profile

<?php
include_once("connect_to_mysql.php");

$query = mysql_query("select * from friends where mem2=$mem2") or die(mysql_error());
$query_check = mysql_num_rows($query);
if($query_check > 0){

	$friend_requests = 'لديك '.$query_check.'طلب صداقة :';

	while($sql = mysql_fetch_array($query)){
		$friend_requests .= "<br>";
		$mem1_id = $sql['mem1'];

		// قم بكتابة هنا الكود لإستدعاء اسم ال mem1
		// من الجدول الخاص بالأعضاء و ضعه فى هذا المتغير مثلا
		// mem1_name

		$your_website = $_SERVER['HTTP_HOST']; // هذا السطر فقط لمعرفة اسم موقعك , يمكنك تجاهل هذا السطر بالتأكيد ووضع اسم موقعك

		$friend_requests .= $mem1_name;
		$friend_requests .= "<span style='padding-left:50px'></span>"; // هذا السطر لعمل فقط مسافة بين اسم مرسل الطلب و بين الازرار

		$friend_requests .= "<a href='http://".$your_website."/profile.php?accept=".$mem1_id."'>موافقة</a>";
		$friend_requests .= "<a href='http://".$your_website."/profile.php?refuse=".$mem1_id."'>رفض</a>";
	}
}

?>

الان سنضع الكود المسئول عن الموافقة او الرفض و هذا الكود فى نفس صفحة البروفايل و يجب ان يكون قبل الكود السابق

هذا الكود للموافقة ::

<?php
if(isset($_GET['accept'])){
	$mem1_id = $_GET['accept'];

	// الكود التالى لعمل حماية من ال
	// sql injection
	$mem1_id = stripslashes($mem1_id);
	$mem1_id = strip_tags($mem1_id);
	$mem1_id = mysql_real_escape_string($mem1_id);
	// انتهاء كود الحماية

	// مسح الطلب بحيث ان
	// mem1 = $mem1_id  المرسل
	// mem2 = $id   صاحب البروفايل
	$query_friends = mysql_query("delete from friends where mem1=$mem1_id and mem2=$id") or die(mysql_error());

	//لقد قمنا من قبل بإضافة صف فى جدول الاعضاء اسمه
	// friends
	// دلوقتى هنزود
	// $mem1_id
	// لخانة الفريندز الخاصة بالعضو صاحب البروفايل
	// السطر التالى خطأ , فقط للتوضيح
	$query_update = mysql_query("update Members set friends='$mem1_id' where id=$id") or die(mysql_error()); // لا تقم بكتابة هذا السطر

	// الخطأ فى السطر السابق اننا وضعنا العضو المرسل فى خانة ال
	// friends
	// وبالتالى اصبح هو الصديق الوحيد لهذا العضو , وإذا كان هناك صديق من قبل فقد تم مسحه !!!
	/////////////////////////////////
	// وهذه طريقة لعلاج هذه المشكلة ::

	// سوف نقوم بإختيار الفريندز
	// والتى تحمل الاى دى لكل اصدقاء هذا العضو
	// من جدول الاعضاء
	$query_select_friends = mysql_query("select friends from Members where id=$id") or die(mysql_error());
	$select_array = mysql_fetch_array($query_select_friends);
	$friends = $select_array[0];

	// الان سوف نقوم بزيادة العضو الذى ارسل الطلب
	// وقمنا بالفصل بين عضو وعضو بالفاصلة
	$friends .= ','.$mem1_id;

	// الان يمكننا تحديث صف الفريندز فى جدول الاعضاء
	$query_update = mysql_query("update Members set friends='$friends' where id=$id") or die(mysql_error());
}
?>

هذا الكود للرفض ::

else if(isset($_GET['refuse'])){
	$mem1_id = $_GET['refuse'];

	// الكود التالى لعمل حماية من ال
	// sql injection
	$mem1_id = stripslashes($mem1_id);
	$mem1_id = strip_tags($mem1_id);
	$mem1_id = mysql_real_escape_string($mem1_id);
	// انتهاء كود الحماية

	// هنا سوف نقوم فقط بمسح الطلب
	$query_delete = mysql_query("delete from friends where mem1=$mem1_id and mem2=$id") or die(mysql_error());
}

======= @@@@ =======

وبكده يبقى خلصنا الجزء الثانى و لو فى متابعين كتير للدرس , هضع المثال كامل بالبروفيل بكل شئ وبنظام الاصدقاء اكيد , و هكمل فى الجزء القادم اخر شئ و هو إظهار الاصدقاء فى بروفيل الاعضاء و نعمل شرط اخر لإظهار زر اضافة صديق

#5
kareem_3d كتب:

السلام عليكم ورحمة الله , النهاردة هقدملكوا طريقة عمل نظام للأصدقاء بالphp فى موقعك على عدة اجزاء , وهذ الجزء الأول من الدرس

يجب ان يكون لديك معرفة جيدا بالphp وبرمجة المواقع عموما ,

يجب ان يكون فى موقعك نظام تسجيل الاعضاء واظهار البروفايل الخاص بك او بغيرك مثل هذا المنتدى

اولا نبدأ بعمل الجداول :-

1) فى الجدول الخاص بالأعضاء ( والذى تسجل فيه بيانات العضو مثل الاسم والايميل والباسورد و غيرها ) سنزيد صف جديد نسميه مثلا friends و هذا الصف سوف يحمل جميع الاصدقاء لهذا العضو

2)

بارك الله بيك

ولكن في هذا الصف الي ضفناه

كيف سيتم ادخال البيانات

على شكل مصفوفة؟ او ماذا

1
#6
اقتباس
بارك الله بيك

ولكن في هذا الصف الي ضفناه

كيف سيتم ادخال البيانات

على شكل مصفوفة؟ او ماذا

سوف ندخلها على شكل نص يفصل بين عضو و عضو اخر بفاصلة مثل 5,7,9,3

وعند استرجاع الاصدقاء سوف نقوم باستخدام الدالة explode

ويمكنك رؤية هذا فى الجزء الثانى , و سوف انزل الجزء الاخير غداً إن شاء الله وفيه كيفية استرجاع الاصدقاء بطريقة explode

ولو فى متابعين كتير للدرس هعمل الموضوع ده عملى بتسجيل الاعضاء و البروفايل و الاصدقاء وانزل الكود كامل هنا للإفادة إن شاء الله

#8


<!DOCTYPE html>

<html>

<head>
  <title>Hello!</title>
</head>

<body>
    <?php
    $local_host = 'localhost';          //للاتصال بي السرفر
    $db_host       =  $local_host;

    $db_user    = 'root';            // اسم المستخدم لقاعدة البيانات
    $user       =  $db_user;

    $db_pass    = '';             //كلمة المرور
    $pass       =  $db_pass;

    $db_name    = 'member';    //كلمة المرور
    $db       =  $db_name;


    $sql_con    = mysql_connect("$db_host","$db_user","");   //الاتصال بي قاعدة البيانات
    $sql_db     = mysql_select_db("$db") ;

        $sql    = "SELECT * FROM user";
    $query  = mysql_query($sql);

while($row = mysql_fetch_array($query)){

     $username = $row['username'];
     $time = $row['time'];
    // $chat     = $row    ['text'];
     //setcookie($time,$time);
    echo '<div style="font-size:18px; color:blue; margin-top:-5px;" ><a href="profile.php?'.$_COOKIE['user'].'">'.$username.'</a></div>';

    //$n = $_REQUEST[$time];
//setcookie('user','manassa');
}


?>
 <!--
<form action="crack.php" method="POST">
<textarea name="comment"></textarea>
<input name="submit" type="submit" value="comment">

</form>   -->

</body>
</html>

تم تعديل هذه المشاركة بواسطة manassa rapper في 7 يونيو 2014 في 19:54

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…