ホームページ  >  記事  >  バックエンド開発  >  どこが間違っていたのかを見つけるのを手伝ってください。

どこが間違っていたのかを見つけるのを手伝ってください。

PHP中文网
PHP中文网オリジナル
2016-06-23 13:44:301178ブラウズ

ユーザー間のコミュニケーションを実現したいのですが、メッセージテーブルを作成し、そこに受信者​​のユーザー名、送信者のユーザー名、メッセージなどを入力すると、自分に送信されたメッセージを見たい人は誰でもアクセスできます。メッセージ テーブルで、受信者が自分であるレコードを検索します。メッセージの送信が完了しました。メッセージがテーブルに正しく挿入されていないことがわかりました。何が問題なのかを教えていただけますか。私も 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 行
mys ql _query($sql) または die( mysql_error( ));

$s_name=$_SESSION["name"];
$r_names=$_POST["content"];

出力して確認してくださいそれは価値があります


$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 ステートメントを組み立てる際にも問題があります。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。