?
今天重新吧 小型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'><?php foreach ( $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><?php foreach ( $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'><?php foreach ( $users as $key => $value ) {//=>指的是获取数组内某一个单元内的元素的内容, echo "<tr valign='top'>\n"; echo "<td>" . $key . "</td>\n";//顯示id echo "<td>" . $value;//顯示id對應的值也就是value if (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 following where 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 following where 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 following where 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 following where 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" );?>