我正在创建具有评论系统的社交媒体网站,其中用户写的文本将被发布在电路板上并存储在数据库中,但问题是没有文本显示且文本没有存储在数据库中但是文本旁边的其他字段都存储起来,所以任何人都可以帮助我???
<?php
ob_start();
session_start();
require_once('for members/scripts/global.php');
if($_SESSION['login'] != 'true'){
header("location:index.php");
}
$user_id = $_SESSION['user_id'];
$send =(isset($_POST['send']));
$writenCom = (isset($_POST['post']));
if($send && $writenCom){
echo $writenCom;
$query = mysql_query("INSERT INTO comment(sender_id, text, comment_date)VALUES('$user_id', '$writenCom', now())")or die(mysql_error());
while($row = mysql_fetch_array($query)){
echo"comment success";
}
}
?>
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="style/stylesheet.css"rel="stylesheet" type="text/css"/>
<title>
<?php print($_SESSION['first_name']); ?>
<?php print($_SESSION['last_name']); ?>'s profile</title>
<style type="text/css">
</style>
<link href="style/stylesheet.css" type="text/css"/>
</head>
<body>
<?php require_once('header.php'); ?>
<div class="container center">
<div class="postForm">
<form action="<?php echo($_SESSION['first_name']); ?>" method="post">
<textarea id="post" name="post" rows="5" cols="70"> </textarea>
<input type="submit" name="send" value="Post" style="background-color:#DCE5EE; float:right; border:1px solid #666; color:#666; height:73px; width:65px;" />
</form>
</div>
<div class="profilePost">Your Post will go here...
</div>
<!--for posting area -->
<div class="textProfileHeader"><?php echo($_SESSION['first_name']); ?>'s profile</div>
<!--end of posting -->
<div class="profileImage"><img src="image with highlight 2/images/new images/imageHover/homeHover.jpg" height="250" width="200" alt="<?php echo($_SESSION['first_name']); ?>'s profile" title="="<?php echo($_SESSION['first_name']);?>'s profile /></div>
<div class="profiletextContent">Some Content about this person profile...</div>
<div class="textProfileHeaderFriends"><?php echo($_SESSION['first_name']); ?>'s Friends</div>
<div class="profileImgFriends"> <img src="image with highlight 2/images/new images/imageHover/homeHover.jpg" height="50" width="40" /> <img src="image with highlight 2/images/new images/imageHover/homeHover.jpg" height="50" width="40" /> <img src="image with highlight 2/images/new images/imageHover/homeHover.jpg" height="50" width="40" /> <img src="image with highlight 2/images/new images/imageHover/homeHover.jpg" height="50" width="40" /> <img src="image with highlight 2/images/new images/imageHover/homeHover.jpg" height="50" width="40" /> <img src="image with highlight 2/images/new images/imageHover/homeHover.jpg" height="50" width="40" /> <img src="image with highlight 2/images/new images/imageHover/homeHover.jpg" height="50" width="40" /> <img src="image with highlight 2/images/new images/imageHover/homeHover.jpg" height="50" width="40" /> </div>
<!--
<form id="form" method="post" action="profile.php" enctype="multipart/form-data" target="iframe">
<input type="file" id="file" name="file" />
<input type="submit" name="submit" id="submit" value="Upload File" />
</form>
-->
<!--
<a href="#">edit profile</a><br />
<a href="#">account settings</a><br />
-->
<?php
//}else{
//header("Location: home.php");
?>
<!--
<a href="#">private message</a><br />
<a href="#">add as friend</a><br />
-->
<?php
//}
?>
</div>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<?php require_once('footer.php'); ?>
</body>
</html>
<?php flush(); ?>
答案 0 :(得分:1)
您应该使用mysql_affected_rows
代替mysql_fetch_array
if (mysql_affected_rows() > 0) {
echo "comment success";
} else {
echo "insert comment failed";
}
mysql_fetch_array
用于获取select
个查询的结果集。
或者,您可以只测试mysql_query
的返回值,其中TRUE
表示成功,或者FALSE
表示插入语句失败
if ($query) {
echo "comment success";
} else {
echo "insert comment failed";
}
除此之外,您应该考虑切换到mysqli
或PDO
,因为现在已弃用mysql_*
函数。
答案 1 :(得分:0)
我在您的代码中发现了多个问题。首先,$writenCom = (isset($_POST['post']));
将$writenCom
设置为TRUE / FALSE,这是您尝试在DB中插入的值。其次,mysql_fetch_array
只有在执行SELECT
查询时才有意义。此外,您应始终转义来自用户的数据(建议使用mysqli
或PDO
,而不是过时mysql
)