Home  >  Article  >  Backend Development  >  求大神帮忙看看哪里出错了。

求大神帮忙看看哪里出错了。

PHP中文网
PHP中文网Original
2016-06-23 13:44:301212browse

我想实现用户之间的通信,思想是建立一个消息表,然后把收件人用户名、发件人用户名、消息等放进去,然后谁想看发给自己的消息就去消息表中查找收件人是自己的记录。现在做到发消息这一块儿了,发完消息我发现 数据库消息表中并没有记录,应该是没有正确插入表中,大神帮忙看看是哪里错了,我也是刚接触PHP的,以前上课学的东西都是基础的,运用到实践中总是出很多问题。  
下面附上相关的代码( 其中sqltable是用户表,sqltable2是消息表,user_name是用户表中存储用户名的,s_name是消息表中存储发件人的,r_name是消息表中收件人)  
 
config.php  

<?php //常规参数设置$servername="localhost";  //主机名$sqlservername="root"; //mysql数据库用户名$sqlserverpws="lmy"; //mysql数据库密码$sqlname="lmy"; //数据库名$sqltable="user"; //username表名$sqltable2="message";$admin_name="lmy";  //管理员用户名$admin_pws="lmy";   //管理员密码?>

 
 
message.php  

<?phpsession_start(); //一定要的if($_SESSION["name"]==""){echo "<script>location.href=&#39;index.php&#39;;</script>";exit;}//上面的要验证过滤的?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>给管理员发信</title></head><body><center>  <form name="form1" method="post" action="message_cl.php"><table width="68%" height="304"  border="0" cellpadding="0" cellspacing="1" bgcolor="#000000">    <tr align="center" bgcolor="#CCCCCC">      <td colspan="2">发信(message.php)||<a href="index.php">返回</a></td>    </tr>    <tr bgcolor="#CCCCCC">      <td align="right">收件人:</td>      <td align="left"><input name="r_name" type="text" id="r_name"></td>    </tr>    <tr bgcolor="#CCCCCC">      <td align="right">消息内容:</td>      <td align="left"><input name="content" type="text" id="content" size="40"></td>    </tr>    <tr align="center" bgcolor="#CCCCCC">      <td colspan="2"><input type="submit" name="Submit" value="发送">          <input type="reset" name="Submit" value="重置"></td>    </tr>  </table>  </form></center></body></html>

 
 
message_cl.php  

<?php session_start(); //一定要的if($_SESSION["name"]==""){echo "<script>location.href=&#39;index.php&#39;;</script>";exit;$_SESSION["name"]=$row[user_name];//这里是SESSION来验证用户的合法性}include("config.php"); //参数页面提取过来if(empty($_POST["r_name"])){echo ("<script type=&#39;text/javascript&#39;> alert(&#39;请填写收件人!&#39;);history.go(-1);</script>");exit;}if(empty($_POST["content"])){echo ("<script type=&#39;text/javascript&#39;> alert(&#39;请填写消息内容!&#39;);history.go(-1);</script>");exit;}$s_name=$_SESSION["name"];$r_names=$_POST["r_name"];$content=$_POST["content"];$add_time=date("Y-m-d");$is_open="no";$db=mysql_connect($servername,$sqlservername,$sqlserverpws);mysql_select_db($sqlname,$db) ;$sql="select * from $sqltable where user_name=&#39;$s_name&#39;";$result=mysql_fetch_row(mysql_query($sql));if(!$result){echo ("<script type=&#39;text/javascript&#39;> alert(&#39;无效的收件人!&#39;);history.go(-1);</script>");}else{$sql="insert into $sqltable2(s_name,r_name,content,add_time,is_open) values(&#39;$s_name&#39;,&#39;$r_name&#39;,&#39;$content&#39;,&#39;$add_time&#39;,&#39;$is_open&#39;) ";mysql_query($sql);echo ("<script type=&#39;text/javascript&#39;> alert(&#39;发送成功&#39;);location.href=&#39;index.php&#39;;</script>");}?>

回复讨论(解决方案)

message_cl.php 37 行  
mysql_query($sql) or die(mysql_error());

$s_name=$_SESSION["name"];  
$r_names=$_POST["r_name"];  
$content=$_POST["content"];  
 
输出一下,看有 值没  
 
 
还有insert into $sqltable2(s_name,r_name,content,add_time,is_open) values('$s_name','$r_name','$content','$add_time','$is_open')  
用SQL操作一下表,看结果是什么

哈哈,把分给我吧,已经远程协助解决。就是sql表里没有is_open字段而php又要插入is_open字段值,还有就是sql语句拼装问题

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn