• ベストアンサー

PHPについて。

PHP+MYSQLで掲示板を作成しています。 /*************** スレッドのタイトル(su)にデータがあればtbj0に挿入 ***************/$su_d=htmlspecialchars($_GET["su"]); if($su_d<>""){ mysql_query("INSERT INTO tbj0 (sure,niti,aipi) VALUES ('$su_d',now(),'$ip')"); } 送信フォームよりスレッドタイトルを入力し、スレッドを作成するというものなのですが、 if($su_d<>"")この文の意味が分かりません。 「<>」は比較演算子で~と等しくないだと思うのですが、「<>」はa<>b等という形で使うものと認識していたため、if($su_d<>"")とした場合、変数$su_dが""と等しく無い場合にはテーブルにデータを挿入するという意味なのでしょうか? もし、そうだとしても、私には""と等しくなければという意味も分からないのですが。 初歩的な質問かもしれませんが、ご教授お願い致します。 ソースはこちらです。 <?php /*************** データベース情報等の読み込み ***************/ require_once("data/db_info.php"); /*************** データベースへ接続、データベース選択 ***************/ $s=mysql_connect($SERV,$USER,$PASS) or die("失敗しました"); mysql_select_db($DBNM); /*************** タイトル、画像等の表示 ***************/ print <<<eot1 <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html;charset=Shift_JIS"> <TITLE>SQLカフェのページ</TITLE> </HEAD> <BODY BGCOLOR="lightsteelblue"> <IMG SRC="pic/oya.gif"> <FONT SIZE="7" COLOR="indigo">  SQLカフェ掲示板だよ~ </FONT> <BR><BR> 見たいスレッドの番号をクリックしてください <HR> <FONT SIZE="5"> (スレッド一覧) </FONT> <BR> eot1; /*************** クライアントIPアドレス取得 ***************/ $ip=getenv("REMOTE_ADDR"); /*************** スレッドのタイトル(su)にデータがあればtbj0に挿入 ***************/ $su_d=htmlspecialchars($_GET["su"]); if($su_d<>""){ ←←←←←←←←←←←←ここです mysql_query("INSERT INTO tbj0 (sure,niti,aipi) VALUES ('$su_d',now(),'$ip')"); } /*************** tbj0の全データ抽出 ***************/ $re=mysql_query("SELECT * FROM tbj0"); while($kekka=mysql_fetch_array($re)){ print <<<eot2 <A HREF="keizi.php?gu=$kekka[0]">$kekka[0] $kekka[1]</A> <BR> $kekka[2]作成<BR><BR> eot2; } /*************** データベース切断 ***************/ mysql_close($s); /*************** スレッド名入力用表示、トップ等へのリンク ***************/ print <<<eot3 <HR> <FONT size="5"> (スレッド作成) </FONT> <BR> 新しくスレッドを作るときは、ここでどうぞ! <BR> <FORM METHOD="GET" ACTION="keizi_top.php"> 新しく作るスレッドのタイトル <INPUT TYPE='text' NAME='su' SIZE='50'> <BR> <INPUT TYPE="submit" VALUE="作成"> </FORM> <HR> <FONT SIZE="5"> (メッセージ検索) </FONT> <A HREF="keizi_search.php">検索するときはここをクリック</a> <HR> </BODY> </HTML> eot3; ?>

noname#163332
noname#163332
  • MySQL
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • otzero
  • ベストアンサー率30% (6/20)
回答No.1

最良の回答は「初歩的なものでよいのでPHPの書籍を読むこと」となります。 2番手の回答を目指して、回答させて頂きます。 > /*************** スレッドのタイトル(su)にデータがあればtbj0に挿入 ***************/ > $su_d=htmlspecialchars($_GET["su"]); ↑の意味が分かることが重要です。 ここで変数「$su_d」に値を入れています。 「$su_d」が受け取る値は「文字列」です。 「$su_d」の中身は「あ」、「M」、「UNIDI」か「」ということもあります。 これらは、PHP(プログラミング)では、"あ"、"M"、"UNIDI"か""と表現します。 > if($su_d<>""){ ←←←←←←←←←←←←ここです よって、もうわかりますよね。 以上です。

noname#163332
質問者

お礼

ご回答ありがとうございます。なるほど! ""は空白や無入力の状態という事で、無入力でなければデータを挿入するという事なんですね! おかげさまで解決しました。ありがとうございました^^

関連するQ&A

  • PHPについて。

    PHPで占いを作っているのですが、ランダム表示にするにはどうすればいいですか。 <html> <head> <title>入力フォーム</title> </head> <body> <center> <?php //接続 $link = mysql_connect("○○○","○○○","○○○"); if(!$link){ die('Connected error !'.mysql_error()); } //DB選択 $db_selected = mysql_select_db('○○', $link); if(!$db_selected){ die('Connected error !'.mysql_error()); } //フォーム入力文字を表現 $○○= $_POST['name']; /* echo $○○.'<br>'; */ //ハッシュ値の取得 $hash = crc32($○○); if($hash < 0){ $hash = 0 - $hash; } /* echo $hash; */ $result = mysql_query("SELECT ○○") or die("sql error !"); $retukazu = mysql_num_rows($result); $kekka = $hash % $retukazu + 1; //文字コード設定 mysql_query("SET NAMES sjis"); $sql = mysql_query("SELECT ○○ = $kekka"); if(!$sql){ die('query_error !'.mysql_error()); } while($row = mysql_fetch_assoc($sql)){ echo '<center><br />あなたはきっと・・・<br /><br /><font color= "Red"><strong>'.$row['Memo'].'</strong></font>です<br />'; } ?> </p> </body> </html>

    • ベストアンサー
    • PHP
  • phpスクリプト起動せず・・・・

    データーベースの削除スクリプトを作成しましたが、 動作しません。 HTMLから削除する番号を入力すると、データーベースの 該当する番号のレコードを削除し、その結果を表示する スクリプトなのですが、HTMLより削除する番号を入力し、 送信ボタンを押しても何も反応しない状態です。 なんかデーターベースにも接続できていない模様です。 connection!!と表示されてませんし。。。 <HTMLファイル:kantan.html> <!--削除フォーム--> <form method="post" action"kantan_del.php"> 削除する番号を入力してください<input type="text" name="b1"><br> <input type="submit" vakue="削除番号送信"> </form> <PHP削除用スクリプト:kantan_del.php> <?php $con=mysql_connect("localhost","root","1234") or die("失敗"); print "conection!!<br>"; mysql_select_db("db1",$con); $b=$_POST_["b1"]; mysql_query("delete from tbk where bang=$=b"); print "削除完了<br>"; print "<hr>"; $re=mysql_query("select * from tbk order by bang asc"); while($kekka=mysql_fetch_array($re)){ print $kekka[0]; print " : "; print $kekka[1]; print " : "; print $kekka[2]; print "<br>"; } print "<hr>"; mysql_close($con); print "<a herf='kantan.html'>TOPページへ戻る</a>"; ?> <データーベース:db1> mysql> desc tbk; +-------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+----------------+ | bang | int(11) | NO | PRI | NULL | auto_increment | | name | varchar(100) | YES | | NULL | | | mess | varchar(100) | YES | | NULL | | +-------+--------------+------+-----+---------+----------------+ どなたかご教授下さい。

    • 締切済み
    • PHP
  • PHPのエラーについて

    データベースから出力し、リンクをつけたいと考えていますが、下記のようなエラーが出力されます。 どのように対応すれば解消されるでしょうか? データベースにはthread_idという項目は存在します。 echo から始まる列が38行目にあたります。 よろしくお願いします。 【コード】 <?php $sql = "SELECT * FROM thread WHERE category_id =1"; $date = mysql_query($sql,$link); while ($post = mysql_fetch_assoc($date)) { $thread_id = $post['thread_id']; echo '<br>' . '<a href="thread.php?id=<?php echo htmlspecialchars($post['thread_id']); ?>">' . $post['thread_title'] .'</a>'.'<br>'; } ?> 【エラー】 Parse error: syntax error, unexpected 'thread_id' (T_STRING), expecting ',' or ';' in C:\xampp\htdocs\index.php on line 38

    • 締切済み
    • PHP
  • MySQLのレコードを逆向きに並べる方法は?

    MySQLのレコードを逆向きに並べる方法は? MySQLを使って、掲示板を作ろうとしているのですが、 “db1”というデータベースに、“tbk”というテーブルを作り、 “bangou”というフィールドで、AUTO_INCREMENTで番号をふり、 下記のように、番号順にレコードをプリントしているのですが、 <?php $s=mysql_connect("localhost","root","パスワード"); mysql_select_db("db1"); $re=mysql_query("select * from tbk order by bangou"); while($kekka=mysql_fetch_array($re)){ print "<hr />"; print $kekka[0]; print "<br />"; print $kekka[1]; print "<br />"; print $kekka[2]; print "<br />"; print $kekka[3]; print "<br />"; } mysql_close($s); ?> このように、番号の若い順にレコードをプリントするのではなく、 番号(“bangou”)の古い順にレコードをプリントするようにするには、 どうすれば良いでしょうか?

  • PHPソースのセキュリティをみていただきたい

    自分で作ったソースをロリポ(PHPver5)にアップしていたのですが、管理者より脆弱性を指摘されました。 どこで脆弱な部分があるか見ていただきたいのですが・・・。 >>view.php <?php // アクセス制限 if(ereg("view.php", $_SERVER["PHP_SELF"])) { header("Location: index.php"); exit(); } // 日付の取得 if(!$input_date) { $query = "SELECT max(modify) FROM " . DIARY_TABLE_LOG; $result = @mysql_query($query, $db); $num_rows = @mysql_num_rows($result); // 記事があれば最新の日付をセット if($num_rows == 1) { $input_date = @mysql_result($result, 0, 0); if(!preg_match("/^[0-9]{4}\-[0-9]{2}\-[0-9]{2}$/", $input_date)) { $input_date = date("Y-m-d"); } } else { $input_date = date("Y-m-d"); } } // 記事の取得 $query = "SELECT * FROM " . DIARY_TABLE_LOG . " WHERE modify = '{$input_date}'"; $result = @mysql_query($query, $db); $num_rows = @mysql_num_rows($result); // 一覧記事の取得 if($num_rows >= 1) { $row = @mysql_fetch_assoc($result); $title = $row["title"]; $story = $row["story"]; // ナビゲーターの読み込み include("navi.php"); //必要なファイルをインクルード if(!$input_file) { $input_file = "main"; } // 記事の表示 print <<<_EOT_ <div id="main"> <div id="right"><!-- 本文 --> <h2> 最新記事 {$title} </h2> <div class="tex"> {$story} <p>$navi</p> </div> include("./html/" . $input_file . ".htm"); $query = "SELECT * FROM " . DIARY_TABLE_LOG . " LIMIT 10"; $result = @mysql_query($query, $db); for ( $i = 0 ; $i < 10 ; $i++) { $row = @mysql_fetch_assoc($result); $c_title .= '<a href=index.php?date=' . $row["modify"] . '> '. $row["modify"] . ' - ' . $row["title"] . ' </a><BR>'; } print <<<_EOT_ <h2>記事一覧</h2> <div class="tex"> $c_title </div> </div><!-- right --> <!-- left --> <div id="uidform"><!-- サイドメニュー部分 --> $uidform </div> <div id="menu"><!-- サイドメニュー部分 --> $navibar </div><!-- left --> <br style="clear:both"> </div> _EOT_; } else { // 記事がないとき print <<<_EOT_ <div id="main"> <div id="right"><!-- 本文 --> <h2> 最新投稿 {$title} </h2> <div class="tex"> {$ms} <p>$navi</p> </div> _EOT_; $query = "SELECT * FROM " . DIARY_TABLE_LOG . " LIMIT 10"; $result = @mysql_query($query, $db); for ( $i = 0 ; $i < 10 ; $i++) { $row = @mysql_fetch_assoc($result); $c_title .= '<a href=index.php?date=' . $row["modify"] . '>' . $row["modify"] . $row["title"] . ' </a><BR>'; } print <<<_EOT_ <h2>記事一覧</h2> <div class="tex"> $c_title </div> </div><!-- right --> <!-- left --> <div id="uidform"><!-- サイドメニュー部分 --> $uidform </div> <div id="menu"><!-- サイドメニュー部分 --> $navibar </div> <div id="calendar"><!-- サイドメニュー部分 --> {$input_date} $calendar </div><!-- left --> <br style="clear:both">\n _EOT_; } ?> サーバの設定が正しくないと、ソースを抜き取られるようなので念のため載せておきます。 >>.htaccess AddType application/x-httpd-php .php .html AddHandler cgi-script .pl Options FollowSymLinks ExecCGI Includes DirectoryIndex index.php index.html index.htm index.shtml 以上です。 断片的な情報ですが、どこが弱いか、どうすれば直るか見て頂けたら幸いです。素人のため平易であればうれしいです。 事象としては、たまにページが表示されず、URLのみが表示されます。 複数人の同時アクセスによってファイルがこわれたせいだと思います。 その都度、ローカルPCにあるindex.phpをアップしなおし、ページを表示させていました。

    • ベストアンサー
    • PHP
  • PHPとMySQLを学習しているのですが・・・。

    ----------------- apache2.0.59 php5.24 MySQL5.0.45 ----------------- <?php $my_con = mysql_connect("localhost" , "hamu" , 'hamutamago'); if($my_con == false){ echo "MySQLに接続できました"; }else{ echo "MySQLに接続できました"; }; if(mysql_select_db("sample_sql")){ echo "データベース接続できました"; }else{ echo "データベース接続できませんでした"; } ?> PHPでMySQLと連動させる勉強をいましているのですが、PHPからMySQLへアクセスする事はできたのですが、自分で作成したデータベースへアクセすることができません。最初からMySQLに入っていたinformation_schemaというデータベース(?)にはアクセスできるみたいなのですが、自分で策瀬下データベースにはアクセスが出来ないようです。 なにかご存じのかたがいらっしゃいましたらよろしくお願いします。

    • ベストアンサー
    • PHP
  • php5.2.9に変更後に不具合について

    php初心者です。 レンタルサバ―なのですが、php4.4.7からphp5.2.9に変更後うまくいかなくて困っています。 header("Location: http://○○○/top.php");がうまく飛びません。 ページを実行すると真っ白の画面になってしまいます。 以前のバージョンですと、問題なく動いていました。 下記を見てください。 どうしたらよいのでしょうか? <?php mysql_query('SET NAMES ujis'); require_once( "function.php" ); session_start(); if ( $_REQUEST[ "SUBMIT" ] != "" ) { if ( ( $_POST[ "VALUE_ID" ] != "" ) && ( $_POST[ "VALUE_PW" ] != "" ) ) { $k_id = $_POST[ "VALUE_ID" ]; $k_pw = $_POST[ "VALUE_PW" ]; $con=mysql_connect('aaa','aaa','aaa') or die("MySQL接続エラー: ".mysql_error()); mysql_select_db('aaa',$con); $sql= "select * from あああ where id='$k_id' and pw='$k_pw'"; $result=mysql_query($sql); $rows=mysql_num_rows($result); if($rows==1){ while($row=mysql_fetch_array($result)){ $d_id = $row["id"]; $d_pw = $row["pw"]; } } } } if ( !isset( $_SESSION[ "D_ID" ] ) ) { $_SESSION[ "D_ID" ] = ""; } $_SESSION[ "D_ID" ] = $d_id; if ( !isset( $_SESSION[ "D_PW" ] ) ) { $_SESSION[ "D_PW" ] = ""; } $_SESSION[ "D_PW" ] = $d_pw; if ( !isset( $_SESSION[ "K_ID" ] ) ) { $_SESSION[ "K_ID" ] = ""; } $_SESSION[ "K_ID" ] = $k_id; if ( !isset( $_SESSION[ "K_PW" ] ) ) { $_SESSION[ "K_PW" ] = ""; } $_SESSION[ "K_PW" ] = $k_pw; if ( ( $_SESSION[ "D_ID" ] == "" ) || ( $_SESSION[ "D_PW" ] == "" ) ) { print( "<br><center>○○○○○○○○<br>" ); print( "<br>○○○○○○○○○○○○○○○○<br>" ); print( "<br>○○○○○○○○<br>" ); print( "<br><a href=\"index.html\">[ BACK ]</a></center>" ); exit(); }elseif( CheckID_PW( $_SESSION[ "K_ID" ], $_SESSION[ "K_PW" ], $_SESSION[ "D_ID" ], $_SESSION[ "D_PW" ] ) == false ) { print( "<br><center>○○○○○○○○<br>" ); print( "<br><center>○○○○○○○○○○○○○○○○<br>" ); print( "<br><center>○○○○○○○○" ); print( "<br><br><a href=\"index.html\">[ BACK ]</a></center></body>" ); } else {header("Location: http://○○○/top.php");} ?>

    • 締切済み
    • PHP
  • PHP初心者です。

    PHP・Mysql超初心者です。掲示板を自分で考えて作っているのですが、 わからないところがあり困っています。 管理登録画面で管理noと品名を入力し、登録をクリックするとMysqlに データを保存します。 管理表の画面で、品名(上記のMysqlから品名をセレクトボックスで 表示)と注文数を入力し、Mysqlに保存したいのですが、その命令の 所でエラーが出ます。 書き方やセキュリティ等は無視して下さい。 どなたかご教授下さい。 //管理登録画面 *kanri.html <html> <meta http-equiv="content-type" content="text/html; charset=euc-jp"> <body> <form method="post" action="touroku.php"> <h3>管理登録</h3><br> NO:<input type="text" name="no"><br><br> 品名:<input type="text" name="hinmei"><br><br> <input type="submit" value="登録"> </form> </body> </html> *touroku.php <html> <meta http-equiv="content-type" content="text/html; charset=euc-jp"> <body> <? $no=$_POST["no"]; $hinmei=$_POST["hinmei"]; $db=mysql_connect("***","***","***") or die("接続失敗"); print("デ―タベースサーバーに接続できました<br>"); mysql_select_db("***")or die("データベースが見つかりません".mysql_error()); print("データベースに接続しました<br>"); $a="insert into kanri_list(no,hinmei)values('$no','$hinmei');"; mysql_query($a)or die("命令が違います"); $a="select * from kanri_list;"; $kekka=mysql_query($a)or die("命令が違います"); mysql_close($db); ?> 登録しました!<br><br> </body> </html> //管理表 *kanri.php <html> <meta http-equiv="content-type" content="text/html; charset=euc-jp"> <body> <form method="post" action="kanri1_1.php"> <h2>管理表</h2><br> 品名:<select name="kanri"> <? $kanri=$_POST["kanri"]; $db=mysql_connect("***","***","***") or die("接続失敗"); mysql_select_db("***")or die("データベースが見つかりません".mysql_error()); $a="select * from kanri_list;"; $kekka=mysql_query($a)or die("命令が違います"); while($b=mysql_fetch_array($kekka)){ print("<option value='".$b[1]."'>".$b[1]."</option>\n"); } mysql_close($db); ?> </select> <br> 注文数:<input type="text" name="kazu"><br> <input type="submit" value="登録"> </form> </body> </html> 上記の登録ボタンを押すと「命令が違います」とエラーが出ます。 *kanri1_1.php <html> <meta http-equiv="content-type" content="text/html; charset=euc-jp"> <body> <? $kanri=$_POST["kanri"]; $kazu=$_POST["kazu"]; $db=mysql_connect("***","***","***") or die("接続失敗"); mysql_select_db("***")or die("データベースが見つかりません".mysql_error()); $a="insert into kanri1_list(kanri,kazu)values('$kanri',$kazu');"; mysql_query($a)or die("命令が違います"); $a="select * from kanri1_list;"; $kekka=mysql_query($a)or die("命令が違います"); mysql_close($db); ?> 登録しました!<br> </body> </html>

    • ベストアンサー
    • PHP
  • phpとMySQLの連携の不具合

    こんにちは。 現在私はhtmlのフォームに文字を入力してデータベース内にデータを追加するプログラムを 作成しています。 ですがMySQLとの連携のところで行き詰ってしまい、どうにかみなさんのお力をお借りしたいです。 まずhtmlファイルです。ここに文字を入力してup.phpに値を渡しています。 <html> <head> <title>用語情報入力</title> </head> <body> 用語を入力してください。<br> <br> <form method="POST" action="up.php"> yougoid:<input type="text" name="yougoid" size="25"><br><br> 用語名:<input type="text" name="yougo" size="25"><br><br> 説明:<input type="text" name="sestumei" size="10"><br><br> 読み:<input type="text" name="yomi" size="10"><br><br> 講義回:<input type="text" name="kougi" size="10"><br><br> 回:<input type="text" name="kai" size="10"><br><br> <input type="submit" value="登録する"> </form> </body> </html> そしてこちらがup.phpファイルです。postで送られてきた値をMySQLに反映するプログラムです。 <html> <body> 用語情報<br><br> yougoid:<?php echo $_POST['yougoid'] ?><br><br> 用語名:<?php echo $_POST['yougo'] ?><br><br> 説明:<?php echo $_POST['sestumei'] ?><br><br> 読み:<?php echo $_POST['yomi'] ?><br><br> 講義回数:<?php echo $_POST['kougi'] ?><br><br> 回:<?php echo $_POST['kai'] ?><br><br> <?php $db = mysqli_connect("localhost", "root", "c0106426" , "network"); mysqli_query($db, "SET NAMES UTF-8"); $sql = "insert into employee (yougoid,yougo,sestumei,yomi,kougi,kai,) values (\"".$_POST['yougoid']."\",\"".$_POST['yougo']. "\",\"".$_POST['sestumei']. "\",\"".$_POST['yomi']."\",\"".$_POST['kougi']."\",\"".$_POST['kai']."\")"; $result = mysqli_query($db, $sql); if($result == TRUE) { print "データベースに格納しました。"; } else{ print "データベースに格納できませんでした。"; } mysqli_close($db); ?> </body> </html> データベースはnetworkという名前でテーブル名はyougoid,yougo.setsumei,yomi,kougi,kai というテーブルがあります。 現在の状況は最後のデータベースに格納・・・も表示されないので resultに値が返ってきていないと推測していますが エラーも出ない状況なのでどうしていいかわかりません。 実行結果を画像で添付いたします。よろしくお願いします。

    • 締切済み
    • PHP
  • PHPでMySQLのレコードを削除したい

    現在「基礎からのMYSQL」という本でXAMPPを導入しMySQL,PHPの基礎を勉強中です。 (mysql_query() を初めて学習中です。) 例にならってスクリプトを書いてみたのですが、MySQL内にあるレコードを削除するためのスクリプトがうまく作動しません。 (SELECT, INSERT, SEARCH は正常に作動します。DELETEだけがなぜかうまくいきません。) ApacheとMySQLは起動しています。 考えられる原因をおしえていただけませんでしょうか。よろしくおねがいいたします。 ソースコードは下記のとおりです。 ★HTML(トップページ) //メッセージ表示のスクリプトを呼び出すフォーム <form method="post" action="kantan_select.php"> メッセージを表示します<br> <input type="submit" value="メッセージ表示"> </form> //挿入のスクリプトを呼び出すフォーム <form method="post" action="kantan_insert.php"> 名前を入力してください<input type="text" name="a1"><br> メッセージを入力してください<input type="text" name="a2" size=150><br> <input type="submit" value="送信"> </form> //☆☆☆削除のスクリプトを呼び出すフォーム☆☆☆ <form mothod="post" action="kantan_delete.php"> 削除番号<input type="text" name="b1"><br> <input type="submit" value="削除番号送信"> </form> //検索のスクリプトを呼び出すフォーム <form method="post" action="kantan_search.php"> 検索キーワード<input type="text" name="c1"><br> <input type="submit" value="検索開始"> </form> ★レコード削除のPHPスクリプト <?php $s=mysql_connect("localhost","root","パスワード") or die("接続失敗"); print "接続しました<br>"; mysql_select_db("db1"); $b1_d=$_POST["b1"]; mysql_query("delete from tbk where bang=$b1_d") ; $re=mysql_query("select * from tbk order by bang"); while($kekka=mysql_fetch_array($re)){ print $kekka[0]; print ":"; print $kekka[1]; print ":"; print $kekka[2]; print "<br>"; } mysql_close($s); print "<br><a href='kantan.html'>メニューに戻る</a>" ?> <環境> Windows 7 XAMPP導入するための付属CD-ROMの内容  ・Apache(HTTPD2.2.6 + Openssl0.9.8e)   ・MySQL(5.0.45)  ・PHP(5.2.4)  ・PHP(4.4.7)  ・phpMyAdmin(2.11.1)  ・Zend Optimizer

    • 締切済み
    • PHP