PHP+MySQL掲示板作ろうぜ
■ このスレッドは過去ログ倉庫に格納されています
長期運用に耐え、勝手よく使える掲示板を生み出す。
クラス・ライブラリにして使いまわせるようにします。
MySQL以外のDBでも使えるようにAPI拡張も視野に入れて
基本APIと実装例
http://org.s38.xrea.com/bbs.php
臨時のログ・データ
http://org.s38.xrea.com/bbs.log
コレをベースに変更・改善を加えて各種機能を実装します。
ローカル・ルール
・みんなが気持ちよく参加できる雰囲気を作りましょう
・他者を不快にさせるような一方的な煽りは止めましょう
・荒らしやスレ違いは放置。放置できない人も荒らし同然。放置の美学
・厳格なバージョニングは必要でないが変更点はマメに報告しましょう。
>>548
2ch依存症だな
2chが嫌いといいつつ2chがないとなにも出来ない。 知識ゼロからがんばってXML化にこぎつけました。
スタイルシートだけでWebデザインが可能です。
http://arigato3.s36.xrea.com/x/bbs.php 知識ゼロからがんばってXML化にこぎつけました。
スタイルシートだけでWebデザインが可能です。
PHP4+MySQL
http://arigato3.s36.xrea.com/x/bbs.php 徳岡がNGワードてどういう事だ?出て来い管理人
使う側の権利もあっていいはずじゃないのか?
もっとさかのぼった所から議論しなけりゃいかんのか? サポート体制も整えたしじっくり作れるようになった
http://arigato3.s36.xrea.com
GNUに入れてくれないかな こんなのをGPLで配布しても誰も使わんよ。
これを改良するより1から作った方がよっぽど良い物ができる。 有用な物を作りたいんじゃなくて、登録してもらう事が目的なんだろ?
虚栄の権化だな >>566
お前はそんなつまらんギャグをかますために糞スレ立てたんか! 掲示板スクぐらいで評価してもらおうとは思ってないよ
GNU入りをねだるダシにする気もない。
自分のサイトに合ったデザインや構成で掲示板を組み入れたいとする。
それでプログラムはかけないがホームページエディタなら使えるって
人の為にAPI群と実装例を提示していとも簡単に実装できるような物を
作りたいわけ。
極端な話なら自分のサイトと全く同じにデザインで掲示板が組み込めるわけだ。
Web開設の底辺が底上げされれば幸いだな ヽYvV/
,; ⌒ヽ、ノ `ヽ、,,r'⌒ヽ
( ( ) ノ' 'ヽ ( ) ) ホジホジ
ミ / ,-=・-、 -=・-、ミ'´
,;彡 .,,..rー''´(Ciと'⌒^^ヽ、
彡 / .).ヽ ヽ (プゲラ
彡 人 ,ノ⌒) ト、 ヾ
彡彡 ヽ ヽニソ ノ`、 `ゞ
/彡ミミ彡``ヽ ー/シミシ シ ゙ヽ,
/ ヽ 、 ` ー- イノ ` 、 ミ `ミ
/ ` ヽ-ィ ヽシ ミ
..| _ヽ ノ ヽ ヽ 彡
.| /,ィ'"⌒`'-;,._ ` ) ,,;シ'´
..| ``'-;,._ FIGHTERS i^'"
ミ、 \| <(Ω)>|| |
 ̄`゙ミ、_,,,,,,;;彡ヽ,,, ヽ YY_ノ ノ
`、ソノノ;, ) / でかいAAって引用した人間のコンプレックスの大きさの表れだな おめえはコンプレックスなスクリプトばっか書きやがって>7 >>570
もし君が幾ばくかの進歩を得たなら、それが底上げだよ
他人には全く関係無いけどね レン鯖に飽きたと思ったら、掲示板作りまで飽きたのかよ。 スレが長くて読む気にならないので
あらすじきぼんむ >>583
> スレが長くて読む気にならないので
> あらすじきぼんむ
身の程知らずのバカが分不相応な事をして他人に迷惑をかけた。
これ以上でもこれ以下でもない。 入力チェックはデフォルトで名前、タイトル、本文となっています。
ini.phpで設定できるようにしますがまだ他の設定項目が機能していないので
そちらの実装を優先します。 >>585
誰に話してるんですか?
ここに協力者なんていないよ。 >>586
ここを日記代わりに使ってるようだ
つぶやき伸悟 この状態だと閉鎖的な使用法を目的としているコテハンスレですが。 これからPHP とMySQL を使って掲示板を作ろうと思うんですが、スレッドデータと返信データってどう管理するべきなんでしょうか?
不躾で申し訳ない。 若干スレ違いかもしれんが、やばい!
PHP+MySQLで掲示板作ってるんだからしょうがない。
「〜対応表」みたいに文字化け危惧文字(「表」など)を
タイトルや本文の最後なんかに持ってくると、
うまく書き込みが追加されないことが判明!
これはきっと、内部で文字コードEUCに変換したときに
最後が「表\」みたいにエスケープされて、MySQLのinsert文が
...,'〜対応表\','名前',...
になって、シングルクォーテーションがエスケープになってしまうからだ!
というわけでこのようなときにみなさまはどのように解決していらっしゃるのか教えれ。 これがPHPの中のMySQLクエリ。
mysql_query("insert into $tablename(daimei,namae,mail,hizuke,ip,honbun,url) values('$daimei','$namae','$mail',now(),'$ip','$honbun','$url')");
題名として「〜対応表」という文字列を書き込もうとしたら、失敗した。
おそらく、S-JISで入力した$daimeiをEUC-JPに変換した時点で、
$daimei = mb_convert_encoding($daimei,'EUC-JP','auto');
題名が「〜対応表\」になったために、MySQL文が
mysql_query("insert into $tablename(daimei,namae, ...) values('〜対応表\','名無しさん', ...)");
こんな感じになったんだと思われる。
書き込みに失敗するのは '対応表\', この部分が原因かと…。 >>597
$daimeiの後にスペース1つあけて試してみなよ。
あと、シングルコーテーション(’)じゃなくて、ダブルコーテーション(¥”)でくくってみれば?
うちのMySQL掲示板では問題ないよ。もともとEUCだからだろうけどね。 ありがとう。
"でくくってもダメでした。
。を付けて「〜対応表。」と書き込んだらうまくいきました。
でも、実はこの事情を説明するために本文中に'表\'とか
いろいろ書いたモノを送信したら、最後の文字は普通の文字なのにダメでした。
というわけで、
MySQL格納直前にaddslashesを、表示時のS-JIS出力直前にstripslashesを、
それぞれ付けてみたところ、うまく動いているように見えます。
($daimei $namae $honbun それぞれに同じ処理)
もっといい方法があるのかしら。 >601
"htmlslashes"でぐぐっても何も出てこないのですが…。 htmlescape のことかね。あまり関係なさそうだが 見た目はうまく動いてるように思えてたんだけど、なぜか
ATOK17発表
が文字化けしてしまった。しかも
ATOK17が発表
だとうまく書き込めるのに。原因が超わからん。 ウチではやっとこさ実用化できたよ。
文字化けも直ったし。
htmlslashesはやっておいたほうがいいね。
そうしないと改行を手書きで<br>をしなけりゃならん。
stripcslashesでエスケープ文字の除去を行うと、文字化けが発生する模様。
あーだ
こーだ
言ってねーで
ソース公開しなきゃ始まらないぞ
<?
class db
{
var $res;
function mysql_s($sql){
$myuser="";
$mypass="";
if(!$con=mysql_connect("localhost",$myuser,$mypass)){echo"conエラー";exit;}
if(!mysql_select_db($this->base,$con)){ echo"select ERROR"; exit; }
if(!$this->res=mysql_query($sql)){ echo"error<br>$sql"; exit; }
}
}
$db=new db;
switch($s){
case 1:
//投稿処理
$db->mysql_s(insert into .........);
exit;
//後は書く時間がないから誰か頼む
}
PHP+MySQLで掲示板作ってるんですけど
初歩的なことですが少し疑問に思いまして、
$con = mysql_connect($DBSERVER,$DBUSER,$DBPASSWORD);
だけで接続できますよね
$conって変数を定義するだけでなぜ接続できるのでしょうか? >>609
定義してるだけじゃない。
C言語の行数にして軽く数百行分の処理をしている。
その中で接続してリソースを返して、てな感じで楽に接続できるわけだ。 >610
なるほど PerlとPHPしかやったことなかったのでよくわからなかったのですが解決です!
ご教授ありがとうございました。 実際に俺が使用してるSQL用classのサンプルを貼ってみる
class sql {
var $SQL, $DB, $DBTYPE;
function dbsql(){
$this->SQL = $this->DB = array();
$this->DBTYPE = "MySQL";
}
function connectSQL(&$sql_host, &$sql_port, &$sql_userid, &$sql_passwd, &$sql_db, $id = 0){
$this->SQL[$id] = @mysql_connect("$sql_host:$sql_port","$sql_userid","$sql_passwd");
return $this->SQL[$id];
}
function selectdbSQL(&$sql_db, $sql_id = ''){
return (!$sql_id) ? @mysql_select_db($sql_db) : @mysql_select_db($sql_db, $sql_id);
}
function closeSQL($id = 0){
return @mysql_close($this->SQL[$id]);
}
function querySQL($query, $id = 0, $sql_id = ''){
$this->DB[$id] = (!$sql_id) ? @mysql_query($query) : @mysql_query($query, $sql_id);
return $this->DB[$id];
}
}
使い方は簡単なんで見てわかると思う MySQL+PHPで掲示板の書き込み作ってるのですが、
データベースに書き込めるときと書き込めないときが出るようになってしまいました。
なんでですかね? phpプログラムからmysqlへコネクトしたいのですが
Fatal error: Call to undefined function mysql_connect()
とエラーが出て接続できません…
どなたか原因を教えて下さい。
phpソース
$con = mysql_connect("localhost", "username", "");
何か設定を変える必要があるのでしょうか?
環境@php-5.0.3 apache_2.0.52 mysql4.0.13 >>616
MySQLサポート付きでコンパイルしたか?
phpinfo見てmysqlの項目確認。 >>616
確か、Windows側にDLLをコピーしたらいけるようになったよ。 微妙にスレ違いなんですが、ちょっと失礼します。
ずるぼん式うpろだで、ダウンロード数にあわせてリストがソートされる改造版があります。
単にそれをphpに移植したものがないかレッツphpさんの掲示板で質問しましたら、
そんな場合ソート処理はdbに渡すとおっしゃる方がおられまして、なるほどと思いました。
dbと連結すれば、もっと色々なことができるわけで。
掲示板にうpろだ機能を持たせたものでしかもスレッドフロート式というものも
魅力だなと思うのですが、高負荷化する改造は需要少ないから自作だなというのが
結論でした。
個人的には実力ないので老後の楽しみにとっといてもいいのですが、
このようなものを作ってる人、このスレの住人さんならご存じないかと思いまして・・・。 【CGI名】PHPぁぷろだ
【配布先URL】http://php.s3.to/bbs/bbs5.php
【依頼内容】DLkey機能とMD5表示機能をつけて欲しいです。
MD5はここ http://kemuri-net.dip.jp/~server/php/up/index.php
のような感じで。
よろしくお願い致します。 <?php
$db = mysql_pconnect( "localhost", "root", "●●●●●" );
echo $db;
?>
と書いた.phpファイルをうpして、開いてみてもブラウザ上に
・ソ
とだけ表示される。何が原因?入門質問でゴメソ。 >>624
echo $db;
じゃなく
var_dump($db);
なら少しはまともに表示される アホな質問ですいません。超初心者なもので。ただいま勉強中です。
データベース(mysql)の更新をphpでさせようと
input type="text" size="3" name="test" value=""
value値にnullを設定してみました。
フィールドタイプがtextになっていれば、空白が代入され、
フィールドタイプがintの所だと、0が代入されてしまいます。
null値を代入したいときはどうすればいいのでしょうか。
>>624
それは普通に出力して人が見るものでは無いだろ
>>624
文字コードがUTF-8だとしたら
インクルードしてるファイルのBOMを削除 結局、徳岡伸悟はDB使えないのか(w
HTML書く程度のPHPスクリプトしか作れないアフォだな。 だれか助けて下さい。
文字化けで困っています。どこのサイトを検索しても解決できません。
環境は PHP5 + MySQL + WindowsXP(IIS) で
フォームの内容をMySQLに「日本語」と書き込むと
フォーム送信の内容($_POST)はちゃんと「日本語」と表示されますが、
登録した内容を表示は「逓?{??」となってしまいます。
「php.ini」「my.ini」もSJISに統一したりEUC-JPに統一してみたり
してるのですが全然解決せず困っています。
だれか助けてください。
MySQLとSQLiteのどちらかを選べる掲示板を作ってるよ >>633
PEAR/DB使ったらいいんじゃないの 無料HPでphpが使えるところは、ほとんどPEAR付いてるって考えていいの? >>635
使えなければ自分のディレクトリにアップすればいい id(P Key)をオートインクリメントでinsertしたデータを、続けざまidでselectしたいと思ったらどんな方法がありますか? <ul id="move"> <li><a href="../">ここ</a></li> </ul>
<p>なんだかんだ</p>
<ul><li>あれ</li><li>これ</li></ul>
id="move"を頼りにして上のulだけをereg_replaceで置き換えたいんですが
どういうパターンにすればいいんでしょうか
今分かっている知識で書いたら下の</ul>までマッチしてしまいます 最近mysqlの勉強を始めたもので、質問です。
php.iniの設定で’;extention=php_mysql.dll’の’;’を外すと本に書いてあったので
外して、アパッチを再起動すると、’php_mysql.dll’がありませんというメッセージが出ます。
なぜでしょうか?
php_mysql.dll の前後にある’php_gd2.dll’’php_mbstring_dll’はエラーメッセージが
でません。
三つとも’extention_dir=’で指定したフォルダの中にあります。
環境はOS=WINXP、アパッチ2、php5、mysql4.0です。
わかる方教えて下さい、お願いします。
>>640
libmysql.dllをC:\WINDOWS\system32フォルダにコピー 「ソ」が文章の最後にくるとSQLクエリーのエラーが出る。
なんて糞なんだ。 >>643
「表」もね
というかちゃんとエスケープしろよ 質問です。
topicテーブル
| title | content |
|━━━━━━━━━━
| AAA | ああああ |
| BBB | いいい |
| ABC | ABC |
こんな感じのテーブルで
select * from topic where (title or content) like '%A%';←は動きません。イメージです。
みたいに条件('%A%')はひとつで、カラムをまとめた検索がやりたいのですが無理でしょうか?
select * from topic where title like '%A%' or content like '%A%';
これだと'%A%'をカラムの数だけ必要とするので
アドバイスお願いします。 >>645
カラムをconcat()でつなげたりしたことあるけどあんまり意味ないなーと思って今は後者の方法でやってる。 >>646
どうもありがとうございました。
確かにどっちでもいいですね。
でも見た目スッキリすると思うので早速使わせていただきます。 WindowsXP
Apache2.0.55
PHP 4.4.2
MySQL 4.1.18
上記環境で、php.iniのmbstring.internal_encodingをEUC-JP、my.iniのdefault-character-setをujisに設定しています。
このとき、特に文字コードを指定せずテーブルを作成し、EUC-JPで保存したスクリプトを実行した場合はDBに保存されるデータも文字化けはしませんでした。
しかし、文字コードをUTF-8としてテーブルを作成し、.htaccessでmbstringの各種文字コードをUTF-8にして、UTF-8で保存したスクリプトを実行した場合はDBに保存されるデータが文字化けしてしまいます。
これを回避する手段は無いのでしょうか。 ■ このスレッドは過去ログ倉庫に格納されています