トップページphp
1001コメント303KB

【PHP】質問スレッドpart31【php】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2005/11/27(日) 00:07:12ID:eBvjdczp
PHP全般の質問スレです。
【基本ルール】
・新規質問の方は上げてください。age進行でお願いします。
・質問者は2回目以降、最初のレス番号を名前欄に入れてください。
・回答者は質問者に対して>>(アンカー)をつけてください。
・煽り・荒らしは放置。荒らしに反応した香具師も荒(ry
・解決しなくてもこたえてもらったら礼を。
【質問テンプレ】
・マニュアルを調べたか、google検索したか(調べたキーワード)
・タイトル(禁:教えてください!etc) 例:requireとinclude
・内容 例:requireとincludeはどう違うのですか?
・質問する際には環境も明記。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
【PHP マニュアル】
http://www.php.net/manual/ja/
※マニュアル上部の「search for」から検索を活用すべし(便利)。

過去スレ、関連リンク、FAQ等>>2-10辺り
0624nobodyさん2005/12/21(水) 13:14:48ID:???
わ、わざとリロードしなかったわけじゃないんだからね!
分かったわよっ!別ファイルに書けばいいんでしょっ!......(アリガト)
06256192005/12/21(水) 13:22:09ID:???
うーん。そうか。
力になれなくてすまんな。

ところでeAcceleratorとPHPのバージョンは確認済みだよね?

あまり意味ないかもしれんが、うちのバージョンを書いておくね。

# php -v
PHP 5.0.5 (cli) (built: Nov 25 2005 17:25:57)
Copyright (c) 1997-2004 The PHP Group
Zend Engine v2.0.5, Copyright (c) 1998-2004 Zend Technologies
with eAccelerator v0.9.3, Copyright (c) 2004-2004 eAccelerator, by eAccelerator
06266142005/12/21(水) 13:27:39ID:???
#うちのはあつかましくエラーと共に表示されました。
#php -v
PHP Warning: Unknown(): Unable to load dynamic library './session.so' - Cannot open "./session.so" in Unknown on line 0
PHP Warning: Unknown(): Unable to load dynamic library './mysql.so' - Cannot open "./mysql.so" in Unknown on line 0
PHP 4.3.11 (cli) (built: Dec 10 2005 06:01:20)
Copyright (c) 1997-2004 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies
with eAccelerator v0.9.4-rc1, Copyright (c) 2004-2005 eAccelerator, by eAccelerator

ちなみに同じ環境(4.11と4.10の違い)の0.9.3の方はうまく動いているんです。
0.9.3に戻してやってみて、また報告します
0.9.4はまだバグが多いのかわかりませんが、eaccelerator.phpのCleanを押しても動きません。
0.9.3は正常に動作しますけどね。。
06276192005/12/21(水) 13:32:29ID:???
>>626
> #うちのはあつかましくエラーと共に表示されました。

そりゃそうでしょう。
libraryがロードできてないのはsessionとmysqlだからね。
ところで、sessionとmysql以外のモジュールはちゃんと動作してるの(php -i で確認)?
06281472005/12/21(水) 13:56:56ID:N7x21G0G
すみません
phpの配列について質問があります。

前のページで
<input type="hidden" name="20051218133001" value="1">
のhtmlタグのフォーム(POST)で飛ばし、下の記述で表示させようとしましたがエラーが出てしまいます。

if($_POST['20051218133001']){
print<<<EOM
<table>
<tr>
<td valign="top">$_POST['20051218133001']<td>
</tr>
</table>
EOM;
}

エラーは
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/***/***/***.php on line 5
と出ます。

ifの後の$_POST['20051218133001']は普通に処理しているのですが、
print<<<EOMの中の$_POST['20051218133001']が引っかかっているみたいです。
試しに後者を$_POST[20051218133001]と書くと普通にエラー無く表示されます。
次に前者も$_POST[20051218133001]とするとエラーは出ないのですが
ifの条件分岐に入ってくれません。

どなたかご指導よろしくお願いします。
06291472005/12/21(水) 13:57:27ID:N7x21G0G
ちなみに環境はレンサバ(さくらインターネットスタンダードプラン)
サーバOSはUNIX系OSのFreeBSDを使用しているそうです。
PHP のバージョンは 4.3.10 です。

よろしくお願いします。
06306142005/12/21(水) 13:57:38ID:???
動いています。

それどころか、
session

Session Support => enabled
Registered save handlers => files user eaccelerator

Directive => Local Value => Master Value
session.auto_start => Off => Off
session.bug_compat_42 => Off => Off
session.bug_compat_warn => On => On...

mysql

MySQL Support => enabled
Active Persistent Links => 0
Active Links => 0
Client API version => 4.0.26
MYSQL_MODULE_TYPE => external
MYSQL_SOCKET => /tmp/mysql.sock...

ときちんと動作もしています
0631nobodyさん2005/12/21(水) 14:03:21ID:???
>>628
なんかどっかで見かけたような。。
原因はヒアドキュメントの中でどこからどこまでが変数なのかが
PHPの中の人が判断できなくなっている、つーことだから、
{ } を使って明確にしてあげればよい。
{$_POST['20051218133001']}
06326192005/12/21(水) 14:38:45ID:???
>>630
お手上げです。

eAcceleratorの読み込みをやめて Warning が出てこなくなるなら eAcceleratorの
せいだろうし、そうじゃないなら session.so と mysql.so に問題があるんじゃないかと。
後は error_reporting = E_ALL にしたらもっと詳しいメッセージが出てこないかな?
0633nobodyさん2005/12/21(水) 14:40:00ID:ybikX0hy
movable type3.2をphp化したのですが、
phpのUTF-8を指定するには、どうすればいいですか?
htmlの場合は、
.htaccessに
AddType "text/html; charset=UTF-8" html
ですが、
phpの場合は、
AddType "text/html; charset=UTF-8" php
とするだけで良いのでしょうか?
サーバは、xreaです。
よろしくお願いします。
0634nobodyさん2005/12/21(水) 15:27:38ID:???
>>628
文字列(ヒアドキュメントを含む)の中で配列変数を書くときは
{$変数名['キー']} と書かなきゃいけないことは
マニュアルに明記されてる。
II言語リファレンス 6章「型」 参照のこと。
0635nobodyさん2005/12/21(水) 15:29:50ID:???
>>633
<?php
header("Content-type: text/html; charset=utf-8");
echo "Hello world";
?>
0636nobodyさん2005/12/21(水) 15:31:31ID:???
>>635
それは違うんでねーの。

>>633
とにかくここ嫁。
http://jp2.php.net/manual/ja/ref.mbstring.php
0637nobodyさん2005/12/21(水) 15:35:07ID:???
PHPにてデッドリンクのチェックを判定する際にはどのように判定しているのでしょうか?
タイトルに404などの文字が含まれているとかで判定するなんてことはないですよね。
0638nobodyさん2005/12/21(水) 15:35:47ID:???
Charsetを指定してヘッダーを送信したいんじゃないの?
iniのdefault_charsetがクリアされてなきゃデフォで送信されるけど
0639nobodyさん2005/12/21(水) 15:36:51ID:???
>>637
レスポンスヘッダー見ろよ
0640nobodyさん2005/12/21(水) 15:42:49ID:???
>>639
それはどのように見るのでしょうか?
0641nobodyさん2005/12/21(水) 15:47:06ID:???
>>640
レスポンスヘッダー
でぐぐれば分かるだろ。
0642nobodyさん2005/12/21(水) 15:55:24ID:???


php5なら
get_headers
0643nobodyさん2005/12/21(水) 16:02:51ID:???
>>641
>>642
ありがとうございました。
0644nobodyさん2005/12/21(水) 18:44:32ID:???
まぁまぁ
0645nobodyさん2005/12/21(水) 19:22:32ID:???
指定のフォルダ内にどのような拡張子が存在するのかを調べる場合、
どのような正規表現を書けばよいですか?

index.html
top.htm
frame.htm
top.jpeg
icon.gif
1.css
2.css

例えば↑のファイルがある場合、
↓の結果を返すようにしたいのです。
.html
.htm
.jpeg
.css
0646nobodyさん2005/12/21(水) 19:24:57ID:???
.*(\..*)
0647nobodyさん2005/12/21(水) 19:59:31ID:???
アスタリスクって。
06486142005/12/21(水) 21:34:35ID:???
報告です。
eAccerelator0.9.4-rc1 -> 0.9.3
にしたら正常通り動きました。

いろいろありがとうございました。
06496192005/12/21(水) 22:54:58ID:???
>>648
そか。良かった。
おつかれさん。ノシ
0650nobodyさん2005/12/22(木) 01:56:27ID:???
>>645
while($file = readdir($dp)) {
if(preg_match('/(\.[^.]+)$/', $file, $match)) $list[$match[1]] = '';
}
$extlist = array_keys($list);
0651nobodyさん2005/12/22(木) 08:20:36ID:???
>>645
正規表現使わなくても
$parts = pathinfo($file);
$ext = ".".$parts['extension'];

$pos = strrpos($file, ".");
$ext = ".".substr($file, -$pos);
0652nobodyさん2005/12/22(木) 09:12:08ID:???
>>651
下のやつは
$ext = strrchr($file, ".");
だと一発だね。
0653nobodyさん2005/12/22(木) 10:01:11ID:???
ファイル一覧をどう拾ってくるかにもよるけど、
「.」とか「..」とかのディレクトリ名を除外した方がいいかも。
あと、Windowsユーザには馴染みがないかもしれないが、
「.htaccess」みたいにファイル名が「.」から始まる場合は
普通はこれは拡張子とは言わない。

頭1文字目が「.」なファイル名を最初に除外しとくと
この辺が一発で解決するな。
06546282005/12/22(木) 10:08:50ID:ua9mUh2b
>>631
>>634

解決しました。どうもありがとうございました〜。
0655nobodyさん2005/12/22(木) 12:23:30ID:???
ぬるぬるぽっぽ
0656nobodyさん2005/12/22(木) 14:05:22ID:lB13zr56
webalizer以上の機能のアクセス解析作ろうと思ったら
おまえらならどれくらい時間必要?
0657nobodyさん2005/12/22(木) 14:17:50ID:???
>>656
webalizer以上の機能 つーのが何を指してるのか分からん。
0658nobodyさん2005/12/22(木) 14:23:55ID:???
萌え系のアクセス解析とかあったら
面白いけど、これはデザインの問題か
0659nobodyさん2005/12/22(木) 14:33:57ID:???
背景にでじこのエロ絵でも表示しておけ。
0660nobodyさん2005/12/22(木) 14:57:25ID:???
>>656
データマイニングとかやろうとしたら恐ろしい時間が。

>>658
萌え系って機能的には他のより劣ってるよな。

>>659
でじこは萌えない。
0661nobodyさん2005/12/22(木) 15:03:10ID:???
>>660
朝倉音夢
0662nobodyさん2005/12/22(木) 15:30:25ID:???
>萌え系のアクセス解析とかあったら

世界的に需要はあるだろうな。
ただゲームと同じで、日本では萌え=漫画、エロからはみ出せないから、
韓国人が先にやりそう
0663nobodyさん2005/12/22(木) 15:59:47ID:???
<ヽ`∀´>萌え業界はウリが完全征服するニダ
0664nobodyさん2005/12/22(木) 18:53:21ID:8W5z4hv+
C言語のatexitの様に、終了すると実行される関数を用意することは出来ますか?
ignore_user_abort(0) で終了されたときに、実行したい処理があるんです。
0665nobodyさん2005/12/22(木) 19:00:27ID:???
>>664
C言語に詳しくないのだけど、デストラクタのこと?

つ ttp://www.php.net/manual/ja/language.oop5.decon.php
0666nobodyさん2005/12/22(木) 19:01:34ID:???
register_shutdown_function
0667nobodyさん2005/12/22(木) 19:04:59ID:???
おお、はじめてみた。
面白そうな関数だな。
06686642005/12/22(木) 19:16:33ID:???
有り難う御座います!
解決しそうです。
0669nobodyさん2005/12/22(木) 19:34:14ID:???
質問です。

<html>
<?php
if ( ) {
echo "テスト1<br>";
} else {
echo "テスト2<br>";
exit;
}
echo "テスト3<br>";
?>
</html>

上記のような場合 if が真のときは期待通りの出力をしてくれるのですが、
偽のときは exit; 以降が出力されません。(当たり前だと思いますが)
<?php ?> から抜け出し、</html>まで出力させるにはどうすれば良いでしょうか?

Googleなどで検索しまくったけど分かりませんでした。お願いします。
0670nobodyさん2005/12/22(木) 19:37:10ID:???
exitを無くす
06716692005/12/22(木) 19:49:24ID:fg4VrG6a
>>670
exit; なくしたらテスト3も出力されますよね?
関数のように return; でも駄目だろうし(元々用途が違うと思うけど)


真の時
<html>
テスト1<br>テスト3<br>
</html>

偽の時
<html>
テスト2<br>


これを</html>(正確には ?> 以降)まで出力させるにはどうすれば。
0672nobodyさん2005/12/22(木) 19:57:44ID:???
>>671
テスト3が if()条件に左右されるものなら、
テスト1と同じ if() { } の中に含めるか、
テスト3の部分で 再度if() すればいいのでは?
0673nobodyさん2005/12/22(木) 19:59:08ID:???
>>671
<html>
<?php
if ( ) {
echo "テスト1<br>";
echo "テスト3<br>";
} else {
echo "テスト2<br>";
exit;
}
?>
</html>
0674nobodyさん2005/12/22(木) 19:59:17ID:wNhRz1jC
テスト3を真の方で処理
0675nobodyさん2005/12/22(木) 19:59:31ID:lB13zr56
$var = "私の苗字は山田、名前は太郎です\n私の苗字は山田、名前は次郎です";

ここから山田と太郎や
山田と次郎を抜き取って変数に入れるグッドなアイデア(または関数)を
教えてください。
0676nobodyさん2005/12/22(木) 19:59:45ID:???
>>673
あ,exit消し忘れ
0677nobodyさん2005/12/22(木) 20:00:21ID:???
>>675
マルチバイト関数
0678nobodyさん2005/12/22(木) 20:13:39ID:???
つmb_ereg系
0679nobodyさん2005/12/22(木) 20:18:13ID:01Hk6ZHq
もしくは性器表現
06806692005/12/22(木) 20:21:23ID:fg4VrG6a
すんません。沢山レスもらいましたが言葉足らずだったようで・・・


実際には条件式が多数にあり、その中のいろんな場所でexit;を使用しています。
主にエラーの時にエラー文を出力して exit; させていまして
フォームに入力されたデータが全て正しいとき(テスト3の場所に該当する)
MySQL接続して処理などをしています。


エラー文を function error() {} 等でまとめて処理する方法も考えましたが
error処理の最後で exit; させると結局同じだし・・・
0681nobodyさん2005/12/22(木) 21:04:46ID:???
>>680
出力させないだけで、処理自体は走って良いのなら。
<html>
<?php
if ( ) {
echo "テスト1<br>";
} else {
echo "テスト2<br>";
$ob = ob_start();
}
echo "テスト3<br>";
if($ob) ob_end_clean()
?>
</html>
0682nobodyさん2005/12/22(木) 21:06:21ID:???
>>680
で、処理そのものが走っちゃダメなら。
<html>
<?php
if ( ) {
echo "テスト1<br>";
} else {
echo "テスト2<br>";
$err = 1;
}
if(! $err) {
echo "テスト3<br>";
}
?>
</html>
0683nobodyさん2005/12/23(金) 11:19:05ID:???
>>669
処理部分丸ごと関数にしてreturn;でいいんじゃないか?

<?php
hoge();
function hoge() {
if($error) {
return;
} else {
echo "fubafuba";
}
}
?>
</html>
0684nobodyさん2005/12/23(金) 11:29:20ID:???
>>682のようにフラグ($err)を立てる事が多いんじゃないかねぇ。
PHP5だと 例外をthrowするのがおしゃれらしいけど。
0685nobodyさん2005/12/23(金) 11:45:06ID:???
HTMLにドメインロジックなんかが入ってる時点でおしゃれとかそういう次元じゃなくなってるよ
0686nobodyさん2005/12/23(金) 14:40:52ID:???
だね。HTML出力の中で処理分岐なんてさせんなよ。
主コードとデザインは分けろ。
デザインの中に入れていいロジックはデザイン切り替えのための判定だけだ。
0687nobodyさん2005/12/23(金) 14:45:09ID:???
ま、でも元質問者の意図は、HTML出力は関係なくて、

入力処理1
入力処理2
入力処理3
入力処理4
全ての入力処理がTRUEで実行する処理
入力処理の結果に関わらず実行する処理

という構成をシンプルに書く方法の模索だと思うけどね。
それを下手にHTMLやechoで例を書いたから叩かれる。
0688nobodyさん2005/12/23(金) 16:01:50ID:???
$var = "ab.0 cd.a bb.2 abc0";

$varから「ab.数字」という文字列を取ってくるにはどうすればいいでしょうか?
(この場合、ab.0です)
正規表現で preg_grep("ab.[0-9]", $var);
としたいところですが、.が正規表現として認識されてしまい、
abc0まで取得してしまいますよね?
正規表現にもエスケープとかあるのでしょうか?
0689nobodyさん2005/12/23(金) 16:06:51ID:???
"/ab¥.[0-9]/"でしょ
0690nobodyさん2005/12/23(金) 16:09:31ID:???
>>688
正規表現なのは"/ab[0-9]/"側であって、$var側は関係ない。
正規表現のエスケープ方法もあるが、この質問はそれ以前に理解が足りてない。
06916902005/12/23(金) 16:12:23ID:???
ごめん。「.」が見えてなかった。勘違い。>>689で正解。
あと「ab.」の部分が可変で何が入ってくるか分からない、みたいな場合は、
preg_match("/".preg_quote($str)."[0-9]/", $var)
とすることで自動エスケープさせられる。
0692nobodyさん2005/12/23(金) 16:16:35ID:???
>>688
どうでもいいが、preg_grepは配列からの抜き出ししかできないぞ
0693nobodyさん2005/12/23(金) 17:56:59ID:???
そろそろ正規表現スレに逝けや。
PHPの話じゃないし。
0694nobodyさん2005/12/23(金) 18:02:44ID:???
>>686
{if $var}○{else}×{/if}
とかやる場合は、どうするの?
設定ファイルに
v1 = '○'
v2 = '×'
とかやっておいて、PHP側で代入しておけばいいの?
ループ処理はどうするの?
パーツごとにテンプレートを分離して処理するの?
分岐とループはHTMLテンプレートには入っても仕方ないと思うけどねえ。演算なんかは予め処理しておくべきだろうけど。
0695nobodyさん2005/12/23(金) 18:22:25ID:???
>>694
> {if $var}○{else}×{/if}
> とかやる場合は、どうするの?
それが表示の切り替えに必要ならあっていいし、逆に表示のためのロジックが
主プログラム側に入り込んでるのも間違ってると思うな。
当然、表示のためのifやループはデザイン側に入ってて然るべきかと。
「表示」と「処理」の役割分担が分かってればレイヤー分けに迷わないんじゃ?

>>680はHTML表示の途中でDB接続の有無を切り替えてたりするのがおかしい。
0696nobodyさん2005/12/24(土) 15:28:41ID:???
PHPを導入するにあたり、Verについて悩んでおります。

私は、環境構築サイドの人間なのですが、
セキュリティ担当の部署から環境をなるべく
変更をされるのを好ましく思われないので
大きな脆弱性がでない限り環境を変更しない(UPDATEをしない)
環境が必要となっております。

PHP4とPHP5とPEARの導入等も考慮した場合
WebProgの方々から見た場合Verはいくつが妥当でしょか?
0697nobodyさん2005/12/24(土) 15:47:08ID:???
>>696
それはバージョンとは関係ないような...

セキュリティ担当が言うのはちまちましたセキュリティパッチなんて
当てたくねーよってこと? それとも、バージョンのメジャー番号が
変わるようなアップデートは運用ポリシー上望ましくないってこと?

前者ならそんな会社ヤヴァイし、後者ならセキュリティパッチを
ちゃんと後方互換性とか考えて作るベンダを選ぶ方が大事なのでは。
0698nobodyさん2005/12/24(土) 16:33:13ID:???
>>696
PHPなら最新版以外選択の余地ないでしょ。
0699nobodyさん2005/12/24(土) 16:45:45ID:???
>>696
好ましく思わないのが開発担当ならまだ分かるがセキュリティ担当?
だったらPHPの脆弱性なんてマイナーバージョンが3つも上がれば山ほど出てくるから、
ほとんど毎回アップデートしないと意味ないと思うが。
PHPを大雑把にアップデートしないってのは、WindowsUpdateをこまめにかけずに
SPが出てくるまで待ってるのに等しい。
ユーザ側ならともかくセキュリティ担当がそれじゃダメだろ。
0700nobodyさん2005/12/24(土) 20:21:14ID:???
で、バージョンアップすると派手に動かなくなるんだよねえ。
アパッチのバージョンアップどころの騒ぎじゃない。
0701nobodyさん2005/12/24(土) 20:26:04ID:???
昔のprintfの一件以来、バージョンアップは1ヶ月くらい様子を見てからにしてるなあ
PHPはまだ枯れていないから、心配ならperlとかにするしか無いな
0702nobodyさん2005/12/24(土) 20:39:48ID:???
>>700
そーそー。だから、普通はセキュリティ担当はアップデートしたがり、
開発担当は待ってくれと止める、というパターンになるんだよね。
セキュリティ担当もアップデートするつもりがないなら
いっそ4.3.4くらいのバージョンでも全然問題ないのでは。
現行の4.4.1とか、mb_send_mail()にバグあるしさー
0703nobodyさん2005/12/24(土) 20:43:17ID:???
ま、とりあえず現状で最大級の脆弱性が塞がってるのは
4も5もそれぞれ最新版1個しかないんだから、選択の余地は無いよね。
>>696って、今のセキュリティ状態を確認した上でこの質問してんのかね?
0704nobodyさん2005/12/24(土) 20:49:31ID:???
>>702
>現行の4.4.1とか、mb_send_mail()にバグあるし
ちなみにどういうバグ?
0705nobodyさん2005/12/24(土) 21:03:59ID:???
文字化けするケースあり
0706nobodyさん2005/12/24(土) 21:04:56ID:???
あと、第4パラメータが完全に無視されてるとか。
0707nobodyさん2005/12/24(土) 21:05:22ID:???
あぁ、なんだやっぱりPHPのバグだったのか
以前実際に起こってちょっと参った…
0708nobodyさん2005/12/24(土) 21:05:56ID:???
思い切ってPHP3を使おうと思う
0709nobodyさん2005/12/24(土) 21:38:44ID:???
>>708
閉じた世界ならいいんじゃね?
0710nobodyさん2005/12/25(日) 00:31:00ID:???
華麗に進入
0711nobodyさん2005/12/25(日) 14:45:31ID:Tho8NAOl
PHP + MySQL で複数人使用可なスケジューラーを作成していたのですが、
ログイン時に、データベースのテーブルに登録済みのIDとPWにマッチすれば認証OKで
その後、自分のスケジュールやプロフィール変更が可能という感じに作りました。

ここで問題点だと思うことを見つけたのですが、
ローカルテストのみだったので、全てのMySQL接続に root@localhost を使用していました。

前までは Perl でテキストにIDとPW保存とかしてたレベルなので気付かなかったのですが、
MySQL接続自体に各個人のID・PWを使用して管理するほうが良いのでしょうか?
0712nobodyさん2005/12/25(日) 15:00:55ID:???
>>711
デフォルト管理ユーザのrootを普通に使ってちゃまずいだろ。
(権限変えてるなら別だが)
PHPアプリからの接続用に適当な権限を設定した
専用ユーザ作って、それ使え。
0713nobodyさん2005/12/25(日) 15:05:51ID:???
>>709
地球上で閉じてます
ならいいですね
07147112005/12/25(日) 15:13:50ID:???
管理人側で予めユーザ登録しておき、POSTされたID・PWでMySQL接続する場合


$login_id = $HTTP_POST_VARS["login_id"];
$login_pass = $HTTP_POST_VARS["login_pass"];
$db_connect = mysql_connect("localhost", $login_id, $login_pass);
if ($db_connect == False) {
print ("認証失敗");
exit;
}
認証後の処理


こんな感じだと思いますが、
結局各個人のスケジュールやプロフィール編集などする場合、
その該当レコードを検索する必要があって、そこにはIDとかが必要だろうし…
ユーザごとにテーブル作成するのはありえないだろうし、


って書いてたら>>712さんキター
分かりました。予め通常のデータ操作のみ可能なユーザを作成し
ログインした人全員が、そのMySQLユーザで接続して書き込みすればいいのですか
ありがとうございました。
0715nobodyさん2005/12/25(日) 16:41:24ID:???
>>714
勿論アプリケーシンにもユーザという概念があるのだから
アプリケーションの部分でユーザアカウント処理と
その為にデータベース(ファイルでも良いけど)に
アカウント管理用のテーブルを設けるのだけどね。
0716nobodyさん2005/12/25(日) 20:13:40ID:WvivzG1I
さくらでcron登録したスクリプトがちゃんと動いてない
みたいなんだけど、何で?

PEARのXML_RSSオブジェクト->parseがダメなみたいっす。
ブラウザからスクリプトにアクセスすればちゃんと動くのに。
0717nobodyさん2005/12/25(日) 20:49:11ID:???
さくらの環境が分からないのでありがちなケースだと、
実行時のカレントディレクトリが違うんで相対パスがこけてるとか。
0718nobodyさん2005/12/25(日) 21:41:54ID:hD4Vkj0e
はじめまして。

自分は現在
<?php echo "
〜〜〜
"; ?>

で、phpでホームページを作っているのですが、そのホームページの中に
ttp://php.s3.to/simple/#short

ここの「−ショートメッセージ−」という物を取り込みたいのですが、どうすればよいのでしょうか。
普通に取り込んでも
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING
とエラーが出てしまい、取り込めません。
0719nobodyさん2005/12/25(日) 21:48:35ID:???
>>718
普通に取り込んだってのがどういう取り込み方をしたのか分からんのだが。
0720nobodyさん2005/12/25(日) 21:55:47ID:hD4Vkj0e
>>719

とりあえず「"; ?>」から下に、そのHPにかいてる

「<?
$lines = file($logfile);//ファイルを配列に読み込む
 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
echo $lines[$i];
?>」

をかいて、メッセージボードを設置したい場所に

<td>

<form method=\"post\" action=\"<? echo $_SERVER['PHP_SELF']; ?>\">
<font face="Arial"><b>-ShortMessage- 自由に書き込んで下さい</b> <small>b,i,s,uタグ可</small></font><br>
<b>N:</b><input name=\"name\" type=\"text\" size=\"10\"
maxlength=\"10\" value=\"<? echo $_POST['name']; ?>\">
<b> : </b><input name=\"message\" type=\"text\" size=\"40\" maxlength=\"60\">
<input name=\"submit\" type=\"submit\" value=\" Send \"><br>
</form>

</td>

としてみたところ、エラーがでました。
0721nobodyさん2005/12/25(日) 22:03:35ID:???
>>720
全然普通じゃないじゃん。

> <form method=\"post\" action=\"
この辺のエスケープから察するに、フォームのHTMLをprintか何かで出力してるのか?
だったら
> <? echo $_SERVER['PHP_SELF']; ?>
これをそのまま書いてたらダメだろ。
0722nobodyさん2005/12/25(日) 22:19:28ID:hD4Vkj0e
>>721
すみません、ttp://php.s3.to/simple/#shortにはそう書いてありましたのでそうしてしまいました。

たしかに<? echo $_SERVER['PHP_SELF']; ?> の行でエラーがでます。
どのようにすれば改善できるのでしょうか。
0723nobodyさん2005/12/25(日) 22:25:03ID:???
PHP内でPHPの宣言しなきゃいいだけ
0724nobodyさん2005/12/25(日) 22:36:53ID:hD4Vkj0e
>>723
なるほど、ありがとうございます。
じゃあttp://php.s3.to/simple/#shortに書いてある方法と同じですね。

そのページにかいてある方法では、

使用するページの拡張子を.phpにして、<?include("short.php");?>を挿入します。

と書いてありますが、 「<?php echo "」内に「<?include("short.php");?>」を書くとエラーが起きてしまいますが、
■ このスレッドは過去ログ倉庫に格納されています