소형 트 위 터 의 시스템 원본 + 주석, PHP

10792 단어 twitter

오늘 다시 합 시다. 
앞으로 한 달 간 의 졸업 설 계 를 위해 계획 하 다.
 
다운로드 하 다.
http://dl.vmall.com/c0nkwafdqz
 
index
 
<?php
session_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>
<?php

if (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     post




if (count ( $posts )) {
	?>
<table border='1' cellspacing='0' cellpadding='5' width='500'>
<?php
	foreach ( $posts as $key => $list ) {
		echo "<tr valign='top'>
"; echo "<td>" . $list ['userid'] . "</td>
"; echo "<td>" . $list ['body'] . "<br/>
"; echo "<small>" . $list ['stamp'] . "</small></td>
"; echo "</tr>
"; } ?> </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>
"; } ?> </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
"; exit (); } mysql_select_db ( $DATABASE ); ?>

users
<?php
session_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'>
"; echo "<td>" . $key . "</td>
";// 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>
"; echo "</tr>
"; } ?> </table> <?php } else { ?> <p> <b>There are no users in the system!</b> </p> <?php } ?> </body> </html>

 
 
<?php
function 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
 
 
<?php

session_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" );

?>
<?php
session_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" );
?>

좋은 웹페이지 즐겨찾기