小型 Twitter 的系统 源碼+註釋

来源:互联网 发布:raid2数据图 编辑:程序博客网 时间:2024/06/04 18:42

今天重新吧 小型twitter系統的源碼 認真研究了一邊 算是熟悉php把 

爲今後一個月的畢業設計做打算

下載

http://dl.vmall.com/c0nkwafdqz

index

<?phpsession_start ();include_once ('header.php');include_once ('functions.php');$_SESSION ['userid'] = 1;//设置session真正情况是在登录的时候设置?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head><meta http-equiv="content-type" content="text/html; charset=utf-8" /><title>Microblogging Application</title></head><p><a href='users.php'>see list of users</a></p><?phpif (isset ( $_SESSION ['message'] )) {//如果session中设置了message就显示出来.然后释放echo "<b>" . $_SESSION ['message'] . "</b>";unset ( $_SESSION ['message'] );}?><form method='post' action='add.php'><p>Your status:</p><textarea name='body' rows='5' cols='40' wrap=VIRTUAL></textarea><p><input type='submit' value='submit' /></p><?php$users = show_users($_SESSION['userid']);//显示用户follow的用戶if (count($users)){$myusers = array_keys($users);//返回數組中所有的key}else{$myusers = array();}$myusers[] = $_SESSION['userid'];//應該在myusers數據末尾添加用戶自己$posts = show_posts($myusers,5);//顯示用戶follow用戶的五條postif (count ( $posts )) {?><table border='1' cellspacing='0' cellpadding='5' width='500'><?phpforeach ( $posts as $key => $list ) {echo "<tr valign='top'>\n";echo "<td>" . $list ['userid'] . "</td>\n";echo "<td>" . $list ['body'] . "<br/>\n";echo "<small>" . $list ['stamp'] . "</small></td>\n";echo "</tr>\n";}?></table><?php} else {?><p><b>You haven't posted anything yet!</b></p><?php}?><h2>Users you're following</h2><?php$users = show_users ( $_SESSION ['userid'] );if (count ( $users )) {?><ul><?phpforeach ( $users as $key => $value ) {echo "<li>" . $value . "</li>\n";}?></ul><?php} else {?><p><b>You're not following anyone yet!</b></p><?php}?></form></body></html>

headers

<?php$SERVER = 'localhost:3306';$USER = 'root';$PASS = 'root';$DATABASE = 'tweet';if (! ($mylink = mysql_connect ( $SERVER, $USER, $PASS ))) {echo "<h3>Sorry, could not connect to database.</h3><br/>Please contact your system's admin for more help\n";exit ();}mysql_select_db ( $DATABASE );?>
users
<?phpsession_start ();include_once ("header.php");include_once ("functions.php");?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head><meta http-equiv="content-type" content="text/html; charset=utf-8" /><title>Microblogging Application - Users</title></head><body><h1>List of Users</h1><?php$users = show_users ();$following = following(1);if (count ( $users )) {?><table border='1' cellspacing='0' cellpadding='5' width='500'><?phpforeach ( $users as $key => $value ) {//=>指的是获取数组内某一个单元内的元素的内容,echo "<tr valign='top'>\n";echo "<td>" . $key . "</td>\n";//顯示idecho "<td>" . $value;//顯示id對應的值也就是valueif (in_array ( $key, $following )) {//檢查key是否在following中 然后根据状态显示不同的值显示不同的信息 生成不同的指向action的链接echo " <small><a href='action.php?id=$key&do=unfollow'>unfollow</a></small>";} else {echo " <small><a href='action.php?id=$key&do=follow'>follow</a></small>";}echo "</td>\n";echo "</tr>\n";}?></table><?php} else {?><p><b>There are no users in the system!</b></p><?php}?></body></html>


<?phpfunction add_post($userid, $body) {$sql = "insert into posts (user_id, body, stamp) values ($userid, '" . mysql_real_escape_string ( $body ) . "',now())";$result = mysql_query ( $sql );}function show_posts($userid, $limit = 0) {$posts = array ();$user_string = implode ( ',', $userid );$extra = " and id in ($user_string)";if ($limit > 0) {$extra = "limit $limit";} else {$extra = '';}$sql = "select user_id,body, stamp from posts where user_id in ($user_string) order by stamp desc $extra";echo $sql;$result = mysql_query ( $sql );while ( $data = mysql_fetch_object ( $result ) ) {$posts [] = array ('stamp' => $data->stamp,'userid' => $data->user_id,'body' => $data->body );}return $posts;}/** * 显示用户 * 如果user_id =0,直接显示所有用户 * 如果user id >0,显示改用户follow的用户id * @param unknown_type $user_id * @return multitype:|multitype:NULL */function show_users($user_id = 0) {if ($user_id > 0) {$follow = array ();$fsql = "select user_id from followingwhere follower_id='$user_id'";//從follow中選出該id的follower$fresult = mysql_query ( $fsql );while ( $f = mysql_fetch_object ( $fresult ) ) {//把結果作爲一個對象傳入array_push ( $follow, $f->user_id );//把f中的user_id字段放到follow中}if (count ( $follow )) {$id_string = implode ( ',', $follow );//以","作爲分割符來加工這個字符串,爲了拼接後面的sql$extra = " and id in ($id_string)";} else {return array ();}}$users = array ();$sql = "select id, username from users where status='active' $extra order by username";//從user表中選出follower的 id 和 name$result = mysql_query ( $sql );while ( $data = mysql_fetch_object ( $result ) ) {$users [$data->id] = $data->username;//想user中填入用戶名}return $users;}/** * 搜索出用户follow的用户的id * @param unknown_type $userid * @return multitype: */function following($userid) {$users = array ();$sql = "select distinct user_id from followingwhere follower_id = '$userid'";$result = mysql_query ( $sql );while ( $data = mysql_fetch_object ( $result ) ) {array_push ( $users, $data->user_id );}return $users;}function check_count($first, $second) {$sql = "select count(*) from followingwhere user_id='$second' and follower_id='$first'";$result = mysql_query ( $sql );$row = mysql_fetch_row ( $result );return $row [0];}function follow_user($me, $them) {$count = check_count ( $me, $them );if ($count == 0) {$sql = "insert into following (user_id, follower_id)values ($them,$me)";$result = mysql_query ( $sql );}}function unfollow_user($me, $them) {$count = check_count ( $me, $them );if ($count != 0) {$sql = "delete from followingwhere user_id='$them' and follower_id='$me'limit 1";$result = mysql_query ( $sql );}}?>

add

<?phpsession_start ();include_once ("header.php");include_once ("functions.php");$userid = $_SESSION ['userid'];$body = substr ( $_POST ['body'], 0, 140 );add_post ( $userid, $body );$_SESSION ['message'] = "Your post has been added!";header ( "Location:index.php" );?>

<?phpsession_start ();include_once ("header.php");include_once ("functions.php");/**  处理follow动作 */$id = $_GET ['id'];//获取get 方法传来的值 $_POST是post$do = $_GET ['do'];switch ($do) {case "follow" :follow_user ( $_SESSION ['userid'], $id );$msg = "You have followed a user!";//设置信息break;case "unfollow" :unfollow_user ( $_SESSION ['userid'], $id );$msg = "You have unfollowed a user!";break;}$_SESSION ['message'] = $msg;//在session中发送信息header ( "Location:index.php" );?>


原创粉丝点击