そのため、MySQL を動作させるのに少し問題がありました。
Apache サーバーは稼働中で、PHP は適切にインストールされており、MySQL サーバーのステータスは実行中です。
呼び出すphpinfo()
と、mysql.sock の場所がわかり、フォルダーとファイルの両方が存在します。
OSX 10.8.4 を実行しています
このチュートリアルに従って、チャットがどのように機能するかを把握しようとしています: http://www.ibm.com/developerworks/library/x-ioschat/
そのため、php スクリプトを実行すると、ページにエラーが表示されます。私は PHP が初めてで、デバッグに苦労しています。インストールは特に面倒でした。
したがって、 content-type: text/xml をコメント解除しておくと、次のエラーが発生します。
列 1 の行 2 のエラー: ドキュメントが空です
また、ページが最初のエラーまでレンダリングされていることもわかります。そのため、ページを読み込んだときにページが空白であることは理にかなっています。
コメントが付けられると、エラーが少し意味を成し始めます。ただし、PHP に対する私の絶対的な初心者の性質を考えると、それらをナビゲートする方法がよくわかりません。
エラーは次のとおりです。
注意: 未定義のインデックス: 6 行目の /messages.php の過去
――これは当然だと思います。私はまだクライアント側を構築していないので、過去の変数は提供されていないはずです。
警告: mysql_fetch_assoc() は、パラメーター 1 がリソースであると想定しており、16 行目の /messages.php で指定されたブール値です。
--つまり、私のバックグラウンドはクライアント側なので、これは、$result 変数にブール値が格納されていることを示していmysql_fetch_assoc()
ます。else ステートメントがトリガーされる必要があるため、それmysql_query()
は適切に機能していないか、そのパラメーターが正しくないことを意味します。どちらか (どちらかの場合) もわかりませんし、どちらの解決策もわかりません。
警告: mysql_free_result() は、パラメーター 1 がリソースであると想定しており、24 行目の /messages.php で指定されたブール値です。
-- 繰り返しますが、上記と同じです。半分は理にかなっていますが、それを修正する方法が非常にわかりません。
そのため、エラーの後、下には何も表示されません。条件は、ブール値ではなくリソースが含まれているという前提で記述されているため、これは理にかなっています (私は思う??)
htmlentities()
私のphpファイルでは、チュートリアルと比較すると、 StackOverflowで呼び出しが不要であると読んだため、呼び出しを削除したことがわかります。どちらの方法でも取得していたエラーの状態は変更されませんでした。
とにかく、与えられたアドバイス/ヘルプに感謝します! これまでの私のコードは次のとおりです。
チャット.sql:
DROP TABLE IF EXISTS chatitems;
CREATE TABLE chatitems (
id BIGINT NOT NULL PRIMARY KEY auto_increment,
added TIMESTAMP NOT NULL,
user VARCHAR(64) NOT NULL,
message VARCHAR(255) NOT NULL
);
メッセージ.php:
<?php
ini_set('display_errors','1');
//header( 'Content-type: text/xml' );
mysql_connect( 'localhost:/private/var/mysql/mysql.sock', 'root', '' );
mysql_select_db( 'http://localhost/Documents/JoistChat/chat.sql' );
if ( $_REQUEST['past'] ) {
$result = mysql_query('SELECT * FROM chatitems WHERE id > '.
mysql_real_escape_string( $_REQUEST['past'] ).
' ORDER BY added LIMIT 50');
} else {
$result = mysql_query('SELECT * FROM chatitems ORDER BY added LIMIT 50' );
}
?>
<chat>
<?php
while ($row = mysql_fetch_assoc($result)) {
?>
<message added="<?php echo( $row['added'] ) ?>" id="<?php echo( $row['id'] ) ?>">
<user><?php echo( $row['user'] ) ?></user>
<text><?php echo( $row['message'])?></text>
</message>
<?php
}
mysql_free_result($result);
?>
</chat>
test.html:
<html>
<head>
<title>Chat Message Test Form</title>
</head>
<body>
<form action="http://localhost/JoistChat/messages.php"
method="POST">
User: <input name="user" /><br />
Message: <input name="message" /><br />
<input type="submit" />
</form>
</body>
</html>