くだすれPHP(超初心者用)4
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
2008/06/13(金) 20:32:36ID:???もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
PHP使いが優しくコメントを返しますが、
お礼はPHPの布教と初心者の救済をお願いします。
PHP Home Page
http://www.php.net/
http://jp.php.net/
前スレ: くだすれPHP(超初心者用)3
http://pc11.2ch.net/test/read.cgi/php/1193295871/
適当に関連スレ(マルチはだめぽ)
【PHP】下らねぇ質問はここに書き込みやがれ 69
http://pc11.2ch.net/test/read.cgi/php/1211879073/
0003nobodyさん
2008/06/17(火) 20:01:46ID:Xhinm60Q0004nobodyさん
2008/06/17(火) 22:08:49ID:???0005919です。
2008/06/18(水) 00:58:52ID:eWKB+6dR大角本でわからないところがあり質問です。
カテゴリーのところがよくわかりません。
一応カテゴリーに関するところのソースをUPしたんですが
http://gichioka.web.fc2.com/document.rar
誰か説明してください。
よろしくお願いします。
特になんでこれでcategoryが作られるのかわかりません。
新しくカテゴリーが、これであとなんで商品登録ができるのでしょうか?
0007919です。
2008/06/19(木) 01:07:52ID:uVAJKLwkわからない。
0008919です。
2008/06/19(木) 01:11:28ID:uVAJKLwk0009nobodyさん
2008/06/19(木) 15:20:33ID:byCSm/IpPCだと、
コメントを削除→元の画面
→コメントが削除されている
ケータイだと、
コメントを削除→元の画面
→コメントが表示されたまま(実際にはデータは消えいてる)
更新すると、コメントが削除されている画面が表示される。
どうも、ケータイだと前の画面の情報を掴んだままの状態があるようです。
cache-control
などをやっていますが、効果はないようです。
ケータイのブラウザに、昔の情報を表示させない方法はご存知ありませんか?
0010nobodyさん
2008/06/19(木) 15:30:10ID:???0011nobodyさん
2008/06/19(木) 15:35:08ID:byCSm/Ipあっ、なるほどURLと画面が紐づいているなら有効そうですね。
試してみます。
0015nobodyさん
2008/06/20(金) 23:47:29ID:???を使いたいのですが、下記のようなエラーが出てきます。
なんとか自分のHPに設置したいのですが、どこをどう直せばいいのやら
わかりません。
Warning: main(XML/RSS.php) [function.main]: failed to open stream:
No such file or directory in /home/sites/lolipop.jp/users/main.jp-
○○○/web/allblog/rssup.php on line 5
Fatal error: main() [function.require]: Failed opening required
'XML/RSS.php' (include_path='.:/usr/local/lib/php:/usr/local/lib/php/Smarty')
in /home/sites/lolipop.jp/users/main.jp-○○○/web/allblog/rssup.php on line 5
レンタルサーバーはロリポップ
サブドメインでallblog.ドメインとしてます。
ファイルは
allblog
├reeup.php
├RSS.php
├PEAR.php
├Parser.php
├index.html(このHTMLに<?php include("rssup.php"); ?>を貼ってます)
├.htaccess(中にAddType application/x-httpd-php .htmlと書き込んだだけ)
なんとか動かしたいのですがどなたか親切な方教えていただけないでしょうか?
0016nobodyさん
2008/06/21(土) 01:26:38ID:???今、reeup.phpの5行目が有効になってると思う。
ソレをコメントアウトして、
3行目をコメントインしたら、動くんじゃないかなぁ。
0018nobodyさん
2008/06/21(土) 01:52:50ID:???今後も似たようなエラー出てくると思うから、
思い立ったときにでも、エラーメッセージをそのまま検索とかして、何のエラーかとか、
少し学習するのもいいと思う。
がんばって下さい。
0019nobodyさん
2008/06/22(日) 13:25:43ID:PqDX8Tujお勧めのHPとかありますか。
0020nobodyさん
2008/06/22(日) 15:16:41ID:???http://jp2.php.net/manual/ja/
0021nobodyさん
2008/06/22(日) 16:53:20ID:???PHP 入門
でググって出てきたサイトを上から眺めていけばいいんじゃないかな。
ほでなすPHPとかでも勉強にはなった。
まぁ、入門っていうなら、PHP関連の書籍スレでも眺めて、初心者向けでいい本を読むのがいいかな。
0022nobodyさん
2008/06/25(水) 02:35:31ID:???基礎からのPHPでの質問ですが、admin.phpのところで、
if (isSet($_GET['tab']) && $_GET['tab'] == 'conf')
{
require('adminConfig.php');
}
else if (isSet($_GET['tab']) && $_GET['tab'] == 'edit')
{
require('adminEdit.php');
}
else if (isSet($_GET['tab']) && $_GET['tab'] == 'list')
{
require('adminList.php');
}
else
{
require('adminConfig.php');
の部分でisSet($_GET['tab']) の意味がわかりません。
どっからtabはでてきたんですか?
http://gichioka.web.fc2.com/blog.rar
ここにソースを保存したので、よろしくです。
0023nobodyさん
2008/06/25(水) 03:03:27ID:???GETメソッドと、POSTメソッド、って言うものを理解しないと正直きつい。
まぁ、とにかく、
このadmin.phpにアクセスするときに、
ttp://www.example.com/admin.php?tab=conf
とか、って書いた場合、これはGETメソッドで、そのadmin.php以下のプロパティを渡すんだ。
で、ソレはPHPが自動的に、$_GETっていう連想配列に渡される。
上の例だと、$_GET['tab']に、'conf'が渡されるわけだ。
POSTメソッドで渡されたものは、$_POSTに渡されてくる感じ。
で、分かるかな。
適当な回答なので突っ込みあれば宜しく。
0025nobodyさん
2008/06/25(水) 19:14:43ID:???よくわかりました。
ありがとうございます
0026nobodyさん
2008/06/25(水) 21:01:39ID:57l0ft98大角本で質問なんですが、
?
if ( $_SESSION['checked_item'] != '' ) {
foreach( $_SESSION['checked_item'] as $value ) {
$sql = "select * from item
left join author on item.author_id = author.author_id
where item_id = '$value'";
$result = mysql_query( $sql );
while ( $item = mysql_fetch_array( $result ) ) {
?>
の部分の$_SESSION['checked_item']の'checked_item'はどこからきたの?
あと$sql = "select * from item
left join author on item.author_id = author.author_id
where item_id = '$value'";
このsql文はなんでしょうか?
教えてください。
ソースはこちらにあります。
http://gichioka.web.fc2.com/sample-ec101.zip
0027nobodyさん
2008/06/25(水) 21:03:44ID:???0028nobodyさん
2008/06/25(水) 21:18:45ID:???0029nobodyさん
2008/06/25(水) 21:18:57ID:57l0ft98sessionとmysql見てみたんですが、
sqlに関しては左側の部分をとりだすとのことなんですが、
いまいち意味がわかりません。
よろしくお願いします。
author.author_id ここの部分とか....
わかりません。
0030nobodyさん
2008/06/25(水) 21:22:09ID:57l0ft98もしだけならここ見たらいいよとかのURLやここに聞いたらいいよ
とかのヒントだけでもお願いします。
0031nobodyさん
2008/06/25(水) 21:22:35ID:???2.本読め
3.リファレンス読め
0032nobodyさん
2008/06/25(水) 21:23:06ID:???まぁ、超初心者スレだから、そういうなよ。何をどう検索したら良いかとかいまいちピンと着てないだけかもしれないでしょ。
とりあえず、>>26は、そのSQL文の何がどうわからないのか教えてよ。
$_SESSIONは、セッション変数って奴で、多分別のファイル見れば、セッション変数に値入れてる行があると思うよ。
詳しくは、
http://jp2.php.net/session
003332
2008/06/25(水) 21:26:52ID:???恥ずかしい。
>>29
item.author_idってのは、itemテーブルのauthor_idフィールドのこと。
author.author_idってのは、authorテーブルのauthor_idフィールドのこと。
0034nobodyさん
2008/06/25(水) 22:10:36ID:???・PHP 5.26 @ WinXP SP2
・ファイルは BOM無しのUTF8 で保存
・mbstring.internal_encoding = UTF-8
・mbstring.http_output = pass
・mbstring.http_input = auto
以上の環境にて、以下のようなスクリプトを動作させたとき、
<?php
var_dump($_GET);
?>
$_GET に日本語が含まれると文字化けを起こしてしまいます。
mb_detect_encoding を使ってみた結果、$_GET が SJIS で渡されており、これがファイル保存時の文字コードと異なるために、
文字化けを起こすものと思われます。
これをどうにか解消したい($_GETをUTF8で受け取ってほしい)のですが、どのようにすればよいか検討がつきかねます。
どなたか、ご助力いただけると幸いです。よろしくお願いします。
003534
2008/06/25(水) 22:11:44ID:???・PHP 5.2.6 @ WinXP SP2
です。
0036nobodyさん
2008/06/25(水) 22:15:56ID:???0037nobodyさん
2008/06/25(水) 22:23:08ID:6PfOtUiM・ファイルは BOM無しのUTF8 で保存 に含めたつもりでしたが、
HTMLもUTF8になっています。
0038nobodyさん
2008/06/25(水) 22:48:20ID:???HTMLの<head>タグに、
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
を突っ込んだらどうよ。
003934
2008/06/25(水) 22:48:25ID:???同じように $_POST も試してみましたが、こちらは文字化けは起こらず、mb_detect_encodingの結果も UTF-8 でした。
発生するのは $_GET のときのみのようです。
0040nobodyさん
2008/06/25(水) 22:50:15ID:???ありがとうございます。
meta に入れるのもやってみました。
やはり、$_GET で受け取った文字列だけが文字化けが起こします。
0041nobodyさん
2008/06/25(水) 22:54:13ID:???あぁ、
日本語WindowsのアプリってエンコードSJISだから、GETメソッドでクエリ送れば、SJISになりますよ。
http://example.com/index.php?hoge=あいうえお
とかやると。
URLに渡すときはURLエンコードとかかけなきゃいけないんじゃないかな。
0042nobodyさん
2008/06/25(水) 23:04:21ID:???0043nobodyさん
2008/06/25(水) 23:06:51ID:???情報小出しになってしまってごめんなさい。
はい、アドレスバーに直接打ち込んでテストしています。
あきらめて、SJISでプログラムしたほうがいいのでしょうか……。
0044nobodyさん
2008/06/25(水) 23:08:44ID:???んでもって、本番でもアドレスバーから直接入力するんですか?それともページ中にリンク張るんですか???
0045nobodyさん
2008/06/25(水) 23:12:40ID:???本当に申し訳ないです。
もちろん、ページ中からリンクを貼りますが、$_GET から値を持ってきて、HTML中で表示させたときに文字化けしてしまうとなると、
form などから get で送って、次のページで受け取り表示する、ということができないので、何とか解決したいと思っています。
0046nobodyさん
2008/06/25(水) 23:15:52ID:???form から get で送ればURLエンコードされるよ
?hoge=あいうえおの部分はinput type=hiddlenで指定する
0048nobodyさん
2008/06/25(水) 23:19:29ID:???よく分からん。
HTML中に<a href="hoge.php?q=あいうえお">とか書くってこと?
それともフォームでmethod="get"でinput type="text"に日本語入力してもらうってこと?
いずれも適切にエンコード設定すれば文字化けなんかしないから大丈夫
0049nobodyさん
2008/06/25(水) 23:19:33ID:???あれれれ……?
そのとおりです。formから送ったらgetでも正常でした。
ってことは、「アドレスバーから直接打ち込んでいた」ことが原因だったようですね……。
これだけのために、本当にご迷惑をおかけしました。
情報の小出し、気をつけます。
ありがとうございました。
0050nobodyさん
2008/06/25(水) 23:40:40ID:???0051nobodyさん
2008/06/26(木) 23:16:43ID:???「item.php」のこの部分みたい
if ( ++ $_SESSION['checked_item_num'] > 4 ) $_SESSION['checked_item_num'] = 1;
if ( ! in_array( $_GET['item_id'], (array)$_SESSION['checked_item'] ) )
$_SESSION['checked_item'][$_SESSION['checked_item_num']] = $_GET['item_id'];
ところで二行目の (array) ってなんの意味があるの?
だれか教えて下さい。
0053nobodyさん
2008/06/27(金) 00:15:13ID:???こういう使い方なら理解できるんだけど
function foo($value)
{
$array = (array) $value;
print_r($array);
}
なんでif()の条件に
if ( ! in_array( $_GET['item_id'], (array)$_SESSION['checked_item'] ) )
こういう使い方をするんだろ。
0054nobodyさん
2008/06/27(金) 00:23:41ID:???http://php.net/in_array
0055nobodyさん
2008/06/27(金) 00:26:03ID:???$_SESSION['checked_item']が配列じゃなかったときにエラーはかれるのを回避したかったんじゃないの?
(array)で型キャストすれば単一文字列が入ってても、配列に変換されるし。
0056nobodyさん
2008/06/27(金) 00:43:47ID:???要素が一つでも配列は配列だし。
うーん。
眠いから明日また考えてみる。
ありがとう。
0057nobodyさん
2008/06/27(金) 00:50:44ID:???$_SESSIONは配列かもしれないけど、
$_SESSION['checked_item']は、配列じゃないかもしれないだろ?
0058nobodyさん
2008/06/27(金) 02:50:58ID:???0059nobodyさん
2008/06/27(金) 04:01:35ID:XEI5jC31if ( ! in_array( $_GET['item_id'], (array)$_SESSION['checked_item'] ) )
$_SESSION['checked_item'][$_SESSION['checked_item_num']] = $_GET['item_id'];
僕もわかりません。
(array)と結局なんの処理なんでしょうか?
0061nobodyさん
2008/06/27(金) 07:32:24ID:???0062nobodyさん
2008/06/27(金) 12:39:58ID:???item_idがその中に無ければ配列として追加してってる感じ?
その配列キーは$_SESSION['checked_item_num']で最大4まで
それ以上の場合は1に戻す
006356
2008/06/27(金) 22:24:17ID:???やっと理解できました。
array型へのキャストは、スカラならその値をひとつの要素とした配列に
配列ならそのままの状態、というふうに切り替わるんですね。
そこを知らなかったから余計に混乱してました。
ありがとうございます。
0064nobodyさん
2008/06/27(金) 22:42:45ID:???0065nobodyさん
2008/06/27(金) 23:39:22ID:???型キャストって言葉が出てこなかったら、(array)で何が起こってるかっていうのは、
検索しづらいんじゃない?
きっかけとかとっかかり掴みづらい内容ではあったと思う。
超初心者スレだし、多めに見てやりなよ。
0066nobodyさん
2008/06/27(金) 23:44:38ID:???0067nobodyさん
2008/06/27(金) 23:56:10ID:???あとマニュアルが一番基礎の教科書
0068nobodyさん
2008/06/28(土) 00:44:20ID:???0069nobodyさん
2008/06/28(土) 00:46:53ID:???0070nobodyさん
2008/06/28(土) 07:49:57ID:9QUTsyON$str = <<<EOM
あああ<br />
いいい<br />
ううう<br />
<!--S-->
えええ<br />
おおお<br />
<!--E-->
EOM;
このうち<!--S-->と<!--E-->で囲まれている<br />だけを削除したいのですが、
正規表現を使って綺麗に書けるでしょうか?
以下のように試したのですが、<!--S-->と<!--E-->が消えるだけでした。
$str = preg_replace("/<!--S-->([\W\w]+)<!--E-->/",str_replace("<br />","","\\1"),$str);
また、<!--S(E)-->で囲まれている部分は改行や半角英数字などが含まれる場合があります。
どなたかご教示いただけますでしょうか。よろしくお願いいたします。
0071nobodyさん
2008/06/28(土) 07:57:27ID:???0073nobodyさん
2008/06/29(日) 10:08:17ID:l4KJ7KZ4同じ方法でUTF-8を判別させる方法てありますか?BOMは
考慮にいれたくないです。
0074nobodyさん
2008/06/29(日) 17:48:22ID:???0075nobodyさん
2008/06/29(日) 18:23:50ID:hneArZSD基礎からのPHPからの質問なんですが、
自分のサーバーに移行して実行したところ、
loginForm.phpでIDとパスワードを聞かれて入力したいのですが、
うごきません。というかIDとパスワードはなんなんでしょうか?
本にはroot,rootpassと書いてあったんですが、動きません。
すべてデータベースも起動させているのですが、pearも入っています。
http://gichioka.web.fc2.com/blog.rar
ここにソースを保存したので、よろしくです。
0076nobodyさん
2008/06/29(日) 18:31:26ID:???それよりおまえ、>5で>26だろ?
SQLを基礎から勉強してこいって。
0077nobodyさん
2008/06/29(日) 18:41:10ID:hneArZSDよろしくです。
SQLの勉強もします。
お願いします
0078nobodyさん
2008/06/29(日) 18:43:49ID:???0079nobodyさん
2008/06/29(日) 19:07:35ID:hneArZSD0080nobodyさん
2008/06/29(日) 19:10:11ID:???0081nobodyさん
2008/06/29(日) 19:14:08ID:hneArZSD今回これがなぜうごかないのかわかりません。
この板ではだめですか?
0082nobodyさん
2008/06/29(日) 19:15:56ID:hneArZSDあと、ログイン画面は表示されるのですが、
下のトップページに戻るは真白です。
よろしくお願いします。
0083nobodyさん
2008/06/29(日) 19:42:13ID:???0084nobodyさん
2008/06/29(日) 20:50:46ID:hneArZSD0085nobodyさん
2008/06/29(日) 21:24:23ID:???0086nobodyさん
2008/06/29(日) 22:42:12ID:???0087nobodyさん
2008/06/30(月) 01:49:34ID:???0088nobodyさん
2008/06/30(月) 02:51:43ID:???0089nobodyさん
2008/06/30(月) 18:04:53ID:???テーブル、カラム、データベース全体……個別個別で細かく設定できすぎてよくわからない。
0090nobodyさん
2008/06/30(月) 22:24:41ID:???どこか参考になるサイトありますか?
/* PUSH */
$arr = array();
$num = 5; //意味ないかもしれませんが・・・
for($i = 0;$i < $num;$i++)
{
$arr[] = $i; //array_push($arr,$i); とやろうとしたけど、これは無理でしょうか。
}
$ct = count($arr);
echo "要素数:$ct\n");
・
・
・
・
てな感じで書いてるんです。
本当はarray_pushやarray_pop、unshiftやらを使いたいのですが、
これら全てが上手く動いてくれません。助言お願いします。
0091nobodyさん
2008/06/30(月) 22:27:09ID:???0092nobodyさん
2008/06/30(月) 22:31:07ID:???for文の中身は確か、
$arr[] = $i + 1;
の間違いでした、スイマセン。
echoで$arrの中身を順番に表示させると、
1
2
3
4
5
という風になるんですが、array_pushで>>90のコメントで書いている通りのコードで
実行させると、配列から何も取り出せてなかったんです。
0093nobodyさん
2008/06/30(月) 22:32:46ID:???0094nobodyさん
2008/06/30(月) 22:34:22ID:???実は入社してから、初めてPHPを触りまして、まだ2日目です。
0095nobodyさん
2008/06/30(月) 22:35:55ID:???0097nobodyさん
2008/06/30(月) 22:40:44ID:???pushの部分では、>>90の通りです。
後は、echoで&arrの中身5つを順に表示させて終わりです。
$arr[] = $i + 1;
の下に、
echo = "$arr[i]\n";
これだけです。
ちなみにstackクラスの中でpushとpopの関数を作っています。
0098nobodyさん
2008/06/30(月) 22:41:37ID:???0099nobodyさん
2008/06/30(月) 22:42:43ID:???ああ・・そうです、すいません
まだ$つけるの慣れてないものでつけ忘れました・・・
実際のコードではつけてますので。
0100nobodyさん
2008/06/30(月) 22:45:49ID:???$arr = array();
for($i=0; $i<5; $i++) {
array_push($arr,$i);
echo "$arr[$i] ";
}
結果
0 1 2 3 4
0101nobodyさん
2008/06/30(月) 22:56:51ID:???ええ・・・出来るんですか
あと、>>97でecho = ...とかやってますね、もう間違い酷すぎます・・・。
自分の環境では、
PHP5
apache 2.2
eclipse(PDT) 3.3
なんですけど、array_push等が使えないはずはないと思うんですけどね。
メモらせていただきます、ありがとうございます。
0102nobodyさん
2008/07/01(火) 20:24:33ID:???A〜Eの5つの投票対象(固定)に対して1票と1行コメントを同時送信できるスタンダードな(?)ものです
A.txt 〜 E.txtまでを作成し、そこから票数を読んで加算、上書きするという形で一応投票の基本的な部分までは作成することが出来ました
またコメントも別にA_comment.txt 〜 E_comment.txtを用意し、そこの最後の行に追記していくことで保存できるようにしました
そして今、現在の各アイテム票数をランキングにして表示できるようにしたいのです
具体的には、例えばAに15票、Bに20票、Cに5票、Dに1票、Eに50票入っていたとしたら
1位 E(50票)
2位 B(20票)
3位 A(15票)
4位 C(5票)
5位 D(1票)
という風に表示したいのです
またそれに関連して各項目をクリックするとコメントを見られるページに飛ぶという仕様を考えましたが、これはリンクでGETを使ってパラメータで分岐すればいいと考えています
肝心のランキング表示部分をどう作っていいのか分からないので、どなたか教えていただけないでしょうか
ソートについても色々調べてみましたが、票数を並べ替えた後の項目との関連付けをどうやっていいかよく分かりませんでしたorz
010475です。
2008/07/02(水) 02:21:42ID:/ZwHa0Ji今勉強をして、なんとか自己解決できるように
したいと思います。
SQL勉強中です。
亀レスすいません。
0105nobodyさん
2008/07/02(水) 02:48:17ID:???一回、PHPから離れて、MysqlとかでDB構築して、コマンドラインでいろんなSQL実行してみればいいと思うよ。
がんばれ。
0106nobodyさん
2008/07/02(水) 02:49:38ID:???一番最後「HTTP リクエストで独自のヘッダを送信する」にある
ini_set('user_agent', "PHP\r\nX-MyCustomHeader: Foo");
$fp = fopen('http://www.example.com/index.php', 'r');
送信されるリクエスト
X-MyCustomHeader: Foo
とありますが、実際受信側のレスポンスを見ると、
HTTP_X_MYCUSTOMHEADER: Foo
という風に"HTTP_"が付加されていました。
そういうものなんでしょうか?
0108nobodyさん
2008/07/02(水) 12:23:28ID:???Host: www.example.com →HTTP_HOST
User-Agent: PHP →HTTP_USER_AGENT
X-MyCustomHeader: Foo →HTTP_X_MYCUSTOMHEADER
つまりはそういうこと。
0109nobodyさん
2008/07/04(金) 00:37:52ID:q3bb7c0a89.53201 35.45 15.6783にしたいのですがどうしたらいいのでしょうか?
0110nobodyさん
2008/07/04(金) 00:38:48ID:q3bb7c0a0111nobodyさん
2008/07/04(金) 00:39:27ID:???すいません…
0112nobodyさん
2008/07/04(金) 00:43:41ID:???$a = 8953201
$a = preg_replace('/^([0-9]{2})([0-9]+)$/', '$1.$2', $a);
つまり正規表現を使えばよいのではないか。
0113nobodyさん
2008/07/04(金) 00:52:45ID:???ちなみにこれは、前半部分が$1に、後半部分が$2になってるって解釈でいいんでしょうか?
0115nobodyさん
2008/07/04(金) 01:09:53ID:???0116nobodyさん
2008/07/04(金) 12:20:55ID:???<?php
$link = dbx_connect(DBX_SYBASECT, "localhost", "db", "username", "password");
dbx_close($link);
?>
とりあえずこれで、dbx関数とsybasect周りが使えるかどうかチェックしたんですけど
エラーが出てしまいました。
Warning: dbx_connect() [function.dbx-connect]: dbx: module '7' not loaded or not supported
環境はxampp1.6.6 for linuxで、apacheは2.2.8、PHPは4.4.8です。
extensionに設定されたディレクトリに、php_dbx.dllとともに、php_sybase_ct.dllを配置してあるので
読み込まれていない・・・ということは無いと思いますし(apacheの再起動は何度もかけています。)
php.iniの設定も問題なさそうです。
PHPのバージョンも、4.2.0より後発のもので、サポートもしていると思うのですが
どなたか、なにとぞ助力をお願いできないでしょうか。
0117nobodyさん
2008/07/04(金) 13:10:39ID:???0118nobodyさん
2008/07/04(金) 14:04:56ID:???マシン入れ替えていろいろ試してたら混乱してしまった。
0119nobodyさん
2008/07/04(金) 15:33:23ID:???0120nobodyさん
2008/07/04(金) 16:50:08ID:4Xa3cuivPHPバージョンは5
自動変換系は全てパス、スクリプトはUTF-8で記述、
internal_encodingもutf-8とします。
スクリプトの処理内容は
UTF−8エンコードで送られてくる文字列”あいうえお”
を受け取りそれをスクリプト内で
”あいうえお”か判断して”あいうえお”
なら真を返すてだけの単純なものなのですが
”あいうえお”を送っても真を返してくれません。
それで今度はポストするデータをEUCエンコードで送ってみると
あらふしぎ真を返してくれるんです。
PHPスクリプト内に書いてある文字列たとえば
<?php
$a="あいうえお";←ここの部分
?>
はロケールのエンコードで解釈されてる気がするのですが
(OSのロケールはEUC−JPだった)
どうなんでしょうか?舌ったらずで申し訳ありません。。。
012175です。
2008/07/05(土) 00:32:52ID:MACe5BF6なんかutf-8にしないといけない理由とかあるの?
0122nobodyさん
2008/07/05(土) 00:36:49ID:???0123nobodyさん
2008/07/05(土) 01:57:54ID:???送られてくるデータってのは、GETしてるの?
POSTしてるの?
ついでに、どちらでもいいけど、ブラウザがGETorPOSTしたデータを、echoしたら文字化けするの?
真偽値取る前に、そこらへん確認してみては。
0124nobodyさん
2008/07/05(土) 06:27:10ID:???ソースの文字コードがeuc-jpだったというオチでは?
euc-jpの「あいうえお」とutf-8の「あいうえお」じゃ当然マッチしないわ。
0125nobodyさん
2008/07/08(火) 22:48:01ID:nzIgHbiUmail_mimedecodeで添付付きメールを分解したんですが、その添付ファイルを撮影時間の名前で保存したいんです
おそらく、一度保存してからexifデータを読み込み、その後名前を変えるって形ならいけるとは思うんですが
二度手間になってしまうのでもし出来るのならと思いまして
0126nobodyさん
2008/07/09(水) 01:55:27ID:U9Y+NLIi0127nobodyさん
2008/07/11(金) 12:12:19ID:???postfixを使って、phpからメールを送りたいのですが
うまく動作していない状態です。
環境はCentOS5上、Apache2.2.9 PHP-4.4.8 postfix-2.5.2で
全てソースからインストールしています。
直接、mailコマンドでgmailにテストメールを送信したら、正常に送信されたので
ポートの開放や、postfixそのものの設定は問題なさそうなのですが
PHPからmb_send_mailを使用して送信した場合、gmailに送信されずにいます。
php.iniのsendmail_pathには「/usr/sbin/sendmail.postfix -t -i」と
設定しているのですが、エラーログに以下の内容が出力されていました。
Jul 11 11:52:42 localhost postfix/local[31480]: fatal: open database /etc/aliases.db: No such file or directory
Jul 11 11:52:43 localhost postfix/master[23909]: warning: process /usr/libexec/postfix/local pid 31480 exit status 1
Jul 11 11:52:43 localhost postfix/master[23909]: warning: /usr/libexec/postfix/local: bad command startup -- throttling
問題点が思い当たる方いらっしゃいましたら、何卒ご助言をお願いいたします。
0128nobodyさん
2008/07/11(金) 12:58:30ID:???alternatives --config mtaでpostfix選択するか
system-switch-mailで切り替える方が良いよ
0129nobodyさん
2008/07/11(金) 19:41:44ID:???loginform.phpの部分とかがおかしいみたいです。
Windowsでは動くらしいけどlinuxでは動かないとかなんとか。
もうくそ本でした。
くやしい.....
誰かなんとか動くようにはできないでしょうか。
ソースは
http://gichioka.web.fc2.com/blog.rar
です。
マルチ失礼しました。
報告までです
013075です。
2008/07/11(金) 19:49:15ID:???129=75です。あのときブログのことで質問しました。
あの時はいろいろ教えていただきありがとうございました。
0131nobodyさん
2008/07/11(金) 20:40:04ID:???ログインできたの?
0132nobodyさん
2008/07/11(金) 20:44:45ID:???admin.phpはいけます
0133nobodyさん
2008/07/11(金) 22:11:31ID:???0134nobodyさん
2008/07/11(金) 23:01:47ID:???0135nobodyさん
2008/07/12(土) 10:17:05ID:???0136nobodyさん
2008/07/13(日) 04:23:27ID:???3000もしたんだよ
0137nobodyさん
2008/07/13(日) 20:06:55ID:???3000は大金だもんな
元気出せよ
0138nobodyさん
2008/07/13(日) 21:41:45ID:???PHPの勉強をあきらめろってことじゃあ…
0139nobodyさん
2008/07/15(火) 03:16:57ID:YrbWt9Itソフトバンクの本はもう買わん
0140nobodyさん
2008/07/15(火) 15:59:19ID:px8EuhxF以下のようなXMLからCountの値を取得したいのですが、
取得できません。
$string = <<<XML
<?xml version="1.0" ?>
<document>
<Hoges>
<Count>2</Count>
<Hoge>
<aa label="monar" />
<name>モナー</name>
</Hoge>
<Hoge>
<aa label="yaruo" />
<name>やる男</name>
</Hoge>
</Hoges>
</document>
XML;
$xml = simplexml_load_string($string);
foreach($xml->Hoges as $key => $tmp){
/* ここでCountの値を取ろうとしていますが
$keyが'Hoges'になっていて取得できません。
*/
}
↑のforeach内で取得する方法を教えてください。
ちなみに、$xml->Hoges->Countでは正常に取得できます。
どうかよろしくお願いします。
0141nobodyさん
2008/07/15(火) 19:35:37ID:???echo $tmp->Count;
}
0142nobodyさん
2008/07/16(水) 01:29:04ID:yQh99k9kPOSTで受け取っている$_POST['text']に日本語が含まれていないものを除外、urlが2つ以上含まれているものを除外したいのですが
どのようにしたらよいのでしょうか?
あと似たような問題は他にもいくらでも出てくると思うので、SPAM書き込み対策
掲示板作成の参考になるようなHPとかあるようでしたら教えてください。
よろしくお願いいたします。
0143nobodyさん
2008/07/16(水) 01:37:08ID:???javascriptでこの文字が入っていたら除くとか
検索すれbないいよ。
もうひとつはapacheのところで、どこからきているか
を解析してそいつらはみられないようにするんだ。
0145nobodyさん
2008/07/16(水) 08:03:30ID:???$baseball = array('鈴木'=>16, '松井'=>55, '清原'=>5);
foreach ($baseball as $key => $val){
print ($key." : ".$val."<br />");
}
?>
これの
$key の後ろの . って何のために必要なんでしょうか?
0146nobodyさん
2008/07/16(水) 09:49:58ID:???0147nobodyさん
2008/07/16(水) 12:25:39ID:???連結をしなければいけないときとしなくてもいいときがわからないというか?
0148nobodyさん
2008/07/16(水) 13:00:16ID:???お前はいったい何がしたいんだ?
>>145のソースでは当該箇所はどう見ても文字列を連結しようとしている
わけだから、連結演算子(.)は省けないだろう。
どうしても連結したくないなら
print $key;
print " : ";
print $val;
print "<br />";
とでもしておけ。
普通なら
print "{$key} : {$val}<br />";
で終わりだがな。
0150nobodyさん
2008/07/16(水) 13:20:58ID:JWV92MXFたしか、 .で連結するより ,で連結した方が、処理的に早いって聞いた
処理速度 { } > , > .
これであってるかな?
0151nobodyさん
2008/07/16(水) 13:23:05ID:???最適化は、脳味噌に適用しろ!!
(http://d.hatena.ne.jp/gegegen/20080524/1211622711より)
0152nobodyさん
2008/07/16(水) 13:39:24ID:???例えば、a8等のアフィリエイトの場合、広告主がサンクスページ(購入完了画面) に申し込み確定タグを
imgタグで仕込みます。
流れ的には、
サイトオーナー番号の付いた a8 のタグをクリックし、クッキーを発行
http://aaaa.com/in.php?s=001
↓
広告主サイト
http://bbbb.com/
↓
商品購入完了画面で、imgタグにより a8 へ通知
<img src="http://aaaa.com/check.php">
という流れだと思うのですが、この時、最初に発行されたクッキーは a8 の名前で作成されるのですが、
これを商品購入完了画面の imgタグで、a8に通知した時、クッキーはa8へ渡るのでしょうか?
上記のような流れのものをPHPで作って試してみましたが、ドメインが違うためクッキーは受け取れませんでした。
もちろん、同ドメインの場合では正常に受け取れます。
サイトが違っても、imgによる呼び出し先が、発行元と同じなため、受け取れるんじゃないかと思ったのですが…
何か特別な事をしているのか、私の勘違いなのか、お知恵を貸しください。
よろしくお願いいたします。
0155nobodyさん
2008/07/16(水) 20:17:18ID:???0156nobodyさん
2008/07/17(木) 09:33:28ID:???これでアルファベットと記号を消そうと思うんですが、
' とか
" とか
[ とか
も消したいときはどんな風に表記したらいいんでしょうか。
0157nobodyさん
2008/07/17(木) 15:54:00ID:???例えばこんな感じ?
$message = preg_replace('/[0-9A-Za-z@!"#$%&,_=\|\{\}\[\]\(\)\x27\x2f\x3f\x5c\x60:;\.\*\+\-]/','',$message);
echo $message;
0158nobodyさん
2008/07/17(木) 16:03:43ID:???>>157は個別に書いたけど、単純に数字〜英記号を一括削除するなら
$message = preg_replace('/[\x21-\x7e]/','',$message);
echo $message;
の方が簡単。
詳しくはPerl正規表現とそのエスケープ文字を調べること。
ereg系正規表現は日本語が混じると誤動作するし、mb_ereg系もイマイチ不安定で
パフォーマンスも低いので、文字コードに拘らないのであればperl互換正規表現
を使う方が何かと便利だと思うよ。
0160nobodyさん
2008/07/20(日) 00:29:05ID:???ところで、
$old = array("a","b","c");
$new = array("<strong>a</strong>","。<strong>b</strong>","<strong>c</strong>");
$wrdst = str_replace($old,$new,$wrdbr);
こんな感じで置換しているんですが、これを
「最初の10個だけ置換」
したいんですが、良い方法がないでしょうか。
0161nobodyさん
2008/07/20(日) 06:45:16ID:???0162nobodyさん
2008/07/20(日) 11:38:30ID:???ありがとうございます!
0163nobodyさん
2008/07/22(火) 19:28:46ID:???5の倍数の場合だけ<h1>を入れて返すにはどうしたらいいんでしょうか。
ifで5で割り切れるときだけどかいろいろ考えてみたんですが、いまいちうまくできません。
0165nobodyさん
2008/07/22(火) 20:00:33ID:???0167nobodyさん
2008/07/22(火) 20:21:02ID:???0168nobodyさん
2008/07/22(火) 20:34:06ID:???0169nobodyさん
2008/07/23(水) 02:23:01ID:???0170nobodyさん
2008/07/31(木) 13:54:43ID:F87Ghxji基本的にSJISで作ったフォームからはSJISで
EUCで作ったフォームからはEUCで文字コードが
送られてきますよね。だけど送り手が意図的
に文字コードを変えて送ってきたりブラウザ
が勝手に他の文字コードで送ってしまう場合が
あるようなのですがその場合文字コードを
適切にスクリプト内部で使用したい文字コードに
変換する方法てどんなものが考えられるでしょうか。
またみなさんはどうやってますか?
0172nobodyさん
2008/07/31(木) 18:02:30ID:???諢丞峙逧縺ォ騾√▲縺ヲ縺上k繧医≧縺ェ螂エ縺ッ辟。隕悶☆繧翫c濶ッ縺縺倥c繧薙Χ縺√シ縺仇ww
0173nobodyさん
2008/08/01(金) 01:13:57ID:/2mMDjbG借りているサーバーの関係でphp4からphp5にバージョンアップしたら、
写真をパソコンで表示させるページ(mailbbs.php)でエラーが出てしまい、閲覧できなくなりました。
簡単に付け足す記述があれば、是非教えていただけないでしょうか?
よろしくお願いします。 m(_ _)m
0174nobodyさん
2008/08/01(金) 01:15:02ID:???0176nobodyさん
2008/08/01(金) 02:51:47ID:3wWMq3LYWeb申込フォーム、管理画面(データベース連携、検索など)を作成可能なレベルを目指す
という文章に対して
(つд⊂)ゴシゴシ
_, ._
(;゚ Д゚)
とレスが返されていました。
これはどういうことなのでしょうか?
基本的なレベルだということですか?
0177nobodyさん
2008/08/01(金) 03:01:39ID:cc3Gba10ヌルポ
0179nobodyさん
2008/08/01(金) 03:11:47ID:???>>178
なるほど。
2週間の講座なので、基本なのはまあしょうがないですね。
どうもありがとうございました。
0180nobodyさん
2008/08/02(土) 17:48:44ID:qYvqcpCsを設置しようと思ってるのですが、画像をUPロードする
時に画像に関する情報(画像の説明、名前など)
をログファイルに同時に書き込む仕様になっているんです。
とりあえずテストでは問題なく動いてるのですが
もしスクリプトがなんらかの理由で途中で止まってしまったり
した場合、画像だけUPロードされてしまって
ログファイルには書き込みされない(または逆も考えられる)
ことになってしまいますよね。
こういう事態に陥らないためにはどうしたらいいでしょうか?
0181nobodyさん
2008/08/02(土) 18:09:58ID:???0182nobodyさん
2008/08/02(土) 18:16:17ID:QOTyBDTF不具合がでるかどうか確かめろ。
まずはそっちだな
0183nobodyさん
2008/08/02(土) 18:41:09ID:qYvqcpCs>>182
ご返事ありがとうございます。
とりあえず不都合はまだないのですが
タイムアウト(レンタルサーバーだと30秒)
の問題もあるので結構悩んでます;;
0184nobodyさん
2008/08/03(日) 01:05:38ID:a0x+ZsCKどれで練習して どこで実行したらいいんでしょうか?
ttp://phpspot.net/php/php_topics.htmlを見てるんですが
すでに実行にいってしまっていて
よろしくお願いします
0185nobodyさん
2008/08/03(日) 01:13:59ID:???書いてあんだろが
0186nobodyさん
2008/08/03(日) 01:25:55ID:tLdg0T4F渡すパスは自動でエスケープされるようだけど
これは実際どういう文字がエスケープされるんでしょうか?
escapeshellcmdと同じ?マニュアルに特に書いてないで分かりません。
0187nobodyさん
2008/08/03(日) 01:44:15ID:???0188184
2008/08/03(日) 01:52:39ID:a0x+ZsCKサンクス
そのurl通りやってみたんですが
表示されませんでした
原因で考えられるのは
ttp://phpspot.net/php/pgXAMPP%82%CC%8BN%93%AE%81E%92%E2%8E%7E.html
にあるように起動後に黒背景のウィンドウが表示されないからかと思うのですが
XAMPPコントロールパネルアプリケーションでは起動 開始ボタンが押されてます
どうすれば実効されますでしょうか?
0189184
2008/08/03(日) 02:02:51ID:a0x+ZsCKXAMPPコントロールパネルアプリケーションはver2.5
あとはPHP editorだけダウンロードしてます
他に足らないものはないでしょうか?
ttp://de-lab.com/article/eclipse/を見るとPDTもインストールしなければならないようですが…
0190nobodyさん
2008/08/03(日) 02:07:06ID:???0191184
2008/08/03(日) 02:09:54ID:a0x+ZsCKそうですか…
では>>188に書いてあるように実行できなかったんでしょうか?
違うサイトを見てしまうと挫折してしまう気がして
よろしくお願いします
0192nobodyさん
2008/08/03(日) 04:57:56ID:???単純に一つ一つインストールしたほうが早くて確実だと思うけど。
0193nobodyさん
2008/08/03(日) 05:28:24ID:???0194nobodyさん
2008/08/03(日) 07:55:45ID:T3jYftlq0195nobodyさん
2008/08/03(日) 10:31:52ID:9C4HZHI80196nobodyさん
2008/08/03(日) 18:50:36ID:RMhtfFUN0197nobodyさん
2008/08/03(日) 19:00:15ID:???0198nobodyさん
2008/08/03(日) 19:52:51ID:???0199nobodyさん
2008/08/04(月) 02:38:05ID:LmctVFYq0200nobodyさん
2008/08/06(水) 23:42:16ID:???0201nobodyさん
2008/08/07(木) 01:15:21ID:ASRrNjKqスレ違いかもしれませんが、PHPの呼び出しをしたいので、こちらで質問させていただきます。
サーバーのcronでサーバー内のPHPを毎分実行する時は、
*/1 * * * * /usr/local/bin/php /home/サーバー会社名/public_html/ドメイン名/△△.php
なのですが、
同じように毎分他サーバーのPHPファイルを指定する時はの記述を教えてください。
よろしくお願いします。
0202nobodyさん
2008/08/07(木) 02:08:13ID:???0203nobodyさん
2008/08/07(木) 02:51:36ID:GqYvn9Ijphp5を使って、XMLの内容を並び替える方法を教えてください。
0204nobodyさん
2008/08/07(木) 02:52:26ID:???お好きなのをどうぞ
0206201
2008/08/07(木) 12:39:10ID:???PHPスクリプトをcronすることにしました。
ありがとうございました。
0207nobodyさん
2008/08/07(木) 15:24:18ID:???0208nobodyさん
2008/08/21(木) 15:50:39ID:???独習PHP山田 祥寛
まずこれやればいいですか?
自分のwebサーバーでphp使ったサイトとか作れるようになりたいです
0209nobodyさん
2008/08/21(木) 15:52:50ID:???0211nobodyさん
2008/08/21(木) 17:26:28ID:???0212nobodyさん
2008/08/21(木) 17:45:50ID:???検索すりゃ役に立つサイトから立たないサイトまでわんさか出る
マニュアルも早いうちから目を通せ
本やサイトは主観で書いてある記事だから誤解もある
0213nobodyさん
2008/08/21(木) 18:25:36ID:CIze4FXPデータベースはUTF8で作成しています
select文を実行する前に、
$sql = "SET NAMES utf8";
mysql_query($sql);
を実行してデータを取り出しましたが、日本語文字は『utf8』なのですが、
半角英数字は全部『ASCII』になっています
なぜでしょうか?
0214nobodyさん
2008/08/21(木) 18:47:35ID:???0216nobodyさん
2008/08/21(木) 21:32:52ID:???そんな感じ
文法や基本的な命令語を覚えれば後は使いたい関数やクラスを都度調べればいい
使う機会の多いものは自然に身についていくから
一通りのことが出来るようになった後に効率や最適化を考えればいい
あくまで趣味の一環として習得する場合だけどな
>>213
ASCIIしかないなら保存形式が何であれASCII
utf8と判断する材料がないからな
0217nobodyさん
2008/08/21(木) 23:55:32ID:2yWxB/YG0218nobodyさん
2008/08/22(金) 00:09:08ID:???0220nobodyさん
2008/08/22(金) 09:40:04ID:???そこらへんから完成品見つけてきてそれ改造してる方がよほど身につくと思う
0221nobodyさん
2008/08/22(金) 10:04:01ID:???ごちゃごちゃ解説読むの面倒だから辞書のように使ってた
それでもバージョン変われば役に立たんから直ぐにマニュアル見ることになるっと
完成品やサンプルソースを読んで動きを理解できるようになればいいな
パターンを覚えていけば応用が利いてくる
そのうち別パターンを自分で書けるようなるんじゃね?
0222213
2008/08/25(月) 20:42:58ID:???>>216
ご返答ありがとうございます。
phpファイルはUTF8で保存して、metaタグでもUTF8を指定しています。
そういうことでは無いんでしょうか?
0223nobodyさん
2008/08/25(月) 21:35:52ID:???違う
phpのscript_encodingとかmeta(HTMLタグかよ)は関係ない
asciiはあくまでascii
0224nobodyさん
2008/08/26(火) 03:06:03ID:???大雑把かつ乱暴に言うと
半角英数と一部の記号はどのエンコード方法だろうと内部での表現方法が同じ
だから半角英数だけだと区別のつけようがないしつける必要もない
UTFとかeucとかは、日本語とかはいってくるときだけ
0225nobodyさん
2008/08/28(木) 02:17:41ID:???pealもつかえるようですが
0226nobodyさん
2008/08/28(木) 02:33:08ID:???0227nobodyさん
2008/08/28(木) 06:20:10ID:???0228nobodyさん
2008/08/28(木) 06:38:59ID:???まともに公開しようと思うと一から一づつ入れるより設定面倒だよ
設定に詳しくない限り止めておけ
0229nobodyさん
2008/08/28(木) 08:53:39ID:???全部すっとばしても構わないと思うならxamppで良いかと。
0230nobodyさん
2008/08/28(木) 17:51:11ID:???スレがあったら誘導お願いします
0231nobodyさん
2008/08/28(木) 19:41:11ID:???0233nobodyさん
2008/08/28(木) 23:12:59ID:???で、仮想マシンや引退したボロPCあたりで環境作っていじり倒す
0234nobodyさん
2008/08/28(木) 23:18:21ID:???それでも良ければご自由に。
0235nobodyさん
2008/08/28(木) 23:28:54ID:???じゃぁ、どんな風に勉強していけばいいですか?
>>233が言っているようにネットだと情報がかなり断片的で、
しかも、本と同じでネットで情報公開している人によって偏ってたり、訂正もされないまま放置されていたりするわけなんだけど。
0236nobodyさん
2008/08/29(金) 01:13:34ID:???0237nobodyさん
2008/08/29(金) 01:14:32ID:???0238nobodyさん
2008/08/29(金) 01:15:48ID:???0239nobodyさん
2008/08/29(金) 01:33:52ID:???ttp://help.goo.ne.jp/help/article/822/#08
0240nobodyさん
2008/08/29(金) 11:55:19ID:???確かにネットも本と同じで書き手次第だが
本と違うのは書き手の数
より多くの情報を知ることで信頼出来る情報や誤解を判断出来る
(本では数読むには金がががががが)
それに基本はオープンソースなのだから、公式のドキュメントもネットにある、
ある程度の認識が身についたら、公式を押さえることを忘れるな
そして糞ブログ滅べ(特に半端な日記系)
0241nobodyさん
2008/08/29(金) 15:09:59ID:???DocumentRootにphpinfo関数が書かれたindex.phpファイルを置き
PHPの情報をブラウザで表示させるところまで成功しました。
次にPOSTの勉強のために以下のform.htmlファイルをつくり
<html><head>
<title>テキスト送信のテスト</title>
<META http-equiv="Content-Type" content="text/html;
charset=Shift_JIS"></head>
<body bgcolor="#FFFFFF" text="#000000">
<font size="4">テキスト送信のテスト</font>
<form name="form1" method="post" action="view.php">
名前:<br>
<input type="text" name="onamae"><br>
<input type="submit" value="送信">
</form>
</body>
</html>
以下の内容のview.phpと一緒にDocumetRootにつっこんで
<html><head>
<title>PHPによるテキスト送信・受信・表示</title></head>
<body>
<?php
print $_POST["onamae"];
?>
</body>
</html>
ブラウザでhttp://localhost/form.htmlを表示させ名前を入力し送信ボタンを押したのですが
IEの"WEBページが見つかりません"のHTTP404エラーが出ます。
ネットで調べて色々php.ini、httpd.confの設定を書き換えてやっているのですが解決しません。。
どこの設定を直せばいいのでしょうか。お助けください。
0242nobodyさん
2008/08/29(金) 15:24:11ID:???ttp://localhost/view.php
直接呼び出して見てはどうだろう
404エラーってことはファイルがないってことだから設置場所が間違っているか
formのaction指定が正しくないかのどっちかになると思う
0243nobodyさん
2008/08/29(金) 15:44:07ID:???直接view.php呼び出しても404エラーが出ます。
設置場所はDocumentRootに指定してあるC:\Apache2.2\htdocsの中に
form.htmlとview.php二つつっこんでます。
action指定については間違ってないと思うのですが。。
0244nobodyさん
2008/08/29(金) 16:04:48ID:???htmlとphpが同じ場所にあって、htmlしか呼び出せないってのは変
(header関数でどこかに飛ばしてない限り)
htmlとphpを削除して、ブラウザで両方404になるか見てから、もう一度設置してみて
0245nobodyさん
2008/08/29(金) 16:10:56ID:???view.php.txt
大丈夫そうなんだけど、こういう事例も多いからいちおう。
0246242
2008/08/29(金) 16:21:02ID:???phpファイルに変更したらちゃんと呼び出せました。
どうも皆さんすいません。
0247nobodyさん
2008/08/29(金) 16:55:09ID:???0248nobodyさん
2008/08/30(土) 01:23:15ID:xhTnmRsdランダムテキストを使い「random.php」に例えば10個のリンク先を設定し、
ページの上中下で <?php require "random.php"; ?>で呼び出して使いたいんですが
ページの広告全てが同じものが表示されてしまいます。
ランダムテキストをcgiで作り、SHTMLファイルで呼び出してた時には
すべてきちんと違う広告がランダムに表示されてました・・。
1っのrandom.phpできちんとページ内の広告がバラバラに出るにはどうすればいいでしょうか?
0249248
2008/08/30(土) 01:23:35ID:???↓
<?php
// hitには相対確率を入れる。完全にランダムにするなら全部"1"にする
// rtxtには、テキストを入れる。改行はしないようにする
// テキストを増やしたりする場合は、"[ ]"の数字が0から順になるようにする
$hit[0] = 1; $rtxt[0] = '<a href="...">1</a>';
$hit[1] = 1; $rtxt[1] = '<a href="...">2</a>';
$hit[2] = 1; $rtxt[2] = ''<a href="...">3</a>';
$length = count($hit) - 1;
for($i=0; $i<=$length; $i++) {
$m += $hit[$i];
}
srand( (double)microtime()*1000000 );
$n = round(rand(1,$m) );
for($i=0; $i<=$length; $i++) {
$x = $y;
$y += $hit[$i];
if($x<$n && $n<=$y) $ad = $rtxt[$i];
}
print("$ad");
?>
よろしくお願いします。
0250nobodyさん
2008/08/30(土) 01:53:03ID:???0251nobodyさん
2008/08/30(土) 03:04:20ID:???別の方法として
簡単にやりたければshuffleで配列($rtxt)をシャッフルしてarray_shiftで配列の先頭を取り出せばいい
array_shiftで取ると配列は1つ減るから2回目、3回目で重複することはない(同セッション内)
0252250
2008/08/30(土) 04:09:13ID:???(double)microtime()*1000000
が同じ値をシードに与えてんじゃないの?
0253235
2008/08/31(日) 18:33:17ID:???>>240
レスありがとうございます。
ネット上は断片化された情報が多くて、取捨選択が難しい上に、
あっちの情報とそっちの情報での差異が出る理由が明確に分からなくて悩ましいです。
それを調べるってことが、公式ドキュメントを読めっていうということなんですかね。
技術情報を読める程度には英語勉強しろってところですね。
板違いですんませんでした。
0254nobodyさん
2008/09/12(金) 15:34:40ID:???今のままだと例えば<b>文字</b>で登録されているデータは太字で表示されてしまいます。
SQLはpostgresです。
現在のコード↓
$passmd5 = md5('$pass');
$sql = htmlspecialchars("SELECT * FROM table1 INNER JOIN table2 ON table1.id=teble2.id WHERE
table1.id='$id' AND table1.pwd='$passmd5';");
$rs = pg_query($conn, $sql);
$rows = pg_num_rows($rs);
if($rows==0){
print("IDかパスワードが正しくありません。<br />");
print('<a href="#" onclick="history.back(); return false;">戻る</a>');
exit;
}
print("<table border=\"1\">");
print("<tr><td>ID</td><td>パスワード</td><td>項目1</td><td>項目2</td><td>項目3</td></tr>");
while($row = pg_fetch_array($rs)) {
print("<tr>");
print("<td>".$row["id"]."</td>");
print("<td>".$row["pwd"]."</td>");
print("<td>".$row["koumoku1"]."</td>");
print("<td>".$row["koumoku2"]."</td>");
print("<td>".$row["koumoku3"]."</td>");
print("</tr>");
}
print("</table>");
0255nobodyさん
2008/09/12(金) 15:39:24ID:???0257nobodyさん
2008/09/12(金) 16:12:31ID:???だな
出力の直前にやるのがいい
それ以前は加工する可能性があるからな
0258254
2008/09/12(金) 16:18:13ID:???本当にありがとうございました!!
0259nobodyさん
2008/09/14(日) 09:44:04ID:B7I6GMpnphpを勉強するのに何をしたら「俺すげぇ進化したぁ」と感じたかを教えてください。
0260nobodyさん
2008/09/14(日) 09:52:22ID:???0261nobodyさん
2008/09/14(日) 12:14:00ID:???0262nobodyさん
2008/09/14(日) 13:35:42ID:???車輪の〜って言われるだろうが、利用するかはともかく仕組みを考えて実装することに意味がある
と、言いつつ愛用してるが・・・
0263nobodyさん
2008/09/14(日) 21:23:06ID:jIYlcJD1が理解できるようになったとき。
あとショッピングカートとかブログとかその辺
のアプリができたとき。
0264nobodyさん
2008/09/14(日) 22:46:57ID:B7I6GMpn観念的で曖昧な質問に答えてくださってありがとうございます。
ちょっと(いや、かなり)質問の仕方が悪かったかもしれません。
「コレを頑張ったら結果をより早く導出できるようになった」という体験を伺ったのです。
「頭打ち状態からブレイクスルーした」という体験はありませんでしょうか?
>>262さんのレスを参考に「フレームワーク 車輪の」でググってみました。
「車輪の再発明」ということですね。
自分でもそういうことをしてしまっている可能性があるので参考になりました。
ありがとうございます。
0265nobodyさん
2008/09/14(日) 22:54:51ID:???0266nobodyさん
2008/09/14(日) 23:41:45ID:???メール送信でPHPが標準でsendmailしか使わんことに気付いた時
大量に送信するにはオーバーヘッドがウザいからSMTP送信をしたいのに出来ない・・・
仕方なくpopenで実装って時にSMTPっつうプロトコルの仕組みを知ってて良かった〜ってことはあった
0267nobodyさん
2008/09/15(月) 00:02:57ID:???0268nobodyさん
2008/09/15(月) 00:03:46ID:???0269nobodyさん
2008/09/15(月) 22:32:29ID:???中の仕組みを知っていたほうが良いのは当然だな。
ある程度理解していればプロトコルの詳細はRFC斜め読みでなんとかなる。
0270nobodyさん
2008/09/17(水) 12:48:50ID:JTQWTwl/substrとか これなんだっけ ってなる
0271nobodyさん
2008/09/17(水) 12:52:42ID:???0272nobodyさん
2008/09/17(水) 12:57:46ID:???プログラミングの勉強となると紙のノートじゃなくPCに依存して勉強したくなるよね
でもメモソフトと紙のノートには雲泥の差の自由度があるから勉強のためのメモとしてはあまり利用出来ないよね
0273nobodyさん
2008/09/17(水) 12:59:19ID:???0274nobodyさん
2008/09/17(水) 16:13:37ID:???0275Noone
2008/09/17(水) 16:59:26ID:???0276nobodyさん
2008/09/18(木) 00:02:52ID:X0thX7wZ0277nobodyさん
2008/09/18(木) 07:48:56ID:eOfu22hGファイルのアップロードをしているんですが、php.iniやhttpd.confが直接いじれなくて
.htaccessに
php_value post_max_size 100M
php_value upload_max_filesize 100M
php_value memory_limit 100M
と書いてそれぞれの値を変更しています。
問題は、これらの値がページをリロードする度にサーバのデフォルト値である
post_max_size 32M
upload_max_filesize 32M
memory_limit 90M
になったり、
post_max_size 100M
upload_max_filesize 100M
memory_limit 100M
になったりすることです。
こういった現象を経験された方いらっしゃいませんか?
各値の確認は、
ini_get()関数で確認しています。
0278nobodyさん
2008/09/18(木) 08:58:15ID:???0279nobodyさん
2008/09/18(木) 09:48:54ID:eOfu22hGレンタルサーバが、リソースが不足している場合.htaccessが有効にならないような設定がされているということでしょうか?
0280nobodyさん
2008/09/18(木) 09:51:27ID:???プロセスが別なのにPARDIRのディレクティブが上書きされるなんて聞いたことがない
0281nobodyさん
2008/09/18(木) 10:42:43ID:???これの真ん中の||とissetの前の!はどういう意味?
0282nobodyさん
2008/09/18(木) 10:50:24ID:???! は反転を意味する。
issetは「初期化されていればtrue」で調べたいことは「定義されていない場合」だからfalseとなるところを!で反転して評価してるんだな
0284nobodyさん
2008/09/18(木) 10:54:39ID:???!は反転するということなんですね。
0285nobodyさん
2008/09/18(木) 12:44:53ID:???0286nobodyさん
2008/09/18(木) 13:27:00ID:???// 値がセットされてなければecho
echo '';
}
こういうことですよね?
0287nobodyさん
2008/09/18(木) 13:37:33ID:???0288nobodyさん
2008/09/18(木) 13:50:01ID:???> // 値がセットされてなければ
empty() と isset() の説明や比較例を見ると良いです。
?aaa=&bbb=hoge というクエリが飛んできた場合、isset($_GET['aaa'])==TRUE。
言われてるように急がずにゆっくり取り組めばいいと思うよ。
0289nobodyさん
2008/09/18(木) 13:51:32ID:???isset($_GET['aaa'])がTRUEだと言いたいんだろうがその説明の仕方はだめだw
0290nobodyさん
2008/09/18(木) 14:20:02ID:???言いたかったことはその通りなので、「isset($_GET['aaa']) は TRUE を返す」に訂正します。
0291nobodyさん
2008/09/18(木) 14:34:48ID:???0292nobodyさん
2008/09/18(木) 14:42:09ID:eOfu22hGレンタルサーバの会社に問い合わせたところ詳しくは教えてもらえませんでしたが
>>277で書いたような負荷がかかることはことはしないでくれとのことでした。
根本的な解決はできませんでしたが、こういった現象もあるってことで・・・
しかし、今度はどうやって高負荷時は.htaccessを無視するようなことができるのか
そっちに興味がわいてきました。
Apacheの設定にそういうことができるようなオプションがあるのかな?
0293nobodyさん
2008/09/18(木) 14:46:31ID:???0294nobodyさん
2008/09/18(木) 14:56:27ID:???基礎を勉強したいと思います
0295nobodyさん
2008/09/18(木) 15:14:50ID:???0296nobodyさん
2008/09/18(木) 15:15:16ID:???0298nobodyさん
2008/09/19(金) 03:16:00ID:???サーバー側が php4 → php5 にしますよ
と言ってきました。
バグってどれくらい出るものでしょうか。
移行された人いらっしゃいますか?
0299nobodyさん
2008/09/19(金) 05:25:52ID:???そんなんアプリによってまちまちとしか言えん
ていうか手元で移行検証くらいしようよ
0300nobodyさん
2008/09/21(日) 15:55:59ID:G8wZRX1Estrip_tags()を使用してコメントタグだけを残したい場合はどうしたらよいでしょうか?
$html = strip_tags($html, "<!---->");
という書き方だとコメントタグも削除されてしまいます。
0301nobodyさん
2008/09/21(日) 16:35:13ID:???プログラミング経験は無いわけではなくC,C++でマルコフ連鎖モンテカルロ法
の実験などを大学の研究でしたりもしているのですが、最近なんとなく
PHPのようなウェブアプリを簡単に作れる言語に興味があります。
が何を作ったらいいかわかりません。
自作で、実用レベルまで比較的に簡単に作れるもの、
というとどういうものがあるでしょうか。お願いいたします。
0302nobodyさん
2008/09/21(日) 16:36:57ID:???まぁ何にするにせよ実用性とは程遠いだろうが気にするな
0303nobodyさん
2008/09/21(日) 17:51:38ID:???何かのウェブアプリを作りたいからphp学びたいんじゃないの?
せめて作りたいものの目標くらい無いとモチベーション続かないと思うんだけど。
なんか目的と手段が逆になってるような気がする。
0306nobodyさん
2008/09/21(日) 18:30:48ID:???マニュアルに書いてあるぞ、無理ってな
strip_tagsの前後でHTMLコメントの置き換えて逃げるしかないだろうな
0307nobodyさん
2008/09/21(日) 18:31:56ID:???誤:strip_tagsの前後でHTMLコメントの置き換えて逃げるしかないだろうな
正:strip_tagsの前後でHTMLコメントを置き換えて逃げるしかないだろうな
0308nobodyさん
2008/09/21(日) 20:19:14ID:uUB1weY6.htmlファイルの中に
<?php
include('file.php?pass=123');
?>
としましたが、includeが実行されません
拡張子は常に.phpでなければいけないんでしょうか?前に試した出来たような気がしたんですが、、
また、上記のようなインクルードファイルに引数をつけた場合、
file.phpの中で$_GET['pass']としてを解釈することは出来るでしょうか?
どなたかご回答お願いします
0309nobodyさん
2008/09/21(日) 20:28:27ID:???0310nobodyさん
2008/09/21(日) 20:29:10ID:???俺の経験では出来ない。
file.phpの中に関数f_fileを書いて以下の様にすればいい。
<?php
include('file.php'); f_file('123');
?>
0311308
2008/09/21(日) 20:49:34ID:uUB1weY6ありがとうございました
phpは .htmlの拡張子のファイルでは動かないということでいいでしょうか?
また、二つ目の質問に関しては
http://okwave.jp/qa4336105.htmlという解決法を見つけました
>>310さんの答えと合わせて考えたいと思います
0313300
2008/09/21(日) 22:14:17ID:G8wZRX1Eありがとうございます。
自分の持ってるPHP辞典には記載されてなかったでわかりませんでした。
なんとも中途半端な仕様ですね。
0314nobodyさん
2008/09/21(日) 22:33:44ID:aDAFCUyFttp://jp.php.net/manual/ja/functions.arguments.php
> 注意: PHP 5以降、デフォルトで値はリファレンス渡しとなります。
の、主語というか目的語というか、ナニのデフォルトが参照渡しになるんでしょか。
function alter($str){
$str = $str . '!';
}
$nya = 'nya';
alter($nya);
echo $nya;
は PHP 5.2.0-8+etch9~bpo31+1 (cli) では $strを 変更せずに nya が表示されました。
0315nobodyさん
2008/09/21(日) 23:03:33ID:???原文読むといいかと。
http://jp.php.net/manual/en/functions.arguments.php
0316nobodyさん
2008/09/21(日) 23:22:56ID:???やってみれば分かるが&付けなくても参照元の値も変わるぜ
余談だが
PHP4では 「&$arg=null」なんてデフォルト引数が使えないんだが、PHP5から問題なく通る
呼び出し時に引数指定したかどうかでスイッチしてんだろうなぁ
0318nobodyさん
2008/09/22(月) 01:05:35ID:???変数$aに1が入ってる時だけ変数$bに入ってるIP以外からのアクセスがあった場合にifコマンド使って、
他の内容を表示するの。
0319nobodyさん
2008/09/22(月) 01:09:02ID:???0320318
2008/09/22(月) 01:10:00ID:???これ使っていけるかな・・・・・・?
0322318
2008/09/22(月) 02:51:53ID:???どうすればよいですか?
0323nobodyさん
2008/09/22(月) 03:00:08ID:???0324318
2008/09/22(月) 03:15:17ID:???<?php
$ip = $_SERVER['REMOTE_ADDR'];
$str = "$ip";
$len = strlen($str);
$handle = fopen('ip.txt','r');
$contents = fread( $handle, $len );
fclose( $handle );
echo $contents."<br />\n";
if($ip==$contents){
echo "成功";
}
else{
echo "失敗";
}
?>
ipアドレスの文字数分引っ張り出して比較することで回避できた。
0325nobodyさん
2008/09/22(月) 03:21:01ID:???0327318
2008/09/22(月) 03:27:42ID:???処理が終われば解除されるようなかんじで。
0328nobodyさん
2008/09/22(月) 03:39:53ID:???と
212.134.32.143
0330nobodyさん
2008/09/22(月) 12:43:54ID:???0331nobodyさん
2008/09/22(月) 15:10:26ID:EKIEGJ690332nobodyさん
2008/09/22(月) 15:12:32ID:???http://www.nintendo.co.jp/ds/amcj/
0333nobodyさん
2008/09/22(月) 15:19:02ID:EKIEGJ690334nobodyさん
2008/09/22(月) 16:42:16ID:???0335nobodyさん
2008/09/22(月) 16:44:51ID:???ショッピングカートの基本はセッションを上手く扱うことだと思う
具体的なカート作成のサイトはなくてもセッションに関する記事は多いから、そこから学べば良いかと
どうせ学習目的とかでしょ?
0336nobodyさん
2008/09/23(火) 01:10:46ID:KzC+qHTkありがとうございます! 助かりました!
0337nobodyさん
2008/09/23(火) 12:55:10ID:BK/ZFWc80338nobodyさん
2008/09/23(火) 12:59:43ID:???0340nobodyさん
2008/09/23(火) 13:08:38ID:???まず何が目的で特定IP以外からのアクセスを制限したいかが不透明
内容からするに何らかの処理をしている期間は別の接続者を拒否したいって意味のようだが
その処理ってのが何度もリクエストを受けて完了するもだとしたら
---
アクセスがある
↓
閲覧者IPのデータを確認する─(IP記録なし)→閲覧者IPを記録し結果表示
↓<(IP記録がある)
IP比較─(一致)→結果表示
└(不一致)→拒否
---
こんな感じでコード書けばいいだろ
記録IPをいつ削除するかは知らんけど、この処理書くどこで詰まってるの?
もし、一回のリクエストの結果表示までにすべて処理が終わってしまうようなものだったら
ファイルロックとかの方法でも調べれれ。IPを比較する意味ない
あとどうでもいいけど改行の削除は置換を使えよ
0341nobodyさん
2008/09/23(火) 13:10:56ID:???echo(">>331\n");
echo("このサイトを見れ\n");
echo("http://www.nintendo.co.jp/ds/amcj/");
?>
つまりこういうことだな
0342nobodyさん
2008/09/23(火) 14:16:43ID:???0343nobodyさん
2008/09/23(火) 14:20:41ID:???0344nobodyさん
2008/09/23(火) 18:25:40ID:???えーこと聞いた
0345nobodyさん
2008/09/23(火) 19:38:04ID:???複数のURLに対して並列に処理を行いたいんだけど
どういう風にやればいいですかね?
最悪参考になりそうなサイト教えてください。
0346nobodyさん
2008/09/23(火) 19:52:08ID:???0347nobodyさん
2008/09/23(火) 20:59:24ID:???ブロック?とはどういうことでしょうか?
並列処理に向いているfopenに代わる関数を
教えていただけるとありがたいです。
0348nobodyさん
2008/09/23(火) 21:01:16ID:???0349nobodyさん
2008/09/23(火) 21:05:07ID:???並列処理を行うにはどうすればよいでしょうか?
というかPHPでそんなことするなってことでしょうか?
0352nobodyさん
2008/09/23(火) 22:13:13ID:???とりあえずその方向でググったりしてなんとかしてみます
ありがとうございました
0353nobodyさん
2008/09/24(水) 23:43:55ID:???$b=9;
$c=3;
「bが一番大きいです。」
と表示させたいのですが、maxだと数値しか返ってこないし・・・
教えていただけると幸いです。
0354nobodyさん
2008/09/25(木) 00:11:02ID:???変数名を取得することは出来ないから値の管理方法を変えよう
出来ないなら諦めるしかないと思う
例: 連想配列
$var = array(
'a' => 1,
'b' => 9,
'c' => 3,
);
0355nobodyさん
2008/09/25(木) 00:19:45ID:???0356nobodyさん
2008/09/25(木) 00:20:07ID:???0357nobodyさん
2008/09/25(木) 05:09:05ID:???連想配列の場合、
$var = array(
'a' => 1,
'b' => 9,
'c' => 3,
'd' => 9,
);
この場合、どうなるんだろ?
0358nobodyさん
2008/09/25(木) 05:29:20ID:???$var = array('a'=>1, 'b'=>9, 'c'=>3, 'd'=>9);
$keys = array_keys($var, max($var));
var_dump($keys);
0360nobodyさん
2008/09/25(木) 06:21:43ID:???0361テスト
2008/09/25(木) 23:34:41ID:???0362あ
2008/09/25(木) 23:39:24ID:???てすと
0363nobodyさん
2008/09/27(土) 20:36:51ID:Zle5Z5JOPHPのマニュアルを見てもさっぱりです
どなたかreturn文が詳しく書いてあるサイト知っていたら教えてください
0364nobodyさん
2008/09/27(土) 20:53:26ID:???returnについてなんてマニュアル以上のことが書いてあるサイトはないと思うぞ
何が分からなくて、何が知りたいんだ?言ってくれれば答えるが
0365nobodyさん
2008/09/27(土) 21:09:22ID:???0366nobodyさん
2008/09/27(土) 21:15:49ID:???0367nobodyさん
2008/09/27(土) 21:18:59ID:???0368nobodyさん
2008/09/27(土) 21:20:42ID:???0369nobodyさん
2008/09/27(土) 21:27:34ID:???0370nobodyさん
2008/09/27(土) 21:31:06ID:???0371nobodyさん
2008/09/28(日) 21:34:07ID:+UcDtbz0Not Found
The requested URL /phpinfo.php was not found on this server.
Apache/2.0.63 (Win32) PHP/5.2.6 Server at localhost Port 80
と出てしまいます。どなたか教えていただけませんか?
0372nobodyさん
2008/09/28(日) 21:37:11ID:???0374nobodyさん
2008/09/29(月) 20:16:12ID:???なにをDLしたらいいのかさっぱりぜよ・・・。
0375nobodyさん
2008/09/29(月) 20:39:55ID:???0376nobodyさん
2008/09/29(月) 22:54:33ID:ex4B3ZuI画面には<? phpinfo(); ?>
と出てしまいます。
明らかに間違いですが、何がおかしいと思いますか?
どなたか教えてください。
0377nobodyさん
2008/09/29(月) 23:01:53ID:???0381nobodyさん
2008/10/01(水) 05:38:30ID:ggjV1Mvyttp://www.php-labo.net/tutorial/class/pear.html
でgetMessage()が定義されてないのにエラー表示のときに表示するとありますが
どうしてなのでしょうか?
よろしくお願いします
0382nobodyさん
2008/10/01(水) 06:04:37ID:???してるから
0383nobodyさん
2008/10/01(水) 09:00:47ID:12eBxrbJこの辺のことだと思うのですが、質問させてください。
$a == $bのところで、日本語の文字を使うには、
$a == "日本語"のようにすると思うんですけど、
これは、「日本語」に等しいということですよね。
たとえば「日本」を含む文字列の条件を指定したいとき、
どうしたらいいでしょうか?
条件の分岐で、「日本語」も「日本人」も「日本古来」もその他も
一括して指定したい、という感じなのですが。よろしくお願いします。
的をはずしていたらごめんなさい。
0384nobodyさん
2008/10/01(水) 09:22:18ID:???0385nobodyさん
2008/10/01(水) 10:43:40ID:???もうひとつ合わせて質問なのですが、
完全に一致するものを、$a == "アメリカ"として
部分的に一致するのを、mb_ereg_match("[日本]",$a)として、
それぞれ処理をしようとしています。
else ifでつなげたほうがいいのですか?
別のifとして分けたほうがいいですか?
それとも、どっちでもいいですか?
0386nobodyさん
2008/10/01(水) 11:56:07ID:???分けるかどうかはやりたいことによって違うからなんともいえないけど、
今回の場合は分けなくていいでしょ。
分けちゃうと一回アメリカと完全一致したものをもう一回日本が含まれてるか
判定することになるから余計な処理になる。
0387nobodyさん
2008/10/01(水) 12:12:38ID:???では、どんどんつなげていくことにしますね。
よく判る説明で、助かりました。ありがとうございます!
0388nobodyさん
2008/10/01(水) 12:54:11ID:???注意
ヒント
ある文字列が他の文字列内に含まれているかどうかを調べるためだけに preg_match() を使うのは避けた方が良いでしょう。 strpos() か strstr() 関数を 使う方が速くなります。
http://jp.php.net/manual/ja/function.preg-match.php
0389nobodyさん
2008/10/01(水) 13:20:15ID:???$aに入る文字列は数十文字くらいの短いもので、それを見ています。
早さはそんなに変わらないと思うので、このままで大丈夫ですよね?
0390nobodyさん
2008/10/01(水) 22:32:30ID:HCEY5R1b基礎からのPHPorやさしいPHPを買おうか迷ってるのですが、
基礎からのPHPはアプリが動作しないと聞きました。
自分は、アプリの有無よりも文法やクラス(?)、データベースの基礎を学びたい
と思っているのですが、そのような場合はアプリの動作は気にしなくてもよいでしょうか?
その他の面(参考書としての面)では良いと聞くので。
書籍スレでの質問はナンセンスだと感じたのでこちらでさせて頂きました。
ご教授願います。
0391nobodyさん
2008/10/01(水) 22:49:30ID:???0392nobodyさん
2008/10/01(水) 22:56:32ID:???0393nobodyさん
2008/10/01(水) 23:58:01ID:???もしくは実践マスターか。
基礎からのPHPorやさしいPHPは意味がないと思います。
特に基礎からのPHPはアプリが動作しませんでした。
びっくりです。
これは捨てました。
アプリを改造していくといろいろスキルがあがってくるので、
ただ本見てもおもしろくないと思いますし。
アプリが動くやつがいいと思います。
では
0394nobodyさん
2008/10/02(木) 10:20:57ID:Qa3+G5H3<?php include('ini.php'); ?>
この、ini.phpを、別のサーバにおいて呼び出したいのですが、
<?php include('http://別のサーバ/ディレクトリ名/ini.php'); ?>
みたいにやっても、うまくいきません。
どこでつまづいていて、どうすればいいのか、教えてください。
0395nobodyさん
2008/10/02(木) 10:40:39ID:???基礎的な理解からつまづいてる
http://...をinclude = webサーバ経由でinclude
= ini.phpの「実行結果」をinclude
ini.phpの「内容」をincludeしたいなら、ftp経由にするとか、
ini.phpをincludeしたい内容の文字列を返すものにするとか。
0396nobodyさん
2008/10/02(木) 10:59:48ID:Qa3+G5H30397nobodyさん
2008/10/02(木) 18:21:25ID:???によって全く違う。
こういうのが「うまくいかない」しか書かない心理って何なの?
0398nobodyさん
2008/10/02(木) 18:25:19ID:???0399nobodyさん
2008/10/02(木) 20:57:18ID:JC9hPbTsありがとうございます。オライリーですか、参考にしてみます。
にしても、やさしいPHPのレビューってないですね。
あと基礎PHPとかはもう古いのかな‥
0400nobodyさん
2008/10/02(木) 21:31:32ID:PvYZxYkHmona.php
<?php
$a = 1;
include("giko.php");
include("fusa.php");
?>
giko.php
<?php
$b = 2+$a;
?>
ってあったときに$aがincludeされたファイル内でも利用だというのはわかったのですが
giko.phpの$bはmona.phpやfusa.phpで見れるのでしょうか?
ユーザー定義の関数の予定はないです。
0401nobodyさん
2008/10/02(木) 21:41:47ID:???0402nobodyさん
2008/10/02(木) 21:55:19ID:PvYZxYkHスコープの方を必死に検索かけてました
includeの方で調べればよかったんですね
ありがとうございます
0403nobodyさん
2008/10/06(月) 07:28:33ID:eMKnyKHTインストールの仕方が分かりません
ttp://www.php.net/manual/ja/install.phpには拡張モジュールしかないので
よく分かりませんでした
ttp://pear.php.net/manual/ja/installation.getting.php
に書いてあるように コマンドプロンプトを使えばいいのですが
コマンドプロンプトの使い方が分からないので
使い方を教えてください よろしくお願いします
0404nobodyさん
2008/10/06(月) 07:48:42ID:???> go-pear.php に保存します。そして次のコマンドを Windows のコマンドプロンプトで実行してください。
0405403
2008/10/06(月) 07:56:08ID:eMKnyKHT多分その上の行らへんでつまずいていると思います
>PHP をダウンロードしインストールが完了したら、
>バッチファイルを実行します。 というのはダブルクリックだけでいいんでしょうか?
するとコマンドプロンプトが出てくるだけですが
>インストールしたフォルダへのパスを
>PATH 環境変数に追加します。 手動で追加する
> (スタート > コントロールパネル > システム > 環境変数)
>以上で、Windows のコマンドプロンプトから pear コマンドを使い PEAR パッケージマネージャを実行できるようになります。
pealパッケージとは PHPをインストールした時点で使用できるわけではないと思うので
多分ここでつまずいてます
よろしくおねがいします
0406nobodyさん
2008/10/06(月) 08:05:35ID:???go-pearの方保存して実行すればおk
0407403
2008/10/06(月) 08:13:05ID:eMKnyKHT確認させてください
go-pear.phpというファイルを作ってそこに
http://pear.php.net/go-pearのソースをコピペ
そのあと保存先はC:\phpで
コマンドプロンプトで php go-pear.php
を実行するんですよね?
実行すると『内部コマンドや外部コマンド バッチファイルなどと認識されませんでした』
と表示されます
C:\PHP\PHP-pear.phpを実行しても
エディタが起動するだけでした
よろしくお願いします
0408nobodyさん
2008/10/06(月) 08:15:52ID:???0409nobodyさん
2008/10/06(月) 08:19:25ID:???C:\Documents and Settings\username>
で実行してるので php.exe が見つからないとかそういうオチなのかな。
0410403
2008/10/06(月) 08:38:03ID:eMKnyKHTその通りです。。。
もう少しコマンドプロンプトの使い方勉強してきます
今から学校なので ありがとうございました
0411nobodyさん
2008/10/07(火) 10:08:44ID:rx4j8OHYどっちもインスコ、php.iniを書き換えるがうまくいかない。
下のように、extensionだと、phpinfo()にxDebugの項目が現れるけど、
extension=php_xdebug-2.0.3-5.2.5.dll
下のようにzend_extension_tsの指定ではうまくいかない。
[xdebug]
zend_extension_ts = c:\php\ext\php_xdebug-2.0.3-5.2.5.dll
DebugBuildはnoで、ThreadSaftyはenabledだから、後者の書き方の筈なのだが。
で、まぁ前者で行くとして、問題は、[xdebug]の中に書いた設定が全然反映されない...orz
xdebug.remote_enable=true
とかやっても、phpinfo()で見ると、offになってる。
他の設定も同じ。
なので、eclipseでブレークポイントで止まってくれない...orz
誰かお助けを〜
0412nobodyさん
2008/10/07(火) 12:08:43ID:???0413nobodyさん
2008/10/07(火) 12:35:01ID:rx4j8OHYどうもありがとうございます〜。
0414nobodyさん
2008/10/07(火) 13:15:45ID:2lCZsXeTURIにコントローラやアクションを含めるような設計ってできるんでしょうか。
PHPのインスコ状況によるのかもしれませんが、どうも情報見つかりません。
0415nobodyさん
2008/10/07(火) 13:23:31ID:???コントローラーで$this->set('test', 10);と書くと
exception 'Zend_Controller_Action_Exception' with message 'Method "set" does not exist and was not trapped in __call()' 〜
とエラーがでてしまいます。
setを使うのに宣言か何かが必要かと思い、調べたのですが何処を見てもsetを使えばできるとしか書いていません。
コントローラーで$test;や$test=3;はエラーが出なく、エラー文を見てもsetに原因がある気がするのですが、何が原因なのでしょうか?
0416nobodyさん
2008/10/07(火) 13:41:47ID:???フレームワークのこと知らないので適当だけど、
メッセージを見るとsetが未定義で、call(多分ビルトインの)で
トラップ(多分、未定義のメソッドが呼ばれたときに適当なメソッドを割り当てる)もできないと言ってる。
多分$thisはControllerクラスのことだと思うので(多分ばっかですんまそ)
要するにControllerクラスにsetが定義されてないんじゃないかと思います。
クラス定義やメソッド一覧するメソッドがあると思うので、確認してみては?
ちなみに今気づいたんですが、フレームワークを使ってると>>414の質問の答えはYesでしょうか?
0417nobodyさん
2008/10/07(火) 14:12:15ID:???「?name=value」が嫌ならmod_rewrite(Apache)で出来る
>>415
コントローラにsetがないってことじゃないか?
$thisじゃなくてビューのオブジェクトのsetを呼べばいいような気がする
ZendFWは使ったことないが、普通はそうだと思うぞ
0419415
2008/10/07(火) 14:44:42ID:???ご指摘どおり、thisはコントローラーでsetがありませんでしたので、
中身のないsetを作ってみたところエラーは出なくなりましたが、変数の受け渡しはうまくいきませんでした(空なので当たり前ですね)
これでエラーそのもの原因は分かったので次は変数が受け渡せるように頑張ります。
>>417
確かにコントローラーに無いのでthisだと自分で処理を書くか、何処かからコピーしてこないといけないようです。
何処かからコピーしてくるんならそれを使えよって話なので、まずビューからそれらしいのがないか探して見ます。
>>418
キャメルケースが何なのか分からないのでぐぐってみましたが、命名規則(camelCaps?)の事でしょうか。
とりあえず命名規則はチェックしましたが大丈夫でした。
0420nobodyさん
2008/10/07(火) 14:48:06ID:???メソッド書いてないからメソッド無いと言われたっていう話ですか。(´Д`;)
0421416
2008/10/07(火) 15:26:57ID:???今、どんなかなと思って近所でZendの本(緑のやつ)見てきました。
それで思ったんですが、set(value,value)って
Controllerクラスじゃなくレジスタクラス(?)のメソッドじゃないかな?
コントローラで
require "Zend::Registry" <-これ正確じゃないです。これ的な名前。
regist = new Zend::Registry(); #レジスタオブジェクト
regist.set('test', 10);
じゃないかと思います。
ただ、これはアプリ全体で共有したい変数を記憶しておくクラスということなので
このメソッドで即ビューに値が渡るかは分かりません。
Controllerクラスには$this->setBody(value)的なメソッド群がある模様。
しかし、フレームワークでの制作をコピペ等でこなすのは逆にけっこうな大冒険なのでは・・・
0422416
2008/10/07(火) 15:32:59ID:???どもです。それ自分もやったことあります(CGIでw)
Apacheモジュールとして動作してるなら他といっしょかなと思ったのですが
経験者の方が耳にしたことないってことは、
少なくとも基本機能ではないってことですもんね。
参考になりました!
0423414
2008/10/07(火) 15:34:14ID:???0424403
2008/10/09(木) 04:27:43ID:???>>408-409さんの言ったとおりに
C:\>php\go-pear.phpを実行してみたのですが
go-pear.phpのエディタが出てきただけでした
それで完了されているとは思えないのですが
どこが間違っているのでしょうか?
よろしくお願いします
0425403
2008/10/09(木) 04:52:41ID:Sz+W15yD自分が持っている本ではgo-pear.batをコマンドプロンプトで実行すると
いくつかの質問が出てきて
最後にPHP.iniにパスを通す動作が出てくるようなのですが
それらしき質問もでません
よろしくお願いします
0426nobodyさん
2008/10/09(木) 05:13:45ID:???phpが動いてるか確認してな
0427403
2008/10/09(木) 05:21:50ID:Sz+W15yDレスありがとうございます
ドキュメントルートにアップして とはどういうことでしょうか?
ttp://always-pg.com/glossary/kana04_ta/document_root.htmlで調べたら
/で区切っているディレクトリのことだと思うのですが
PHPは動作してます
さっきまで簡単なソースをapacheでやっていました
0428nobodyさん
2008/10/09(木) 05:25:50ID:???0429nobodyさん
2008/10/09(木) 05:25:57ID:???先に基礎的な知識を身に付けてからのほうがいいと思うよ
0430403
2008/10/09(木) 05:30:32ID:Sz+W15yDそういう意味だったんですか
表示されました
go-pear.phpをapacheの中に入れたら
>>429さん
そのことは十分理解しております
ここで聞いてたときも何度も言われました
そのため基礎的な本を買ってこの様です
頑張りたいと思うのでよろしくお願いします
0432403
2008/10/10(金) 15:39:02ID:6TTacjjephp.iniを見てもパスが通っている気配がないです
コマンドプロンプトを使用してもエディタしか起動しない…
0433nobodyさん
2008/10/10(金) 16:16:49ID:???ブラウザでgo-pear.phpにアクセス出来たならその画面から操作するわけだが?
0434403
2008/10/10(金) 17:16:06ID:/lY+1YLGおお そんなことだったんですか
今やってみました
ですが最後のページのhttp://index.php/
が開けれないんですが
pearが導入されたことを確認する方法ってありますか?
またphp.iniにパスが通ってないようなのですが
勝手に書き込まれるわけではないのでしょうか?
よろしくお願いします
0435nobodyさん
2008/10/10(金) 19:00:50ID:???そりゃムリだろ
最初にgo-pear.phpにアクセスした際に環境設定するじゃん
そこにインストールされる
パスが通ってるかどうかはphp.ini次第だから、そんなのあとあと
まずはファイルが配置されたかを確認
0436403
2008/10/10(金) 21:45:20ID:/lY+1YLGレスサンクス
PHPの中のpearというフォルダにはたくさんファイルが入っていました
さらにその中のpearというフォルダにも入っていました
インストールは完了したっぽいです
これで最後にphp.iniにinclude_path=".;C:\php\pear"と最後に書いたら完了でしょうか?
0437nobodyさん
2008/10/10(金) 22:04:35ID:???どの辺が頑張ってんだ。
0438nobodyさん
2008/10/10(金) 22:40:00ID:???0439nobodyさん
2008/10/11(土) 07:38:32ID:???0440403
2008/10/11(土) 07:52:03ID:IbH29Qlbとりあえず環境設定でいつもつまずくので
環境設定だけ完了したいんでよろしくおねがいします
0441nobodyさん
2008/10/11(土) 08:05:52ID:???頑張れ。
0442403
2008/10/11(土) 10:04:59ID:IbH29QlbNotice: Use of undefined constant PEAR_CONFIG_SYSCONFDIR - assumed 'PEAR_CONFIG_SYSCONFDIR' in C:\Program Files\Apache Group\Apache2\htdocs\PEAR\pearfrontendweb.php on line 72
Warning: Can not find config file, please specify the $pear_user_config variable in /index.php
Error: the template directory (C:\php5\pear\data\PEAR_Frontend_Web\data\templates) is not a directory, or not readable. Make sure the 'data_dir' of your config file (C:\php5\pear\data) points to the correct location !
これはインストールされてないってことでしょうか?
0443nobodyさん
2008/10/11(土) 12:01:25ID:???警告: コンフィグがファイルであることを見つけることができないで、/index.phpの$洋梨_ユーザ_コンフィ
グ変数を指定してください。
誤り: テンプレートディレクトリ(C: \php5\洋梨\データ\PEAR_Frontend_ウェブ\データ\テンプレート)は、ディレクトリ、または読み込み可能です。 あなたのコンフィグファイル(C: \php5\洋梨\データ)の'データ_dir'が正しい位置を示すのを確実にしてください!
という意味だよ
0444nobodyさん
2008/10/11(土) 14:23:21ID:8EU/X1Q4print(mb_strwidth("※",'UTF-8'));
これををUTF-8でテキストとして保存して実行すると答えが1とでます。
なんとか正しく判定させて2と出させたいのですが、どうすればいいのでしょうか。
ちなみにSJISやEUCで試してもやはり1でした。
0445nobodyさん
2008/10/11(土) 14:39:07ID:???0446nobodyさん
2008/10/11(土) 20:36:15ID:mQFhChiahttp://www.vipper.org/vip951655.txt.html
のコードを動かしてみたんですが、
Parse error: syntax error, unexpected T_VARIABLE, expecting ';' in /virtual/boon/public_html/2ch/rss.php on line 28
が帰ってきます。。
よかったら、原因を教えて下さい。。
0447nobodyさん
2008/10/11(土) 20:44:39ID:???26: for ($i=0;$i
// 27:
// 28: $rss = fetch_rss($rssurl[$i]);
CGI設置について質問【Part3】
http://pc11.2ch.net/test/read.cgi/php/1176143582/
0448nobodyさん
2008/10/12(日) 09:51:36ID:???<h1>と</h1>
で囲まれた部分だけを抽出して配列に格納したいのですが、どのような方法があるでしょうか。
0449nobodyさん
2008/10/12(日) 10:03:24ID:???ある日突然
"の前に\が入るようになってしまいました。これはなぜなのでしょうか?
0451403
2008/10/12(日) 16:56:29ID:5ipLjJfbレスサンクスです
翻訳サイトで僕も翻訳してましたw
Error: the template directory (C:\php5\pear\data\PEAR_Frontend_Web\data\templates) is not a directory, or not readable. Make sure the 'data_dir' of your config file (C:\php5\pear\data) points to the correct location !
という部分なのですが
C:\php5\pear\data\PEAR_Frontend_Web\data\templatesというファイルを作っても動きませんでした
これはパスを通せという注意だと思うのですが
なんのデータに何をすればいいのでしょうか?
0452nobodyさん
2008/10/12(日) 17:34:56ID:???ってことだよ
0453403
2008/10/12(日) 17:36:26ID:5ipLjJfbよく分かりません
0458nobodyさん
2008/10/12(日) 19:10:31ID:???0460nobodyさん
2008/10/12(日) 22:42:57ID:B6zhuvJOなんでできないんだろうなと思った。
こういうところまで教えないといけないのか。
0461403
2008/10/13(月) 03:01:56ID:5FVzcFudを見て途中までインストールしたのですが
>試しにPEAR::HTTP_Downloadをインストールしてみましょう。
というとこでコマンドプロンプトを使ってダウンロードしようとしたら
最後の行で
No valid packages found
install failed
と出ました
これはC:\php\pearをコマンドプロンプトで実行したら
Usage: pear [options] command [command-options]
Type "pear help options" to list all options.
Type "pear help " to get the help for the specified command.
Commands:
という部分は出こなかったことと関係しているのでしょうか?
上のサイトにも書いてあったのですが
pear.batというファイルが出てきたらインストールできたということ
と書いてあったのでインストールは出来ていると思います
なんにせよ インストールは完了したことを確認できました
みなさんありがとうございます
0463nobodyさん
2008/10/13(月) 05:33:07ID:???これはとある画像掲示板の画像削除時のスクリプトなんですが
これは1行ずつ削除該当ナンバーか照らしあわしつつ$lineに格納していって
該当ナンバーならその行は空白にすると言うスクリプトでいいのでしょうか?
fputs($fp, implode('', $line));
この部分のimplodeは要素間に改行を入れた後、
書き込みということですか?
0464nobodyさん
2008/10/13(月) 07:49:18ID:???そのimplodeは配列だった$lineを区切り文字無しで全部くっつけて一つの文字列にしてる
ちょっと前時代的な手法だね。
http://www.pachiweb.com/site-material/profile.gif
・・・ゴクリ
0465nobodyさん
2008/10/13(月) 09:31:48ID:5FVzcFudlocalhostでPHPの状態を見れるようにしたのですが
Notice: Use of undefined constant PEAR_CONFIG_SYSCONFDIR - assumed 'PEAR_CONFIG_SYSCONFDIR' in C:\Program Files\Apache Group\Apache2\htdocs\PEAR\pearfrontendweb.php on line 72
Warning: Can not find config file, please specify the $pear_user_config variable in /index.php
Error: the template directory (C:\php5\pear\data\PEAR_Frontend_Web\data\templates) is not a directory, or not readable. Make sure the 'data_dir' of your config file (C:\php5\pear\data) points to the correct location !
と出てきました
pearfrontendweb.phpの問題の行には
// find other config file location
$default_config_dirs = array(
substr(dirname(__FILE__), 0, strrpos(dirname(__FILE__), DIRECTORY_SEPARATOR)), // strip eg PEAR from .../example/PEAR(/pearfrontendweb.php)
dirname($_SERVER['SCRIPT_FILENAME']),
PEAR_CONFIG_SYSCONFDIR,
と出てきました
これはpearをダウンロードした場所が悪かったのでしょうか?
この場合はC:\Program Files\Apache Group\Apache2\htdocs\pearにダウンロードしなければならなかったのでしょうか?
あと気になったのがC:\php5\pear\data\PEAR_Frontend_Web\data\templatesという部分です
php5\とありますがphp5はありません
PHPという名前に変えたので これが原因でしょうか?
0466463
2008/10/13(月) 09:38:47ID:???人の癖がついたスクリプトをいじるのはほんと大変ですね。
ほんとに改造できるか心配になってきました。
プロフィールとかは気にしないで下さいw
それですごい基本的な事で申し訳ないんですが
$log = fopen('access.log','w');
fopen関数のファイルの内容をクリアする(w)などのモードの場合、
ログ内容をこの例だと$logに格納した後ログ消去するのでしょうか?
0468465
2008/10/13(月) 12:18:31ID:5FVzcFud0469nobodyさん
2008/10/13(月) 12:20:11ID:???0470465
2008/10/13(月) 12:55:01ID:5FVzcFudすいません
スクリプト自体がどれか分からないんですが
エディタならPHPエディタです
すいません 用語をよく知らないので
0471nobodyさん
2008/10/13(月) 13:01:37ID:???0472nobodyさん
2008/10/13(月) 13:03:59ID:???冷静になって環境見直せよ、画伯
0473465
2008/10/13(月) 13:20:54ID:5FVzcFudで調べてきたんですけど
コンパイラが何か分からないんです
変換という意味が分からなくて
apacheはサーバ代わりだし
0474nobodyさん
2008/10/13(月) 13:28:42ID:???0475nobodyさん
2008/10/13(月) 13:41:35ID:CGfh2V74ディレクトリについて少し質問
C:\php\pear\DBだった場合 (DBはフォルダ)
C:\php\pearでもいいんでしょうか?
0476nobodyさん
2008/10/13(月) 13:43:52ID:CGfh2V74申し訳ないです
0477463
2008/10/13(月) 19:28:39ID:???0478nobodyさん
2008/10/14(火) 00:30:55ID:z+viMTEc0479KYOO ◆1C9DnWzrKw
2008/10/14(火) 00:34:16ID:IZm37X9Z掲示板ってやつをつくってみたんですけど、
暇だったら見てみてください。
0480nobodyさん
2008/10/14(火) 00:44:52ID:???サポートは終了しても現行システムを移行させるまでは使うしかない
新たに始めるならPHP5だろう
dev版PHP6を見てると・・・また互換性のないUPがたんまり・・・
0482465
2008/10/14(火) 08:40:33ID:OazE8u180484nobodyさん
2008/10/14(火) 09:54:18ID:???>>442と同じことを>>465で訊いてしまう感覚とか、
C:\php\pear(>>436等) or C:\php5\pear のどっちに PEAR を入れたのか本人もよくわかってないとか、
目先の対症療法では解決しない根深いものを感じるよ。
0485nobodyさん
2008/10/14(火) 10:01:00ID:???0487nobodyさん
2008/10/14(火) 12:30:14ID:PhS+pU3Sphpを使ったwebサイト作成の勉強をしているのですが
C:\Users\ユーザー名\Documents\サンプルサイトの中でwebサイトを作っているのですが
C:\xamppの中にあるhtdocs内にあるphpを読み込もうとしても上手くいきません。
phpの初心者なんで概念自体があやふやなので変な質問でしたらごめんなさい<(._.)>
0488nobodyさん
2008/10/14(火) 13:06:00ID:???0489nobodyさん
2008/10/14(火) 18:05:42ID:???0490nobodyさん
2008/10/14(火) 18:49:32ID:???0491nobodyさん
2008/10/15(水) 15:36:31ID:jArJnvnCそれを.htaccess下のフォルダに入れました。
メインのPHPでそのファイルを読み取り認証
その後、ID.datファイルを外部から読込んで
IDごとに違うページを表示させているのですが
セキュリティ的に問題などあるでしょうか?
補足
ID.datも.htaccess下に入れてあります。
ちょっとした顧客の納期表示に使おうと思っています。
0492nobodyさん
2008/10/15(水) 15:40:03ID:???0493nobodyさん
2008/10/15(水) 15:42:31ID:jArJnvnCすいません
.htaccess .htpasswordファイルを置いてアクセス制限かけたフォルダです。
0494nobodyさん
2008/10/15(水) 15:43:47ID:???「.htaccessでアクセス制限しているディレクトリ配下」くらい予測しろ
>>491
.htaccessでdeny from allしてるなら直リン出来ないからまぁ安全じゃないか?
出来ればルート外に置くのがベストだが
0495nobodyさん
2008/10/15(水) 15:56:52ID:jArJnvnC>>494
ありがとうございました。
ルート内にあったのでルート外に置くようにしてみます。
0496nobodyさん
2008/10/15(水) 17:58:29ID:9ioAzBde0497nobodyさん
2008/10/15(水) 20:04:57ID:???使えるかどうかはともかく。
0501nobodyさん
2008/10/16(木) 17:46:31ID:???0502nobodyさん
2008/10/16(木) 18:09:17ID:???じゃぁ普通にレン鯖か
しかしレン鯖だとセーフモードやらパーミッションやら意識することが多いよな
・・・そうかそれも勉強か!
0503nobodyさん
2008/10/16(木) 18:21:05ID:???0504nobodyさん
2008/10/16(木) 20:03:13ID:???0505nobodyさん
2008/10/17(金) 13:22:48ID:???教えて頂けませんでしょうか。
0506nobodyさん
2008/10/17(金) 14:04:27ID:???コアの部分はPHPまぬある必見
PECLの分まで纏めたサイトなんてある意味マゾだ
0507nobodyさん
2008/10/18(土) 00:42:37ID:VyIaaBn5>>497
有難うございます。
只今、PHPと共にモバイルサイト構築を勉強中で、
Net_UserAgent_Mobileがどんな具合なのか使ってみたかったんですが
自分の力では無料サーバのセーフモード下にPEARを
インストールすることが出来ませんでした…orz
・無料サーバ
・php5.25
・セーフモード下
では、やはり不可能なのでしょうか。
どなたかご教授頂ければ幸いです。
0508nobodyさん
2008/10/18(土) 01:19:10ID:???ぶっちゃけ依存PEARも含めてアップロードしてパスを通せば使える
(共有ライブラリに依存しないなら)
インストーラでなければならないわけじゃない(依存が面倒なだけ)
0509nobodyさん
2008/10/19(日) 13:57:02ID:???サーバ側の処理はどうなりますか?
0510nobodyさん
2008/10/19(日) 13:59:27ID:???0511nobodyさん
2008/10/20(月) 11:13:17ID:???メール送信フォームのフォーム入力の所についてなんですけど
間違ってたら警告出して
間違ってなければ確認画面に飛ばすように書きたいんですけど
飛ばすと入力情報が消えてしまいます。
if (isset($_POST['oshibotan'])){
if (isset($_POST['namae']=="")){
echo "名前書いて<br>";
}
}else{
$url = "kakunin.php";
header("Location:$url");
}
}
なんとなく「そりゃ飛ばないわな」って思うんですが
わからない〜( p_q)
0513511
2008/10/20(月) 14:03:24ID:???上の通り書いてもエラー(「名前書いて」)が出ない・・すぐに飛んでしまう( p_q)
0514nobodyさん
2008/10/20(月) 14:22:25ID:???issetはその変数がセットされているかどうか
その中に==とか入れてる時点で間違ってる
次にecho "名前書いて<br>"; と飛ばす処理は同階層なので
今の書き方だとどちらかしか発生しない
あとLocationの使い方がその書き方でも飛ばしてくれるブラウザは多いが
書き方は間違っている
正しくはhttpとかスキーマからはじめないとだめ
0515nobodyさん
2008/10/20(月) 14:24:12ID:???次にecho "名前書いて<br>"; と飛ばす処理は同階層なので
今の書き方だとどちらかしか発生しない
これ忘れて1個}が多いので読み間違った
まぁどちらにせよどちらかしか発生しないが・・・
0516nobodyさん
2008/10/20(月) 14:24:16ID:???0517nobodyさん
2008/10/20(月) 14:30:59ID:???どう見ても間違いだろうが
if ($_POST['namae']==""){
これなら使っているWebアプリ等は多々あるが
if (isset($_POST['namae']=="")){
これはまず無い
というかこういう書き方出来るのかと思って
さっき試したらParse error出たし
0518nobodyさん
2008/10/20(月) 14:45:13ID:???0519511
2008/10/20(月) 18:00:40ID:???あんがと!!
自分で色々やってたらなんか出来た。
「なんか出来た」だからちゃんとわかってないかも
明日もまた質問するかもしれないけど
ありがとね!
issetはstrlenにしたよ。
よくわかってないのに見よう見まねで使ってる。
たぶんまだバグだらけ。
0520nobodyさん
2008/10/20(月) 18:48:20ID:???0521nobodyさん
2008/10/21(火) 09:15:38ID:???webサイトの作成に役立てようと、phpを勉強しはじめました。
入門書を一通り読んだのですが、webサイトにどう役立てるかわかりません。
テンプレート的なものをイメージしていました。
次に具体的に何を学べばよいのでしょうか?
0522nobodyさん
2008/10/21(火) 10:23:27ID:???0524nobodyさん
2008/10/21(火) 11:46:03ID:???0525nobodyさん
2008/10/21(火) 13:43:59ID:5M3hbzoPif (isset($_POST['namae']) && strlen($_POST['namae']) == 0) {
echo "名前書いて<br>";
}
かな・・・
0526nobodyさん
2008/10/21(火) 14:36:34ID:???windows上では動作するのにレンタルスペースで動かすと
ファイル削除、コピー、書き込みができません。どうしてですか?
0527nobodyさん
2008/10/21(火) 14:43:57ID:???0528nobodyさん
2008/10/21(火) 15:10:40ID:???人生に役立てようと、女心を勉強しはじめました。
入門書を一通り読んだのですが、人生にどう役立てるかわかりません。
テンプレート的なものをイメージしていました。
次に具体的に何を学べばよいのでしょうか?
0531nobodyさん
2008/10/21(火) 16:50:07ID:FLMyajbOつまらなすぎ
0532511
2008/10/21(火) 17:39:59ID:???原因わかる人教えて
テーブルタグ使ってて
<table>
<tr><td>ユーザID</td><td><input type="text" name="userid" maxlength="10" size=20></td>
<tr><td>パスワード</td><td><input type="password" name="pswd" maxlength="10" size=20></td></tr>
</table>
ってやってるんだけど
フォームの長さがサイズ指定しても変わってしまう。
input typeをpasswordにしてから。
これは直せないのかなぁ?
0534nobodyさん
2008/10/21(火) 19:04:47ID:???コピペPGの悪例だな
0535nobodyさん
2008/10/21(火) 19:42:03ID:???0538nobodyさん
2008/10/21(火) 20:26:31ID:???0539nobodyさん
2008/10/21(火) 21:43:31ID:???・コメント欄を読まない
・問題の詳細についてググりすらしない
・未知の脆弱性に対して敏感でない
・精神的に幼稚である
0540nobodyさん
2008/10/21(火) 21:56:30ID:???サイトはどこかにないですかね?
社内LAN環境で鯖を立ててphpを動かそうと思っていますが
NETにつなげないため調べ物ができず困っています…
サイトダウンローダー等も試してみたのですが
CGIに対応しているダウンローダーが無くうまく落とせませんでした
0542nobodyさん
2008/10/21(火) 22:02:37ID:???少しは調べたのかな?
http://docs.php.gr.jp/
0543nobodyさん
2008/10/22(水) 08:23:23ID:P24H2Ub2一通りの攻撃の手法と防御法は覚えたけど未知の脆弱性に対してどうすればいいか正直わからない。
この機会に教えてください。
0544511
2008/10/22(水) 09:39:01ID:???コピペではないのですが、つけたりつけなかったりです。
CSS、今から調べてみます。
調べるのが遅いんですよね・・・効率悪い探し方をしているのかも。
0546511
2008/10/22(水) 09:55:50ID:???0547511
2008/10/22(水) 13:49:18ID:???認証実行(ログインボタンを押した時)した際
DBからID、PWを全て取り出して
1つ1つ合っているかどうか検証するのですよね。
if($user==(DBから取り出したID) && $pswd==(DBから取り出したPW)){
$url = "index.php";
header("Location:$url");
}else{
echo "ちがうがな!";
}
}
こんな感じですよね?
この(DBから取り出した・・)の部分にどう書けばいいのかわからなくて・・
いっぱいあるわけですよね
複数のID&PWを1つにまとめて出して確認する方法が良くわからない
0548nobodyさん
2008/10/22(水) 14:01:45ID:???どんだけ無駄な
DBならSQLのWHEREでIDとパスワードを照合しろよ
結果の行数が1か0かで判断出来るじゃん
0549nobodyさん
2008/10/22(水) 14:05:08ID:???意外と陥りやすい罠かもしれない
0550nobodyさん
2008/10/22(水) 14:25:22ID:???DBを使ってる理由を問いたいくらいだ
0551547
2008/10/22(水) 14:27:34ID:???だいぶググってみましたが
よくわからないです。
入門サイト見ながらやってるんですが
>>548,549
のっけから間違っちゃってるってことでしょうか?
0552nobodyさん
2008/10/22(水) 14:29:57ID:???0553547
2008/10/22(水) 14:40:12ID:???先輩2人は参考書も買わずに半日かからずに出来たそうです。
僕は2日かかってます。
自分でも何故こんなに理解力が無いのかと思うと嫌になります。
今日は帰りに入門書を買って帰ります。
ありがとうございました。
0554nobodyさん
2008/10/22(水) 14:55:22ID:???認証部分なんて30分もかからん、多分その先輩もそうだろう
理解力ではなくて基礎が足りん
PHPの文法やアルゴリズム、DBの基礎とSQL構文、知っておくべきことを知らないから時間がかかる
知った後は早いもんだ
0555nobodyさん
2008/10/22(水) 15:18:05ID:???絶対やるなよ
「パスワードをハッシュ化(暗号化)保存することを法律で義務化するくらいのことが必要だと思う」
ttp://neta.ywcafe.net/000910.html
0556553
2008/10/22(水) 15:44:06ID:???とりあえずログインをやろうと思って
DBに追加したIDとPWをちゃんと読み込めるかどうか試そうと思って。
それでずっとつまづいてます。
自分でもすぐ出来ると思ったんですが・・・
今日中に終わらせると言ったもんだから今日中に終わらせないと
0557nobodyさん
2008/10/22(水) 15:57:40ID:???0558553
2008/10/22(水) 16:03:03ID:???$user = $_POST['userid'];
$pswd = $_POST['pswd'];
if($user==$row['name'] && $pswd==$row['pass']){
$url = "index.php";
header("Location:$url");
}else{
echo $error;
}
この$row['name']ってところは配列ですよね。
ここに配列の中身全部出せばいいんじゃないかと思ってます。
「やさしいPHP」という本を見てるんですが、詳しくは載ってなくて
0559nobodyさん
2008/10/22(水) 16:03:06ID:???mysql_connect()とかで接続できてるの?
SQLの構文は知ってるの?
君がどこまで理解してるのかが全然わからないw
AUTHとか使って簡単に済ませちゃえば?
0560553
2008/10/22(水) 16:21:52ID:???構文はスコシしか知らないと思います。
追加や一覧表示、削除は出来ました。
0561nobodyさん
2008/10/22(水) 16:56:11ID:???>>558で$rowを事前に用意しようとするのが間違い
postのuseridとpswdでDBに対してSQL発行(SELECT文)して存在するかチェック
(>>555の点を注意するならハッシュ化したpswdで比較)
で、結果に応じて表示を行う
な?単純なものならこれだけだ
0562553
2008/10/22(水) 17:27:48ID:???ありがとう、わかったようなわからないような
でもなんとなく・・・いや、とりあえずもう少し頑張ってみる。
またきます。
0564562
2008/10/22(水) 19:58:59ID:???人気高いやつを注文したっす
金曜日には届きますけど、それまで教えて貰いたいです。
あの・・・もしよければソースそのまま
どこかのアップローダにアップするので
訂正もしくは、ここは訂正すべき、という部分を指摘してもらえないでしょうか?
0566nobodyさん
2008/10/22(水) 20:27:00ID:???0568nobodyさん
2008/10/22(水) 21:46:42ID:Qg6SK/1U<?php echo"<〜>" ?>
<?php if(〜) {
echo"<iframe src〜 />"; } ?>
と、あって、3行目のecho(iframe)が表示される時1行目の
<?php ?>を丸ごと消去したいのですが、どうしたらいいですか?
0569nobodyさん
2008/10/22(水) 21:54:58ID:???0570564
2008/10/23(木) 04:51:02ID:???一応これのlogin.phpなんですけど〜〜(;;;;;;
8行目から23行目にかけてのとこなんすけどぉ〜
ここにDBから呼び出したIDとPWを書いて認証したいんですけど
DBの書き方がわからへん・・・。
0572nobodyさん
2008/10/23(木) 08:47:21ID:???その後、たぶんセッション引き回すんだろうし。
0573nobodyさん
2008/10/23(木) 08:56:53ID:???$sql = "SELECT * FROM user_pwd WHERE user ='$user'and pass = '$pswd'";
$res = mysql_query($sql,$conn);
$resになにが入ってるか理解できてないと思う
$resにはDBのuser_pwdテーブルのuser列が$userで更にpass列が$pswdのオブジェクトが入ってる
言い換えると
$userと$pswdが一致してるレコードがあれば$resに格納
つまり君の言う認証はSQL文を発行した時点で完了してる
ま>>561さんが言ってるんだけどねw
0575nobodyさん
2008/10/23(木) 09:20:09ID:???おまいも理解してねぇのか
結果セットはレコードそのものじゃねぇ、発行結果のオブジェクトだ
あとこの場合のSELECTはCOUNTで行数数えるだけでいい
で、結果セットからnum_rowsして1か0かで判断
0576570
2008/10/23(木) 09:37:43ID:???今からやります。
できるかなあ。
0577570
2008/10/23(木) 10:23:21ID:???$kekka="SELECT pass FROM user_pwd WHERE user=".$userid;
if ($_SERVER["REQUEST_METHOD"]=="POST"){
if($kekka=$pswd){
echo "Okie.";
}
elseif($kekka!=$pswd){
echo "bad.";
}
else{
echo "noID.";
}
}
こうですか・・??
0578nobodyさん
2008/10/23(木) 10:37:20ID:???ダァァーー理解してねぇ
$kekkaにはSQL文が入るのに、なぜ$pswdと比較出来る!
動作だけならこう
$uid // POSTからとったユーザIDとする
$passwd // POSTからとったパスワードとする
$sql = "SELECT COUNT(*) FROM tablename WHERE userid='$uid' AND passwd='$passwd'"
$res = mysql_query($sql);
list($nums) = mysql_fetch_assoc($res);
if ($nums == 0){
//NG
}else{
//OK
}
0579nobodyさん
2008/10/23(木) 10:37:55ID:???0581577
2008/10/23(木) 10:49:49ID:???$pswd = $_POST['pswd'];
$sql = "SELECT COUNT(*) FROM user_pwd WHERE user='$user' AND pass='$pswd'";
$res = mysql_query($sql);
list($nums) = mysql_fetch_assoc($res);
if ($_SERVER["REQUEST_METHOD"]=="POST"){
if($nums==0){
echo "bad";
}else{
echo "okie";
}
}
こうですか?
出来ないよーーーーーーーーーーーーーーーーーーーーわからない
焦る 軽いノイローゼ状態だー
0582nobodyさん
2008/10/23(木) 10:51:35ID:???何も分かってないのに偶然うまく動くとかえって自分の首を絞めるよ.
>>570のコードも addtest.php って本人が書いたわけじゃなくて
職場の既存コードのコピペじゃないの?
SQLインジェクション脆弱性あるよ.
>>578 $uid と $passwd をエスケープしないのは初心者にとって有害な例示だと思うよ.
0583nobodyさん
2008/10/23(木) 10:52:51ID:???ASQL文を作る。
ユーザーリクエストを含めるときはインジェクション対策のために専用エスケープを忘れずに。
B発行する。
C結果セットを受けとる。
Dループさせるなり取り出すなりして表示。
E接続を切る。
0584570
2008/10/23(木) 10:55:53ID:???といってもSQL構文のところだけです。
他はナントナクはわかって書いてます。
「とりあえず動かしてミロ」とのことなので
セキュリティの事は後に言われると思います。
0585nobodyさん
2008/10/23(木) 10:56:30ID:???そこからなのか・・・
>>580
そんなこと言ったら「担当替えろ」で終わりだ
そもそもモデル化してないのにゴチャゴチャやったら>>581みたいなことになる
まずは最低限の動作、そこから拡張しかないのだ、この場合
>>581
DBのオープンすらやってないってことでFA?
そのスクリプトには事前処理とかないわけ?
mysql_connectはどこかで使ってるか?(認証処理より前の段階で)
0586nobodyさん
2008/10/23(木) 10:57:06ID:???if($nums==1){
//OK
}else{
//NG
}
のほうがいいような。
0587nobodyさん
2008/10/23(木) 10:58:17ID:???まずは動くところまで持っていくしかないな
そこから先輩もツッコミや指導を予定してるんだろうし
0588nobodyさん
2008/10/23(木) 11:11:28ID:???モデル化とか関係ないし
とりあえずの動作も必要だが
それ以上にSQLインジェクションの事を考えさせる事の方が重要
0589581
2008/10/23(木) 11:13:20ID:???ソースもだいぶごちゃごちゃしてました。まとめますと今こんな事書いてます。
http://amezolog.hp.infoseek.co.jp/source/up8378.zip
0591nobodyさん
2008/10/23(木) 11:20:45ID:???見た
WHEREのところで「user=」ってなってるけど、
user_pwdテーブルはIDとpassフィールドなんだよな?
じゃぁ「ID=」にしないと
0592nobodyさん
2008/10/23(木) 11:28:25ID:???11行目のifの中に入れたほうがいい
理由は、今のままじゃ毎回SQL発行しちゃうから
0593589
2008/10/23(木) 11:52:15ID:???ささっと解決しました。情けない。
たぶん「あらら、出来てないのね」と思われたと思います。
>>591
そう訂正されました。はい。
>>592
その通りでした。
そう訂正されました。
みなさん、ありがとうございます。
だけど、まだまだわかってないなぁ。
次はMD5化して登録と、ログインです。
これは出来そうな気がする・・・。
0594589
2008/10/23(木) 13:06:38ID:???$userid = $_POST['userid'];
$pswd = $_POST['pswd'];
$pswd2= md5($pswd);
$host = "localhost";
$conn = mysql_connect($host, "root", "");
$db_selected = mysql_select_db('webauth', $conn);
$sql = "SELECT * FROM user_pwd WHERE name='".$userid."' AND pass='".$pswd2."'";
$res = mysql_query($sql);
if(mysql_fetch_assoc($res)){
$url = "index.php";
header("Location:$url");
}else{
echo "エラー";
}
}
一応のせときます。
結局こうしました。
0595nobodyさん
2008/10/23(木) 14:23:32ID:???2chで聞いてるなんてバレたら首にされかねんぞ。
0596594
2008/10/23(木) 15:03:26ID:???家だけにしときます。
忠告ありがとうございます。
0597nobodyさん
2008/10/23(木) 15:56:27ID:vhIkvqq/ここで聞くのもわるくない。
客先行く前にきちんと疑問点は解消しておけ。
出て行って大変だよ。
0598nobodyさん
2008/10/23(木) 16:18:43ID:???「とりあえず自力でやってみろ、教えるのはそれからだ」ってことじゃない?
何でもほいほい教えちゃうのはよくない。
0599nobodyさん
2008/10/23(木) 16:59:24ID:???作れないってことは検索力が欠けてるってことがわかるし。
ま、2chとか掲示板で聞いてたらぶん殴るがw
0600nobodyさん
2008/10/23(木) 17:05:54ID:???どうしてそんな職に就いたかねぇ・・・
0601nobodyさん
2008/10/23(木) 18:07:36ID:???そんなもんさ
俺の下についてる連中もやる気だけある素人だし
その方が変なクセとか勘違いとか腐ったプライドとかなくていいがの
0602nobodyさん
2008/10/23(木) 19:27:42ID:vhIkvqq/0603nobodyさん
2008/10/23(木) 20:17:53ID:???都合が悪い意見は無視とかいい性格してるし
0604nobodyさん
2008/10/23(木) 21:19:01ID:???verは5.0.5なんですけど、インストールが終わって設定もやって、最後のチェックで、必ず一番下の
Apply security settingsでエラーになります
大学の研究でPHPはじめたのですが、環境そろえる段階でこけています。
どなたかお力をお貸しください
0605nobodyさん
2008/10/23(木) 21:21:20ID:???それとなんでわざわざ古いの使うのか
0606nobodyさん
2008/10/23(木) 21:53:51ID:LaxpC4NS掲示板 / 問い合わせフォーム / UPロダ / ショッピングカート
PHPを独学で↑を0から作成できるレベルになりましたが、実際の
PHPプログラマとして就職するには、次に何を作れたら良いでしょう?
どれ位のレベルになれば、PHPプログラマとして雇ってもらえますか?
ちなみに今は、本屋のバイト(23歳)です。
0607nobodyさん
2008/10/23(木) 21:55:09ID:???0608nobodyさん
2008/10/23(木) 21:58:25ID:???本当の勉強は就職してから始まるので、いまは面接のレベルを上げた方がいいと思います。
0609nobodyさん
2008/10/23(木) 22:00:36ID:???0610nobodyさん
2008/10/23(木) 22:08:27ID:???一度アンインスコしてから入れなおしましたが、必ず上記の項目でエラーが出ます
原因わからず・・・
verですが、研究室で使用しているのがこれなんで、使えとのことです
0611606
2008/10/23(木) 22:10:01ID:LaxpC4NSfeiz−design.コム/inquiry.ピエチピ
0612nobodyさん
2008/10/23(木) 22:11:35ID:???ん、十分じゃね。本屋のバイトなら対人もある程度大丈夫だろうし。
技術的な部分は就職してからでいいし。自信もってGo。
0613nobodyさん
2008/10/23(木) 22:23:55ID:???valueの値をクォーテーションで囲ってないのと、
メールアドレスバレバレ。。
0614nobodyさん
2008/10/23(木) 22:26:31ID:???0615nobodyさん
2008/10/23(木) 22:33:52ID:???0617nobodyさん
2008/10/23(木) 22:39:31ID:???バカ専門学校出ててもこんなふうには作らない。
でも、こういうことは独学じゃわからないことだから、
まず就職した方がいいよ。2ちゃんでぐだぐだ言い合ってるより。
0618606
2008/10/23(木) 22:39:41ID:LaxpC4NS『htmlspecialchars』でやれば上手くでしょうか・・・
『’』なしてもテスト送信できたのでスルーしてしまいました(汗
そんで、私はどーすれば・・・
今後の目標なんかを・・・
0619nobodyさん
2008/10/23(木) 22:42:19ID:???0621nobodyさん
2008/10/23(木) 23:10:49ID:???0624606さんへ
2008/10/24(金) 00:15:22ID:wH/GxTYw基本はわかっていそう。
次はそうだな。サーバー立てて自分でUPしてみて。
もちろんここにさらす必要はないから。
でその作った掲示板とショッピングカートをのせる。
後HTML+CSSの練習かな?
feiz−design.コム/inquiry.ピエチピ
って自分で全部は作っていないんでしょう?
0625nobodyさん
2008/10/24(金) 00:27:34ID:???0626nobodyさん
2008/10/24(金) 01:01:51ID:wH/GxTYw俺の責任でつね
0627nobodyさん
2008/10/24(金) 01:31:05ID:???0630nobodyさん
2008/10/24(金) 04:26:04ID:???うちでは@数えるだけ。
0631nobodyさん
2008/10/24(金) 05:00:30ID:???そうですね。ごく簡単に判定することにします。
CPAN の Email::Valid や Mail::CheckUser みたいなものが提供されているかと期待したのですが。
0634nobodyさん
2008/10/24(金) 05:21:44ID:???0635nobodyさん
2008/10/24(金) 05:25:14ID:???0636nobodyさん
2008/10/24(金) 05:27:02ID:???0637nobodyさん
2008/10/24(金) 08:50:51ID:???移植すれば?とかアホかと
0638nobodyさん
2008/10/24(金) 09:16:03ID:???0639nobodyさん
2008/10/24(金) 12:48:51ID:???{
if (mb_strlen($text) > $num) {
$after = mb_substr($text, 0, num);
return $after.'<略>';
} else {
return $text;
}
}
という,文字列が一定以上の長さならそこで切って、
語を付加する関数を作ろうとしたのですがうまくいきません
なぜなのか分かる方いらっしゃいませんか?
0640nobodyさん
2008/10/24(金) 12:51:59ID:???0641nobodyさん
2008/10/24(金) 13:03:57ID:???そんなもん作るな・・・
http://jp.php.net/mb_strimwidth
0642nobodyさん
2008/10/24(金) 17:48:45ID:45nbMWSd$xml = simplexml_load_file($url);
var_dump($xml);
↑この結果が↓このようになります。
objet(SimpleXMLElement)#1 (2) { ["社員番号"]=> string(5) "00001" ["氏名"]=> string(7) "ABC DEF" }
社員番号を表示したいのですが
echo($xml->社員番号);
とやっても表示されませんでした。
XMLの要素名が日本語なのが問題なのでしょうか?
0646nobodyさん
2008/10/25(土) 09:29:46ID:hQkPyR+6$xml->IDだと表示されたので
要素名が日本語だとまずいのかなと思ったです。
0647nobodyさん
2008/10/25(土) 13:24:59ID:???0648nobodyさん
2008/10/26(日) 18:47:14ID:???のようなgyaoのURL(tag/?keyword_id=****)からHTMLソースを取得する方法はないでしょうか
fsockopenを使うような気がしたのですがうまく取得できません
PHP4.43
0649nobodyさん
2008/10/26(日) 19:34:59ID:???0650nobodyさん
2008/10/26(日) 20:31:06ID:???0651nobodyさん
2008/10/26(日) 21:48:04ID:???0652nobodyさん
2008/10/27(月) 01:44:12ID:???レン鯖では無効にしてる場合も多いけど
0653nobodyさん
2008/10/27(月) 11:28:17ID:???0654nobodyさん
2008/10/27(月) 11:33:39ID:???0655nobodyさん
2008/10/27(月) 11:40:20ID:???0656nobodyさん
2008/10/27(月) 12:15:24ID:???レン鯖では無効にしてる場合も多いけど
0657648
2008/10/27(月) 13:18:28ID:???でできるようです
Anhttpdでローカルテストしてたんですが、実はAnhttpdだと上のような外部fopenが強制終了されてしまうというオチでした
file_get_contentsも同じく
さーてこまった
0658nobodyさん
2008/10/27(月) 13:52:47ID:???0659nobodyさん
2008/10/27(月) 14:05:00ID:???0660nobodyさん
2008/10/27(月) 14:05:47ID:???困ってるように見えない。
ところでよその鯖から取って来るときってあんまりファイルポインタの操作に
用事はないような。たいてい file_get_contents() な感じの用事じゃないのかな。
0661587
2008/10/27(月) 15:48:44ID:???PHP5入れてみます
やりたいことは他鯖からとってきたHTMLデータから特定の部分を抽出して、置換して整形してから表示したいっていう感じです
0662nobodyさん
2008/10/27(月) 15:51:25ID:???0663nobodyさん
2008/10/27(月) 15:53:47ID:???0664nobodyさん
2008/10/27(月) 16:00:00ID:???Zend1互換モード使えばクラス関係以外はPHP4として動作するしな
あとHTMLを改変する場合コピーライト注意な、公開してると無断転記となる場合も・・・
0665nobodyさん
2008/10/27(月) 16:42:05ID:???30分粘ったが投げた。
0666nobodyさん
2008/10/27(月) 18:20:29ID:???マッチしたらマッチしたのが後から何番目の配列か知りたいのですが何か良い方法はないでしょうか?
>>はかならず配列の後から数えて数番目という位置にあり、前から順にマッチさせていくとすごく時間がかかってしまいます。
aaa
bbb
ccc
ddd
eee
ff>>f
ggg
0668nobodyさん
2008/10/27(月) 20:20:31ID:???0670nobodyさん
2008/10/29(水) 17:11:52ID:???0430
みたいな数桁の数字の、頭のゼロを一律に削除する方法はないでしょうか
0671nobodyさん
2008/10/29(水) 18:23:27ID:???0672nobodyさん
2008/10/29(水) 19:09:05ID:???0673nobodyさん
2008/10/29(水) 19:15:52ID:???$mdb = &MDB2::factory($DSN);
どなたか教えてください。
0674nobodyさん
2008/10/29(水) 19:18:20ID:???0678nobodyさん
2008/10/30(木) 02:50:00ID:???0679nobodyさん
2008/10/30(木) 03:01:55ID:???大抵はpregの方が速い
と言うか>>671のが一番速そうに思う
速さうんぬんの処理内容じゃないが・・・
0681nobodyさん
2008/10/30(木) 10:03:00ID:???この正規表現の場合は多分eregの方が早い
0682nobodyさん
2008/10/30(木) 10:44:09ID:???大学の研究でPHP使うことになったんだが、俺プログラムなんてシタコトナイシ…
この機能はPHPとアパッチ入れただけでは動かんとですか?
なにがなんやら…
出来ましたら詳しく解説しているサイト、もしくは書籍を紹介してもらえると助かります
0683nobodyさん
2008/10/30(木) 10:57:04ID:???preg match :0.0012149810791016
ereg match :0.0011699199676514
preg replace :0.0017139911651611
ereg replace :0.0032238960266113
ltrim :0.00061607360839844
cast :0.00018191337585449
+=0 :3.2901763916016E-05
0684nobodyさん
2008/10/30(木) 11:04:19ID:???0687nobodyさん
2008/10/30(木) 16:48:27ID:???PHPコアでも当たり前のように自動キャストしてるから、実装が最適化されてて速いのかな
0689nobodyさん
2008/10/30(木) 18:58:05ID:???桁を合わせてくれw
686 名前:nobodyさん[sage] 投稿日:2008/10/30(木) 16:17:42 ID:???
>>683
で、どれが早いの?
687 名前:nobodyさん[sage] 投稿日:2008/10/30(木) 16:48:27 ID:???
見た感じキャストじゃね?
PHPコアでも当たり前のように自動キャストしてるから、実装が最適化されてて速いのかな
0690nobodyさん
2008/10/30(木) 23:03:26ID:???Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in
このエラーが出るのっておかしいですよね?PHPのインストールがまずいのでしょうか?
0691nobodyさん
2008/10/30(木) 23:05:01ID:???0692nobodyさん
2008/10/31(金) 02:57:43ID:???0694nobodyさん
2008/10/31(金) 11:05:03ID:???0695nobodyさん
2008/10/31(金) 13:02:12ID:???1回の時はこんなんになった
正直な話どれを使おうが気にするレベルでも無い
preg match :1.0013580322266E-05
ereg match :1.7166137695312E-05
preg replace :6.9141387939453E-06
ereg replace :1.4781951904297E-05
ltrim :4.0531158447266E-06
cast :3.0994415283203E-06
+=0 :3.0994415283203E-06
0696nobodyさん
2008/10/31(金) 13:38:06ID:???$v = '0430';
$num = 0;
$a = array_reverse(str_split($v));
for($i=0;isset($a[$i]);$i++)$num+=is_numeric($a[$i])?pow(10,$i)*$a[$i]:0;
echo $num;
0697nobodyさん
2008/10/31(金) 20:27:56ID:???具体的には、1日一回、データベースにあるデータを取り出してメールを送信したいんですが……
0698nobodyさん
2008/10/31(金) 20:41:57ID:???0699nobodyさん
2008/10/31(金) 21:24:23ID:???for ( ;; ) {
if ( date( 'His' ) == '000000' ) mail( ... );
}
0700nobodyさん
2008/10/31(金) 21:34:36ID:???0701nobodyさん
2008/11/01(土) 00:07:09ID:???配列展開してからのforでの処理でもかまいません
例)
たちつ>てとなに"ぬね<のはひふへほ
↓
たちつ>てとなに”ぬねのはひ<ふへほ
PHP5.25
0702nobodyさん
2008/11/01(土) 00:19:59ID:???0703nobodyさん
2008/11/01(土) 12:16:03ID:???0704nobodyさん
2008/11/01(土) 12:38:29ID:???0705nobodyさん
2008/11/01(土) 13:20:17ID:???preg_replace('/(?<=>)(.*?)(?=<)/se', 'preg_replace("/\\"/", "”", "$1")', $str);
>>703
任意に指定するのは不可能。
Location の代わりに Refresh でジャンプさせれば、ブラウザによっては Referer が空になる。
0706703
2008/11/01(土) 14:09:59ID:???回答くださり、ありがとうございます。
確認ですが、サイトBから以下のようにサイトCへリダイレクトした場合、
サイトCから見たリンク元はサイトBになるということですよね?
サイトA→サイトB→サイトC
0708705
2008/11/01(土) 18:38:19ID:???リダイレクトしても普通はリンクを踏んだページが Referer になる。
サイト B で Location を出した場合 → サイト C から見たリンク元はサイト A
サイト B で Refresh を出した場合 → 送信されない
サイト C から見たリンク元をサイト B にしたければ JavaScript を使うか、
もう一度リンクを踏んでもらうしかないと思う。
0709nobodyさん
2008/11/02(日) 09:59:21ID:???>preg_replace('/(?<=>)(.*?)(?=<)/se', 'preg_replace("/\\"/", "”", "$1")', $str)
当方もHTMLタグ内以外の"を全角かなんかに置換したくてこれ応用したいんですけど自分の場合、
$str = <a href=http://aaa.html>宇宙"人</a><a href=http://aaa.html>未来"人</a><a href=http://aaa.html>超能力"者</a>;
みたく連続で並んでいるデータに対して置換を行いたいんです。
>>705のままだとふたつめ以降の<a>タグの"が全部全角に置き換わっちゃうので試行錯誤してみたんですがうまくいきませんでした。
解決のすべはあるでしょうか?PHP 5.26です。
0711705
2008/11/02(日) 16:38:15ID:???タグの間には <> が出てこないから、単純にこれでいいかも。
アサーション使わずに > < 込みで二番目の置換に渡しても結果は同じになるし、
二番目の置換は正規表現使わない方が高速だわ。
preg_replace('/>[^<>]*</se', 'str_replace("\\"", "”", "$0")', $str);
0712nobodyさん
2008/11/02(日) 17:50:57ID:tL8xHBO4俺昔タグ内のname=""の中にさらに"があるアホデータの置換断念したことあるわ
0713nobodyさん
2008/11/02(日) 18:29:46ID:6l/MEBbz代数演算子の記述が変な気がする。
前置加算→ $i++
後置加算→ ++$i
前置減算→ $i--
後置減算→ --$i
前置と後置が逆になってるような・・・
0714nobodyさん
2008/11/02(日) 18:32:13ID:???0715nobodyさん
2008/11/02(日) 22:29:09ID:???0716nobodyさん
2008/11/03(月) 02:43:21ID:q5+iesG+PEARのHTTP_Session と PEAR_DB を使う方法でしょうか??
他にセオリー的なものがあれば教えて頂けると幸いです。
0717nobodyさん
2008/11/03(月) 03:08:13ID:???0718nobodyさん
2008/11/03(月) 17:55:37ID:???0719nobodyさん
2008/11/03(月) 17:58:50ID:???0720nobodyさん
2008/11/03(月) 23:52:41ID:???ここは素直に session_set_save_handler でいいんじゃない?
session_start を使った既存のコードを変更したくない場合はおすすめ。
マニュアルでは全く触れてないけど、書くときはロックに気を付けろ。
本来はセッションに限ったことじゃないんだけど、セッションはフレーム
ページとかで読み書きのタイミングが重なりやすいので、特に同時接続を
意識して書かないと再現しにくいバグに悩まされる。
0722nobodyさん
2008/11/05(水) 21:07:53ID:5ZwaVGRj解決方法を教えて下さい
0723nobodyさん
2008/11/05(水) 21:12:38ID:???0724nobodyさん
2008/11/05(水) 22:36:27ID:vFTAkKc1apache_getenvはブラウザ経由で取れるのはわかったんですが、
コンソールで取得できないものでしょうか?
0725nobodyさん
2008/11/05(水) 22:37:11ID:???0727nobodyさん
2008/11/05(水) 23:03:04ID:???0728nobodyさん
2008/11/05(水) 23:15:41ID:???0730nobodyさん
2008/11/05(水) 23:32:08ID:???0731724
2008/11/05(水) 23:38:38ID:???シェルから実行したときにApacheの環境変数を取得したいということです。
0733nobodyさん
2008/11/06(木) 00:41:43ID:???0737nobodyさん
2008/11/06(木) 07:26:41ID:???0738nobodyさん
2008/11/06(木) 12:35:47ID:xueniZPL$unko=30;
if($unko=30 && $tinko=50) {
$tunko=100;}
else { $youko=1;}
$tinko=50 && $unko=30 ? $tunko=100:$youko=1;
0740nobodyさん
2008/11/08(土) 10:54:06ID:???どのあたりの勉強をすればよいか、キーワードだけでも教えてもらえませんか?
0741nobodyさん
2008/11/08(土) 11:00:40ID:???リンククリックだけでローカルのファイルをアップロードさせるっつー話なら無理。
0742nobodyさん
2008/11/08(土) 11:10:06ID:???ここのスクリプトが使いたくて、書いてある通りにやってみたら
display(1); ?> … display(2); ?> … display(3); ?> … 設定ファイルがうまく書けていたら
このような結果になりました。
phpの埋め込みで失敗しているのか、私本人がよくわかってないのか、
鯖がCentos5 で Mysql のコードはutf8 だからmb_encodingとか
やってeucにしなきゃいけないのか、もう気絶しそうです。
0743nobodyさん
2008/11/08(土) 11:47:24ID:???>display(1); ?> … display(2); ?> … display(3); ?> … 設定ファイルがうまく書けていたら
>このような結果になりました。
何を言っているのか良く分からん
0745nobodyさん
2008/11/08(土) 13:12:13ID:???0746nobodyさん
2008/11/08(土) 13:48:52ID:???これも結果の一部って、写す範囲広すぎだろう。ここは説明だぞ。
> <? $vote->display(1); ?>
こんな風に書かれてるんだから、自分が short open tag を通す設定にしてるかどうかぐらい
把握してから気絶してほしい。
0747nobodyさん
2008/11/08(土) 14:50:43ID:???んでもってshort_open_tagが有効にされてないせいで全文表示されてたとw
0748nobodyさん
2008/11/08(土) 18:49:51ID:???0749nobodyさん
2008/11/08(土) 20:32:38ID:f7jJ+9vB0750nobodyさん
2008/11/08(土) 20:34:01ID:???0751nobodyさん
2008/11/08(土) 21:59:22ID:???ttp://pbs.darkgray.net/のPbsChatっていうのを設置してみたはいいんだけど携帯三キャリア対応のはずなのに何故か入室できない(名前を書く欄がない)
PCからは普通に入れるんだけど・・・
ちなみに使ってるサーバーはwww4.atpages.jp
サンプルのほうも名前欄が出なくて入室できない・・・
サイトの方にはその辺詳しく書かれてないからよくわからないんだお・・・
誰か助けてくれ・・・
0752nobodyさん
2008/11/08(土) 22:20:11ID:???1-4-2. 携帯対応
携帯用のページを用意するには、option/ディレクトリ内のkt.php,ktchat.php,ktin.php,ktout.php,ktset.phpをindex.phpと同じ場所にアップロードします。
携帯用のトップページはkt.phpとなります。
携帯用の設定はktset.phpで行います。
ってあるけどこのあたりはちゃんとやってるのか?
0753nobodyさん
2008/11/08(土) 22:40:37ID:???携帯用のページを用意するには、option/ディレクトリ内のkt.php,ktchat.php,ktin.php,ktout.php,ktset.phpをindex.phpと同じ場所にアップロードします。
↑確実にやった
携帯用のトップページはkt.phpとなります。
↑よくわからない
携帯用の設定はktset.phpで行います。
↑設定画面を開いたら以下記述のとこだけ書き換えるみたいだったけどなにを書けばいいかわかんなかったお・・・
## 設定項目 ここから↓ -------------------------------------------- #
## チャットルームからの戻り先URL(絶対パスまたは相対パスで指定)
$BURL = "./kt.php";
## 戻り先URLへのリンク文字列
$BMES = "戻る";
## ROM表示行数
$ROMSL = 5;
## 設定項目 ここまで↑ -------------------------------------------- #
0754nobodyさん
2008/11/08(土) 22:49:17ID:???0755nobodyさん
2008/11/08(土) 22:53:51ID:???0756nobodyさん
2008/11/08(土) 23:09:08ID:???がわからん時点でもうダメなんじゃないのか。
要するに携帯でアクセスするときはこっちじゃないとダメってことだろ。
0758nobodyさん
2008/11/08(土) 23:28:35ID:???トップページを二つ作らなきゃ駄目なのか?
0759740
2008/11/08(土) 23:30:32ID:???わかりにくくてすみません。
ブラウザ経由ではなく、サーバでPHPプログラムを実行しただけで、
他サーバの画像を落としたいのです。
現在、cronで自動実行したプログラムでRSSを取得していて、
そのなかの画像ファイルをローカルに保存したいです。
0760nobodyさん
2008/11/08(土) 23:31:19ID:???0761nobodyさん
2008/11/08(土) 23:32:14ID:???Warning: include(set.php) [function.include]: failed to open stream: No such file or directory in /usr/local/www/htdocs/naritya/public_html/pbschat25/kt.php on line 11
Warning: include() [function.include]: Failed opening 'set.php' for inclusion (include_path='.:/usr/local/lib/php') in /usr/local/www/htdocs/naritya/public_html/pbschat25/kt.php on line 11
0762nobodyさん
2008/11/08(土) 23:33:16ID:???0764nobodyさん
2008/11/08(土) 23:47:14ID:???ウラルでとるがな・・・まぁいいや
ファイルってなんぞ?
0768nobodyさん
2008/11/09(日) 00:55:43ID:???お前本当にphp勉強してたのか? 基本が全然ダメっぽいが。
で、「set.phpが開けねーぞボケ」ってエラーなんだがset.phpはどこに置いたのさ。
パッケージ見る限りちゃんと入ってるから正常にアップロードできてりゃ問題ないはずなんだが。
0769nobodyさん
2008/11/09(日) 12:58:05ID:???0770nobodyさん
2008/11/09(日) 14:39:19ID:???0771nobodyさん
2008/11/09(日) 14:44:33ID:???0772nobodyさん
2008/11/09(日) 15:17:02ID:???0773765
2008/11/09(日) 17:25:53ID:???質問の仕方が悪かったかもしれん。すまん。
このチャットを携帯からも使用出来るようにしたいんだが、どうすればいいのだろうか・・・というのが聞きたかっただけで。
違うスレで質問した方がいいなら移動します
0774nobodyさん
2008/11/09(日) 17:32:27ID:???SQLiteを使っていて、UNIQUEなフィールド"hoge"からある値のレコードを抽出しています。
$db = sqlite_open("hogehoge.sqlite");
$command = "SELECT * FROM articles WHERE hoge = 'ある値'";
$query = sqlite_query($db,$command);
この時、ある値のレコードが存在する場合の処理と存在しない場合の処理を分けたいのですが、
どのように条件文を設定すればよいでしょうか?
if($query){
}else{
}
で分けようとしたのですが、うまくいきませんでした・・・
0775nobodyさん
2008/11/09(日) 17:36:48ID:???だから設置がちゃんとできてりゃ>>761なんてエラー出さねーんだって。
なにを根拠にちゃんとできてるなんて言い張るんだお前は。
もういいや、とりあえずphpの話じゃなくなってるから↓行ってこい。
CGI設置について質問【Part3】
http://pc11.2ch.net/test/read.cgi/php/1176143582/
0777774
2008/11/09(日) 17:57:16ID:???なんだかよくわからないんです、
常にNULLみたいで・・・
sqlite_fetch_allをした後に判断するしかないということでしょうか?
0778nobodyさん
2008/11/09(日) 18:04:45ID:???$resultとかにしてよ$rowsとかにしてください
0779nobodyさん
2008/11/09(日) 18:07:22ID:???常にnullって値入れてないんじゃないのかw
0780778
2008/11/09(日) 18:10:22ID:???$queryに結果が入ってるのかと思ってた
じゃあ$stmtとかかなあ
0781774
2008/11/09(日) 18:39:25ID:???動作確認したつもりだったんですが、ソースにバグがありました。
修正後にechoで中身を見てみたところ、
中身があるときには、
Resource id #148
ないときには何も表示されませんでした。
これは先ほどの
if($query){
}else{
}
で処理がわけられるということでしょうか?
0782nobodyさん
2008/11/09(日) 18:44:23ID:???0783774
2008/11/09(日) 19:11:21ID:???中身があるときもないときも
Resource id #148
のようなものが入っているみたいです。
その後のsqlite_fetch_allをした後なら空の配列ができるようですが、
空の配列かどうかを調べる関数はありますでしょうか?
0784774
2008/11/09(日) 19:16:48ID:???empty関数を使って場合わけできました。
結局、sqlite_fetch_allを行った後の返り値で行いました。
みなさんありがとうございました。
0785nobodyさん
2008/11/09(日) 19:35:24ID:???0787nobodyさん
2008/11/09(日) 20:00:29ID:???0788774
2008/11/09(日) 20:05:13ID:???ごめんなさい
781では中身がないときは何も表示されないと書いたのですが、
基本的にはResource idとかいうのが入っていたみたいです。
空に見えたのはなにかのソースバグだったのかもしれません。
0789nobodyさん
2008/11/09(日) 21:23:22ID:???↓テキストボックスにキーワードを入力して、ボタンを押すとURLに飛ぶといったプログラムを
作っているのですが、、、
<?
if($val == "1")header("LOCATION:http://blogsearch.google.com/blogsearch?hl=ja&ie=UTF-8&q=$txt&btnG=ブログ検索&lr=lang_ja");
if($val == "2")header("LOCATION:http://groups.google.co.jp/");
if($val == "3")header("LOCATION:http://blogsearch.google.com/");
if($val == "4")header("LOCATION:http://jp.youtube.com/");
?>
<form action=link.php method=POST>
<input type=text name=txt>
<input type=radio name=val value=1>ブログ
<input type=radio name=val value=2>グループ
<input type=radio name=val value=3>書籍
<input type=radio name=val value=4>YouTube
<input type=submit value=送信>
</form>
http://blogsearch.google.com/blogsearch?hl=ja&ie=UTF-8&q=$txt&btnG=ブログ検索&lr=lang_ja
↑$txtと書いてますが、ここにキーワードが入るわけですが、文字化けしちゃうんです><
誰か助けて><
0790nobodyさん
2008/11/09(日) 21:28:08ID:???敬語使ってても「><」が入ると舐め腐ってるようにしか見えないのも置いといて
文字のエンコード確認しろ茄子
0791nobodyさん
2008/11/09(日) 21:32:58ID:???全然なめてなんかないんですが、
文字のエンコードですか??アップするファイルはSHIFT-JISです。
サーバはxrea使ってるのでわかりません。
0792nobodyさん
2008/11/09(日) 21:33:27ID:???これは何を意味してんの?
0793789
2008/11/09(日) 21:38:23ID:???あそっか!
$txt=mb_convert_encoding($txt, "UTF-8", "auto");
を付け加えたら治りましたwありがとうございます
0795789
2008/11/09(日) 22:01:55ID:???0796nobodyさん
2008/11/10(月) 01:14:00ID:???Windows Vista Ultimate でXAMPPを使用を試みています。
Apacheが起動できておりません。
(以下のようになってしまいます)
E:\xampp>apache_start.bat
Diese Eingabeforderung nicht waehrend des Running beenden
Bitte erst bei einem gewollten Shutdown schliessen
Please close this command only for Shutdown
Apache 2 is starting ...
(OS 10048)通常、各ソケット アドレスに対してプロトコル、ネットワーク アドレス、ま
たはポートのどれか 1 つのみを使用できます。 : make_sock: could not bind to addr
ess 0.0.0.0:443
no listening sockets available, shutting down
Unable to open logs
Apache konnte nicht gestartet werden
Apache could not be started
続行するには何かキーを押してください . . .
port443が使用されているということは分かったのですが、
何のソフトが使用しているのか判断ができません。
どうしたらポートを使っているソフトが分かりますでしょうか?
0797nobodyさん
2008/11/10(月) 01:16:54ID:???0798nobodyさん
2008/11/10(月) 01:23:35ID:???助言ありがとうございます。
了解しました。
使用しない方がいい理由を教えていただけますか?
想像しているのは
・初期構築のスキルが付かない
・Windows上に構築するよりLinux上の方が楽
等ですが正しいでしょうか?
0799nobodyさん
2008/11/10(月) 01:25:18ID:???既にwww鯖が入ってる とかでは?
0800nobodyさん
2008/11/10(月) 01:32:25ID:???>port443が使用されているということは分かったのですが、
>何のソフトが使用しているのか判断ができません。
>どうしたらポートを使っているソフトが分かりますでしょうか?
「セキュリティが強化されたwindowsファイアウォール」を見て一歩前進です。
Secure Socket トンネリング プロトコル (SSTP 受信)
が受信でport443を使用している模様です。
0801nobodyさん
2008/11/10(月) 02:09:47ID:???以下のように実装したら色がかなり落ちてしまいました。
$img = file_get_contents("他サイトのURL");
$im = imagecreatefromstring($img);
$outputResourse = fopen("保存先パス","w");
flock($outputResourse,LOCK_EX);
fwrite($outputResourse,$img);
list($width , $height) = getimagesize(保存先パス);
$dstImage = imagecreate(100,100);
imagecopyresampled($dstImage, $im, 0, 0, 0, 0, 100, 100, $width, $height);
fclose($outputResourse);
$outputResourse = fopen("保存先パス2","w");
flock($outputResourse,LOCK_EX);
imagejpeg($dstImage,"保存先パス2");
調べてみるとimagecopyresampled関数にはパレットイメージの制限(255+1色)による問題というのがあることが分かったのですが、
そのせいなのでしょうか?
だとすればどのように対処したらよいかアドバイスをいただけませんか?
0802nobodyさん
2008/11/10(月) 02:12:20ID:???http://www.google.com/search?q=php+%E3%83%AA%E3%82%B5%E3%82%A4%E3%82%BA
0803716
2008/11/11(火) 23:05:59ID:pJUkayYB>>721
レスありがとうございます。御礼遅れてすいません。
参考にさせて頂きますm(_ _)m
共用サーバ使ってるとセッションデータはデフォルトのままだと漏れることがあると聞いたんで独自に書いてDBで管理しようかと思っているんですが・・けっこう大変そうですね。
しかし共用サーバでなければデフォルトのままでもいいのかなとも思うんですがどうなんでしょう。DB管理にするとI/Oが増えるんじゃないかとも思うんですが。
0804nobodyさん
2008/11/11(火) 23:24:31ID:???DBで管理した事あるけど
DB鯖次第かな・・・
I/Oはreadに1回updateに1回あとsession破棄とGCの時に1回ずつだから
それ程気にする必要もなかったと思う
0805nobodyさん
2008/11/12(水) 00:47:38ID:???そのサーバの設定にもよるけど、
セッションファイルは apache ユーザで 600 で作られるから、
一般ユーザは apache なんかに su できないから、まあ安全。
どれくらい安全かというと、セッションIDを推測されるのと同じくらい。
負荷はサイトのアクセス数による。1時間に1万アクセスくらいならなんでもかまわない。
0806716
2008/11/12(水) 11:17:06ID:oEcWCu5N>>805
おお。レスありがとうございます。非常に参考になります。
>セッションファイルは apache ユーザで 600 で作られるから、
http://www.ibm.com/developerworks/jp/opensource/library/os-php-secure-apps/
この記事の「セッションを保護する」の欄で、
共有サーバーではセッション・ファイルを読み取るスクリプトを攻撃者が作成し、値を取得することができてしまう。
みたいなことが書いてあります。
この記事、色々と記述に問題があるようなのですが、このセッションの問題は本当にあるんじゃないかなーと。オーナーapacheでパーミッション600ならやられそうな気がしますが、どうでしょう。
>I/Oはreadに1回updateに1回あとsession破棄とGCの時に1回ずつだから
それ程気にする必要もなかったと思う
>負荷はサイトのアクセス数による。1時間に1万アクセスくらいならなんでもかまわない。
ウェブ製作会社でバイトしてるんですが、DBの負荷で一番高いのがセッションのテーブルのようなのです。
やはりPV増えるに連れてボトルネックとなりそうですね・・
0807nobodyさん
2008/11/12(水) 13:18:13ID:???攻撃するにもファイル名を総当たりしなきゃいけないので、
それは外部からのセッションIDの総当たりとあんまり変わらないと思われ。
逆にセッションファイル内を読まれても安全に作っておくべき。
パスワードを平文で保存しないとか。
$_SESSION['passwd'] = 'passwod'; // ×
$_SESSION['passwd'] = md5( 'passwod' ); // ○
セッション管理なんてインデックス張ってればDB処理でもいちばん軽い部類の処理だから、
その設計が悪いと思われ。
0808nobodyさん
2008/11/12(水) 14:02:54ID:???0809nobodyさん
2008/11/12(水) 14:06:36ID:???0810nobodyさん
2008/11/12(水) 14:18:19ID:oEcWCu5N>攻撃するにもファイル名を総当たりしなきゃいけないので、
む、そうなんですか。
攻撃者が作るスクリプトってJavaScript??って思ったんですがどういうスクリプトなんでしょう。
JavaScriptはあまり分からないですし、何かサーバ側のファイルの一覧を取得できてしまうようなスクリプトが作れるのかなと思ってました。
でもよくよく考えたら、そんなことできたらセッション以外の点でも大問題ですね汗
0811nobodyさん
2008/11/12(水) 14:29:42ID:???セッションファイルの安全性というのは文字列の複雑さだけで保たれてます。例えば、
http://exsample.com/?PHPSESSID=1234
だと駄目だけど、
http://exsample.com/?PHPSESSID=99bcf96055818a3b68faa0f348740e84
ならまあ許容できるよね。ぐらい。んで、セッションファイルも
drwxrwx--- 2 root apache 131072 2008-11-12 14:26 .
-rw------- 1 apache apache 53 2008-11-09 01:28 sess_vptubrcd9dr9bjc7o0lbunep56
なんて保存されているので、root か apache ユーザに su できなければ、
セッションファイルのファイル名もわからないのです。
なので総当たりするしかないのですが、その総当たりするスクリプトのことだと思います。
0812nobodyさん
2008/11/12(水) 15:08:08ID:???sessionファイルが全て同一ディレクトリに保存されている場合
phpからアクセス可能なんじゃないの?
ini_get等で保存ディレクトリ取得
↓
ディレクトリ内スキャン
↓
ファイルを読み取り
全てPHPで組めばアクセスできると思うが・・・
0813nobodyさん
2008/11/12(水) 15:37:32ID:???0814nobodyさん
2008/11/12(水) 22:36:42ID:???そして俺を一人前のPHPerに育て上げるのだ。
わかったな?
〇〇嫁!は禁止。
キチガイ等と言うやつは負け組
↓では開始
0815nobodyさん
2008/11/12(水) 22:45:09ID:???0816nobodyさん
2008/11/12(水) 22:50:58ID:???0819nobodyさん
2008/11/13(木) 08:15:49ID:???mbstring.encoding_translation = On
になってる PHP 環境があります。
php.ini も .htaccess も変更出来ない場合
他に Off にする方法はありますか。
0820nobodyさん
2008/11/13(木) 08:18:54ID:???0821nobodyさん
2008/11/13(木) 09:21:03ID:???0822nobodyさん
2008/11/13(木) 09:25:26ID:???受け取ったデータをまた変換し直してやるしかないのかな。
0823nobodyさん
2008/11/13(木) 11:32:40ID:???unixtojd関数を使用したかったので、--enable-calenderをつけてphpを再インストールし
phpinfoで--enable-calenderが表示されていることを確認したのですが
いまだCall to undefined function: unixtojd()とエラーが表示されたままになってしまいます。
この関数を利用するのに、別に必要なものがあるのでしょうか?
環境はcentos5.0、apache2.0、PHP4.4.8で、会社のローカル開発用サーバで運用しています。
0824nobodyさん
2008/11/13(木) 19:04:30ID:lI0vnur70825nobodyさん
2008/11/13(木) 21:47:24ID:+wSFnCZL下記に書いたコードを上記環境で動かすと10KB-20KB程度のファイルは正常に
アップロードできるのですが、それ以上となるとエラーとなってしまいます。
php.iniのアップロードサイズなどは問題ないようなのですが。
原因がわかりません。
なんででしょう?
<html>
<head></head>
<body><?php
$uploaddir = '/tmp/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
echo '<pre>';
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "File is valid, and was successfully uploaded.\n";
} else {
echo "Possible file upload attack!\n";
}
echo 'Here is some more debugging info:';
print_r($_FILES);
print "</pre>";
?>
<form enctype="multipart/form-data" action="<?php print($_SERVER['PHP_SELF']); ?>" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
Send this file: <input name="userfile" type="file" />
<input type="submit" value="Send File" />
</form>
</body>
</html>
0827nobodyさん
2008/11/13(木) 22:06:05ID:Z/0actP/登録してある複数のメアドに一斉にその内容の
メールするフォームのCGIを紹介してください
できればメアド登録もWEB上で行いたいのですが
0829nobodyさん
2008/11/14(金) 00:39:38ID:???0830nobodyさん
2008/11/14(金) 12:41:20ID:???自分で
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
って指定してるからだろ
このvalueはbyteだPHPはこれもチェックしたはず
0831nobodyさん
2008/11/14(金) 13:06:06ID:???∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ・∀・)< PHPの時代は終わった。今から勉強しても使えません。
( 建前 ) \_______________
| | |
__(__)_)______________
( _)_)
| | |
( 本音 ) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( 。A。)< 新参の商売敵は潰しておくか
∨ ̄∨ \_______________
0832nobodyさん
2008/11/14(金) 15:44:43ID:Xq4mZFEaTOP画面で「こうげき」「まほう」のボタンがあり、敵のHPが100あります。
それを、こうげきした場合はランダムに「1〜10」の間で敵のHPを減らす。
まほうなら「20〜30」で減らす様にして、繰り返す。
敵のHPがゼロになったら、結果の別画面へと言う物をPHPで制作しているのですが、
「こうげき」したら⇒HPが「1〜10」減って表示が100から引かれる処理がイマイチわかりません。
rand自体の動きはわかるのですが、それを応用して上記の様な処理の仕方がわかりません。
お願いします。
0833nobodyさん
2008/11/14(金) 16:01:48ID:???Cookieとかセッションを使うと良いよ
0834nobodyさん
2008/11/14(金) 17:31:37ID:Xq4mZFEaありがとうございます。
色々と調べて、試してみます!
0835nobodyさん
2008/11/14(金) 22:45:07ID:???この@ってどう言う意味があるんでしょ?
0836nobodyさん
2008/11/14(金) 22:50:48ID:???0837nobodyさん
2008/11/15(土) 04:48:34ID:INPBoIvZ<?php phpinfo(); ?>を行っても文字だけがlocalhostに出るだけで
phpがうまく実行されません
一通り見たのですが間違ってないような感じでした
また、index.phpでのファイルはなんともないのですが
test.phpを見ようとするとファイルのダウンロードになってしまいます
このような状況のときapacheの設定が悪いのか phpの設定が悪いのかどっちなのでしょうか?
apacheは2.0.63でphpは5.2.6です
よろしくお願いします
0838nobodyさん
2008/11/15(土) 04:55:04ID:???0839837
2008/11/15(土) 14:23:50ID:INPBoIvZレスサンクス
AddHandlerがどのような状態になっていればいいんでしょうか?
ttp://jp.php.net/manual/ja/configuration.php
を見たらaddoverride allにすればいいと書いてあったのでした結果
次はlocalhostの画面に何も写らなくなりました
PHPと認識していないのでしょうか?
0841837
2008/11/15(土) 14:49:04ID:INPBoIvZそのほかにどういう知識が必要なんですか?
まだ初めたばっかです
0842nobodyさん
2008/11/15(土) 17:09:43ID:???まさか「どうやって勉強すればいいですか?」とか聞くまいな
0843nobodyさん
2008/11/15(土) 17:15:09ID:k8oNRHMFif(!$img_tmp) {
echo $this->error("ファイルを入力してください");
echo $this->html_foot();
exit;
} elseif(($img_size/1024) > $this->max_file) {
echo $this->error("ファイルサイズが大きすぎます");
echo $this->html_foot();
exit;
error〜は自分で定義するエラーだと分かるんですが
こんなソースがあったんですけど$this->の部分がよくわかりません。
これってなんでしょうか?
0844nobodyさん
2008/11/15(土) 17:17:11ID:k8oNRHMF0845nobodyさん
2008/11/15(土) 17:25:43ID:???$this->っていうのはクラス内でローカルメンバを扱いたいときに遣う
0846nobodyさん
2008/11/15(土) 17:50:25ID:k8oNRHMFクラス内でローカル変数とかをグローバル変数と区別するための決まり事ってことでOKでしょうか?
0847nobodyさん
2008/11/15(土) 18:51:39ID:???0848nobodyさん
2008/11/15(土) 19:14:34ID:???オブジェクト指向プログラミングの基礎。phpではPHP5から本格的に導入された。
現代的なプログラミングをする上での必須知識だから、早めに習得したほうがいい。
class Person{
private $name;
function sayName(){
echo 'My name is ' . $this->name . "\n";
}
function setName($var){
$this->name = $var;
}
}
$a = new Person();
$b = new Person();
$a->setName('Andrew');
$b->setName('Brian');
$a->sayName(); // My name is Andrew
$b->sayName(); //My name is Brian
$a->getName()を呼ぶ時、getName()内の$thisは$aを指す。$b->getName()の時は$bを指す。
0849nobodyさん
2008/11/15(土) 19:17:21ID:???0850nobodyさん
2008/11/15(土) 19:33:28ID:???って感じでサンプル書いたら「getName()の最後のreturnってなんですか><」とか言われる可能性があるだろダラズ。
0851nobodyさん
2008/11/15(土) 21:03:33ID:k8oNRHMFサンプルまでつけていただいてありがとうございます。
オブジェクト指向の理解がちゃんとできてないので何となくですが、
1つのクラスから複数のインスタンスを生成した際にごっちゃにならないために・・・・??
理解力なくてすみませんorz
0852nobodyさん
2008/11/15(土) 21:14:43ID:???0853845
2008/11/15(土) 23:46:02ID:???ローカルメンバとか言わないんだな・・
0854nobodyさん
2008/11/16(日) 06:07:17ID:QRvDYE1Cこれを配列$csv_arrに置き換えたいと思っています。
$csv = <<EOF
2008-11-13, りんご, 10
2008-11-14, みかん, 20
2008-11-15, めろん, 30
EOF;
$csv_arr = array(
array("2008-11-13", "りんご", "10"),
array("2008-11-14", "みかん", "20"),
array("2008-11-15", "めろん", "30")
);
どうぞ宜しくお願いします。
0855nobodyさん
2008/11/16(日) 06:48:23ID:???$csv_arr[] = explode(",", $val);
}
0856nobodyさん
2008/11/16(日) 12:30:43ID:???0857854
2008/11/16(日) 13:00:43ID:QRvDYE1Cそのものずばりの回答ありがとうございます!
>>856
質問が言葉足らずで誤解させてしまい申し訳ないです。
今回の私の質問は、csvファイルからの読み込みではなく、
変数$csvにCSV形式の文字列が入っているという意味で
質問させていただきました。
ただ、ご回答いただいたコードは、ネットで探すサンプルよりも
ワンライナーでとても簡潔にまとめられていて参考になります。
ありがとうございます!
0858nobodyさん
2008/11/16(日) 17:35:39ID:???$csvに入る内容にもよるが
データに,とか\r\nとか”があった場合の挙動って考えなくて良いの?
厳密なCSV定義からのパースだとしたら今出てる物では不十分
因みに厳密なCSV定義=RFC4180ね
0859854
2008/11/16(日) 23:14:23ID:QRvDYE1C特定のWebページを取得してCSV形式で整形したものが、今回の$csvと
なるので、今回については特殊な文字列が含まれることはありません。
ご指摘された場合も想定しないと予期せぬ不具合につながりますね。
アドバイスありがとうございます。
0860nobodyさん
2008/11/16(日) 23:18:21ID:???0861nobodyさん
2008/11/17(月) 09:37:37ID:KhW4/uRqif(1000==(1100/1.1)){echo "ok";}
これでは判定は真にならずokと表示されません
何故ですか
ちなみに
if(1000==(900/0.9)){echo "ok";}
これだと真と判断されてokと表示されます
0862nobodyさん
2008/11/17(月) 10:36:30ID:???仕様
http://jp.php.net/float
0863nobodyさん
2008/11/17(月) 11:01:28ID:KhW4/uRqありがとう御座います
例えばリンク先の例に挙げられているfloor((0.1+0.7)*10) の場合
echo floor((0.1+0.7)*10);
とすると結果は7と表示され、
想定される結果である8とは違う事から
リンク先に書いてあるように計算精度に問題がある事が分かりますが
echo 1100/1.1;
とすると1000と表示され、想定された通りの計算結果になります
この値はあてにならないということでしょうか
0864nobodyさん
2008/11/17(月) 11:22:13ID:???0865nobodyさん
2008/11/17(月) 11:25:42ID:???0867nobodyさん
2008/11/17(月) 12:40:07ID:KhW4/uRqありがとうございます
判定はbcdivを使う事で判定する事が出来るようになりました
0868nobodyさん
2008/11/17(月) 12:48:40ID:???Windows以外で任意精度数学関数を使う場合は
--enable-bcmathつけてコンパイルしてある必要があるので気をつけて
0869nobodyさん
2008/11/17(月) 12:57:48ID:???0870nobodyさん
2008/11/17(月) 15:08:00ID:???floor((0.1+0.7)*10);
の例にしても、echo 0,1+0.7なら0.8と表示されるよ。
0871nobodyさん
2008/11/17(月) 15:11:02ID:???0872nobodyさん
2008/11/17(月) 15:48:18ID:???0873sage
2008/11/17(月) 16:44:22ID:fS1MxP+5XAMPPのDBにアクセスしてるPHPを読んでてわからなかった事があるのですが、
PHPのはじめの所が「<?」や「<?php」ではなく、
「<?=」となっていて、
<?=$TEXT?>
という感じで変数を表示してたところがありました。
これはechoと何が違うのでしょうか?
これの様に左辺が無い場合はどういう動作になるのでしょうか・・・
よろしくお願いします。
0874nobodyさん
2008/11/17(月) 16:54:17ID:???http://jp.php.net/echo
echo() には、開始タグの直後に等号を付ける短縮構文もあります。 この短縮構文は、設定オプションshort_open_tag が有効な場合のみ使用可能です。
0876nobodyさん
2008/11/17(月) 19:55:05ID:G7bu0AqYコノスレイイ。
ロムってたけど。
\(^o^)/イイ。
0877nobodyさん
2008/11/17(月) 19:55:43ID:???0878nobodyさん
2008/11/18(火) 08:21:36ID:???<?php
$word = '漢字';
$word = mb_convert_encoding($word, "UTF-8");
$page =$word.'.html';
$str = mb_convert_encoding($page, "UTF-8");
$fp = fopen($str,"w");
?>
0879nobodyさん
2008/11/18(火) 08:31:36ID:???0881nobodyさん
2008/11/18(火) 08:50:08ID:???0882nobodyさん
2008/11/18(火) 08:54:43ID:???$str = mb_convert_encoding($page,"UTF-8","auto");
autoでもSJISでもできないんです。
0883nobodyさん
2008/11/18(火) 09:04:13ID:???php.iniの設定とソースの文字コード、ブラウザの文字コードによっても変わる
detectもしつつ色々試行錯誤してみ
0885nobodyさん
2008/11/18(火) 09:08:54ID:???<?php
$word = '漢字';
$word = mb_convert_encoding($word,"UTF-8","SJIS");
$page =$word.'.html';
$str = mb_convert_encoding($page,"UTF-8","SJIS");
echo mb_detect_encoding($str);
print '<BR>';
echo mb_detect_encoding($page);
print '<BR>';
echo mb_detect_encoding($word);
$fp = fopen($str,"w");
?>
結果は
UTF-8
UTF-8
UTF-8
なんですが。
0889nobodyさん
2008/11/18(火) 09:44:19ID:???環境は?OSとか
0891nobodyさん
2008/11/18(火) 10:06:07ID:???使わない方がいいな
0892nobodyさん
2008/11/18(火) 12:40:23ID:???0895nobodyさん
2008/11/18(火) 13:13:57ID:???0896nobodyさん
2008/11/18(火) 14:27:45ID:VeQnY2gNを作ってます。チェックを入れるとsession_set_cookie_paramsを
1年に設定してるんですが一度ブラウザを閉じるとセッションも切れてしまいます・・・
下に簡単なソースを載せますので
すいませんがアドバイスよろしくお願いします。
login1.php
<?
session_set_cookie_params(365*24*3600);
session_start();
$_SESSION["name"] = "こんにちは";
echo "セット";
echo "<a href=\"login2.php\">移動</a>";
?>
login2.php
<?
session_start();
echo $_SESSION["name"];
?>
0897nobodyさん
2008/11/18(火) 16:17:38ID:???firefox?
0898896
2008/11/18(火) 16:33:43ID:???返答ありがとうございます。
環境はIE7、Firefoxです。
最初にlogin1.phpにアクセスし
セッションを設定して移動をクリックすると
login2.php にもセッションが引き継がれるんですが
その後ブラウザを閉じ次にlogin2.phpにダイレクトにアクセスすると
$_SESSION["name"] = "こんにちは";が表示されず
真っ白になります・・・
0899nobodyさん
2008/11/18(火) 17:09:56ID:???クッキーの有効期限はsetcookieで設定した方がいいぜ
session_startする前に実は開始してて、有効期限の上書きが出来ないことがあるから
0900nobodyさん
2008/11/18(火) 17:36:13ID:s+xeZpDT変数$strをintにキャストしたいのです。
ご教授お願いします。
$str = "ST012300";
$str = (int)$str;
$num = 100;
$num += $str;
echo $num; ←ここで出力
0901nobodyさん
2008/11/18(火) 17:57:13ID:???0902nobodyさん
2008/11/18(火) 18:34:52ID:???適当に書いたがこんな感じか?
function toInt($string) {
$temp = "";
for ($i = 0; $i < strlen($string); $i++) {
if (preg_match("/[0-9]/", $string[$i])) {
$temp .= $string[$i];
}
}
return (int)$temp;
}
0904nobodyさん
2008/11/18(火) 18:53:16ID:???1文字ずつ分解するのが無難なやり方でないかと
preg_match_allが俺の環境じゃ使えないから使わなかっただけというのもあるけど
preg_matchだけでくり抜ける?
例に出てるST012300なら簡単だけど
o89WE342hEU44とか2バイト文字が入ってきたりすると
俺のレベルじゃ1回の正規表現で抜き取れない
0905896
2008/11/18(火) 18:54:44ID:???session_startする前に開始している時もあるんですね。
アドバイスいただいたやり方で一度やってみます。
ありがとうございました!
0906nobodyさん
2008/11/18(火) 18:54:48ID:???飛び飛びの数字くっつけて1つの数字にすることに意味があるのか?
0907nobodyさん
2008/11/18(火) 18:56:46ID:???あと引数に配列渡された場合どうすんのとか
0908nobodyさん
2008/11/18(火) 19:15:25ID:???is_numericでもいいけどpreg_matchでもいいじゃん
>>903の突っ込みはpreg_match使うなら1回で抜けってことではないの?
その方法が思いつかなかったから聞いてるんだけども
>あと引数に配列渡された場合どうすんのとか
それは配列用のを別に作るべきでしょ
PHPじゃオーバロードできないけど
0909nobodyさん
2008/11/18(火) 19:20:22ID:???0910nobodyさん
2008/11/18(火) 19:26:49ID:???逆に言うと正規表現がわからないと混乱するだけ。
0911nobodyさん
2008/11/18(火) 19:34:38ID:???普段よく使うから使っただけだよ
is_numericなんて使ったことなかったし
まぁ気になったんで
>>902で書いた関数で文字列に適当なwebサイトをfile_get_contentsしたものを使って
is_numericとpreg_matchの比較ベンチとってみたけど
is_numericのほうが早いね
速度面では特に利点はないみたいだ
ただ>>910もいってる通りうまく使える人なら1行でスッキリと1回で抜けると思う
オーダなんかは1文字ずつ比較するのとたぶん変わらないと思うけど
0912nobodyさん
2008/11/18(火) 20:47:26ID:???という前提があるなら、漏れなら、
ereg( '(\d+)', $str, $regs );
echo $regs[1];
と書く。
0913nobodyさん
2008/11/18(火) 20:52:15ID:???文頭がアルファベットか?文字数が8文字か?数字が0〜3までか?
数値が連続してるなんて前提ねーよw
0915nobodyさん
2008/11/18(火) 20:56:46ID:???0916nobodyさん
2008/11/18(火) 20:57:31ID:???0917nobodyさん
2008/11/18(火) 21:48:50ID:/cO8JIvuPHPからDB2に接続するにはどうしたらいんですか?
MySQLからDB2に移行したいんです!何か特別な設定とかいります?
カタログ接続とかの意味がよく分からないです^^;
0918nobodyさん
2008/11/18(火) 21:57:01ID:???0922nobodyさん
2008/11/18(火) 23:49:32ID:???$file ='test.html';
$fp = fopen($file,"w");
$str = array('aaa\n','bbb\n');
file_put_contents($file, $str );
fclose($fp);
?>
複数行の書き込みをしたいのですが、これだとできません。
教えて下さい。
0923nobodyさん
2008/11/18(火) 23:51:48ID:???0924nobodyさん
2008/11/18(火) 23:54:15ID:???0926nobodyさん
2008/11/19(水) 01:53:56ID:???$pass1 = $_POST["pass"];
if($pass1=="●●"){
$sql = "delete from object where id = $id";
mysql_query($sql);
echo "削除されました";
exit;
}
●●の部分をMySQLに格納しているパスワードに
したい場合はどうすればいいのでしょうか?
MySQL側の質問になってしまうかもしれませんがお願いします。
0927nobodyさん
2008/11/19(水) 02:16:00ID:???"のエスケープをせずに済む方法ってありますか?
大量のhtmlタグをprintするのが大変なのでそのような関数があれば
教えていただきたいです。
0929nobodyさん
2008/11/19(水) 02:22:59ID:???0933nobodyさん
2008/11/19(水) 09:43:10ID:???ご存じなかたがいらっしゃったら教えていただけると幸いです
自作のスクリプトをばらまこうと思ってるのですが
ファイル構成やパーミッションまわりが複雑だったりするので
インストールウィザードをつけたいと考えてます
自己解凍形式みたいに
フォルダやパーミッションや簡単な設定項目(置換)を指定すると
そのとおりに設定して展開してくれるようなスクリプトはありますでしょうか?
なければ作ろうかと思うのですが
需要ありますでしょうか?
一通り探したつもりですが見つかりませんでした
よろしくお願いします
0934nobodyさん
2008/11/19(水) 10:15:16ID:???パーミッションってことはOSX含めたUnix系OSだよね?
RPMパッケージでも作ればいいんじゃない?
というか展開したファイルのパーミッションを変えるスクリプト1つ置くだけでいいのでは?
複雑な設定項目とかはインストール後に管理スクリプトからやればいいだけだし
そもそもサーバでそんなもの展開してインストールするようなのは自鯖か専鯖持ちぐらいでしょ
ターゲットの範囲が狭すぎてそのためにわざわざ凝った作り考えるのもあほくさいわ
0935933
2008/11/19(水) 10:58:08ID:???レスありがとうございます
移動中の携帯からの投稿だったため情報が足りませんでした
ここでいうスクリプトはPHPのスクリプトで
ターゲットはLinux+レン鯖を考えています
処理の流れ的には
1.自己解凍PHPにWEB経由でアクセス
2.DIRパスやそのスクリプトの起動に最低限必要な定数を設定
3.指定DIRに展開
4.自分自身を削除(オプション)+そのスクリプトの設定画面へリダイレクト(あれば)
単一ファイルにまとめたかったのは
・配布しやすそう?
・WEB公開DIRに必要ないファイル(incとか)を置きたくない
(必要ないファイルの置き場所は自由なため、公開DIRからの相対パス指定は難しい)
確かにインストールスクリプトを一個用意しておけばいい気もしますね・・・
0936nobodyさん
2008/11/19(水) 13:10:11ID:???作ったあとに需要あれば使って下さいの方がいいと思うよ。
ぞれより自己解凍PHPってのがなんなのか気になる
0937nobodyさん
2008/11/19(水) 13:22:48ID:???if($msg)ってやったらfalseでした。
それとも$msgってなまえの変数は有っても中身がない場合はfalse?
0938nobodyさん
2008/11/19(水) 13:27:45ID:???0939933
2008/11/19(水) 14:03:57ID:???確かに
作ってみます
ありがとうございます
自己解凍PHPとか言ってますが
単純に自身のPHPにファイルやらディレクトリ構成を埋め込んでるだけです
アクセスすると入力域が現れて・・・てな感じです
0940nobodyさん
2008/11/19(水) 14:29:26ID:???> アクセスすると入力域が現れて・・・てな感じです
それが気になる。ウェブ上からインストールできるってこと?
0941nobodyさん
2008/11/19(水) 14:53:34ID:???なんで初心者なのに用語を自作するのか
0942nobodyさん
2008/11/19(水) 15:21:15ID:???以外の物を調べるにはどうしたらいいですか?
具体的にはJIS補助漢字・第三・第四水準漢字や台湾、中国語などには
エラーと表示させたいです。
0943nobodyさん
2008/11/19(水) 15:29:40ID:???ttp://euc.jp/i18n/charcode.ja.html
どの文字コードを使うかによって変わると思うけど
こういったとこで範囲しらべて正規表現でチェックするといいかも?
ここも参考
ttp://www.phppro.jp/phptips/archives/vol9/1
0945933
2008/11/19(水) 16:07:24ID:???はい、そのとおりです
適当な公開ディレクトリにファイルを一個ぽいっとおいて
アクセスしてWEB上でパスの設定などをしてsubmitすると
設定に基づいて展開したりシンボリックリンクを作ったり文字コード変えたり設定情報を書き込んだりします
>>941
申し訳ない
PHPで自己解凍みたいのできたらいいなイメージから思いついたので・・・
今動いているのは圧縮してないですが、あとでgzipをかけたいと考えています
低機能なインストールスクリプトと思ってください
最低限の設定を行ってさらに設定が必要なら(データベース作るとか)それぞれの設定WEBにリダイレクトします
既存のインストールスクリプトと違うところは
・ファイルひとつだけでOK
・複数台のサーバ配布に対応(scpばらまき)・・・予定(作成中)
結局のところ展開してアップすればええやんって気もしてきましたorz
0946933
2008/11/19(水) 16:29:07ID:???ちょっと機能は違いますがコンセプトは似ているような気がします
ttp://labs.cybozu.co.jp/blog/kazuho/archives/2008/11/post_3.php
0948nobodyさん
2008/11/20(木) 03:17:06ID:???mb_convert_encodingを使う方法ってありますか?
0949nobodyさん
2008/11/20(木) 03:17:23ID:???0951nobodyさん
2008/11/20(木) 04:28:16ID:???取得したいのですが、
time()は引数がないのでどうしたらいいですか?
0952nobodyさん
2008/11/20(木) 04:31:17ID:???filemtimeかstat
0954nobodyさん
2008/11/20(木) 05:24:16ID:???削除するにはどうしたらいいのでしょうか。
0955nobodyさん
2008/11/20(木) 07:43:03ID:???0956nobodyさん
2008/11/20(木) 07:54:07ID:???0957nobodyさん
2008/11/20(木) 14:54:48ID:???sample(9)
sample(241)
sample(3234)
などの複数行のファイルでカッコ内の数字が一ケタの場合
その行を削除したいのですが、
$search="/.+\([0-9]\)/";
$log = eregi_replace($search,"",$log);
これだとできません。教えて下さい。
0958nobodyさん
2008/11/20(木) 15:21:21ID:???こうかな
0960nobodyさん
2008/11/20(木) 17:16:11ID:???0961nobodyさん
2008/11/20(木) 17:17:34ID:???0963nobodyさん
2008/11/21(金) 04:12:35ID:???$logArray = explode("\n",$log);
for($i=0;$i<=count($logArray);$i++)
{
$dat[$i] = substr($logArray[$i],0,10);
print $dat[$i].'<BR>';
}
結果はちゃんとprintされているんですが、
Notice: Undefined offset: 80 C:\Program Files(略) on line 24
っていうのがでるんです。
24行目は$dat[$i] = substr($logArray[$i],0,10);です
0964nobodyさん
2008/11/21(金) 05:54:07ID:???↓
$logArray = @explode("\n",$log);
0965nobodyさん
2008/11/21(金) 07:11:18ID:???ループ条件はこうちゃいますのん?
0966nobodyさん
2008/11/21(金) 07:17:08ID:???大域(forの外)で$datは宣言されてるの?
$dat = array();
あとループ条件は>>965
ちなみにエラーが出たラインの1行前(つまり23行目)に原因がある場合があるから
付近のソースを出すのが望ましい
0967nobodyさん
2008/11/21(金) 07:19:59ID:???print $dat[$i].'<BR>';
というかfor文の外で$dat使わないなら
echo substr($logArray[$i], 0, 10);
でいいのでは?
それとも他の部分でも使ってるのかな?
0973nobodyさん
2008/11/21(金) 09:24:31ID:???うち規制中だった
0975nobodyさん
2008/11/21(金) 19:35:00ID:???0976nobodyさん
2008/11/21(金) 22:09:32ID:???ウチが使ってるレンタルサーバーが
>CGI版をラッパーを使用し
>所有者の権限にて動作させる
>一部の動作で、モジュール版と
>挙動が違う可能性があります。
っていう方式なんだが、これってどういうこと?
0977nobodyさん
2008/11/21(金) 23:07:45ID:???http://www.google.com/search?num=50&hl=ja&safe=off&q=PHP+CGI+%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB+%E9%81%95%E3%81%84&lr=lang_ja
0978nobodyさん
2008/11/22(土) 01:09:16ID:3EI7zmLa以前からHTMLでサイトを作っていたのですが、どうしても静的なものしかできずに
ただ見てもらうだけのサイトしか作れません。
なので、サイト訪問者にデータを追加してもらったりデータの閲覧ができたりと
もっと双方向での情報交換ができるサイトを作りたいと思ってます。
なのでPHPを勉強しようと思っているのですが、今私が目指しているところは
PHPを勉強するという道で間違ってはいないでしょうか?
そして、PHPを勉強するにあたって、わかりやすいお勧めの本やサイトがあったら教えてください。
知識としてはHTMLで見せるだけの簡単なサイトを作れる程度です。
どこから勉強すればいいのかわからないのですが、PHPに入るときに読む本、
PHPを実用的に使えるような本があったら教えてください。
お詳しい先生方、ぜひよろしくお願いいたします。
0979nobodyさん
2008/11/22(土) 01:16:08ID:???先生でも何でもないけど、PHPマニュアルに勝る良書は無いかと。
http://www.php.net/manual/ja/
PHPは「いかに楽してウェブシステムを作るか?」っていう言語だと俺は思う。
それで良いなら選べば良いしそれが嫌なら他の言語を選ぶといいかなと。
勉強については、まずHTMLの<form>タグの概念が分かってないならそれからまず勉強。
あとは自分が作りたいと思うもの(例えば掲示板)のPHPスクリプトソースをネットから拾ってきて、
それを少し改造してみるとかね。
PHPって良い意味でも悪い意味でも適当な言語なので、多分何とかなると思う。
0980nobodyさん
2008/11/22(土) 01:22:31ID:???目的のものを達成するPHPのフリーソフトにPukiWikiやXOOPSなんていうものがあったりする
自分で作るより手っ取り早いのはそれらをインストールして利用すること
PHPは公式マニュアルが充実しているのでそれを読むのがお勧め
http://jp.php.net/manual/ja/index.php
また入門本として
PHP4徹底攻略(通称:赤マンモス本)がpdfで無料公開されている
http://www.sra.co.jp/people/t-ishii/php_new/php4_new.html
現時点のPHPの最新版はPHP5でもうじき6が出るので
少し情報は古いがどんなものかをつかむには最適な本なので
無料ということもあるのでちょっとかじる程度に読んでみてはいかがだろうか?
0983nobodyさん
2008/11/22(土) 02:03:21ID:???http://www.google.co.jp/trends?q=php%2Cruby%2Cperl%2Cpython
phpを選択したことは正解です。
0984nobodyさん
2008/11/22(土) 02:16:26ID:???いきなり実行環境を作るより
プログラミングの基礎と概念を理解する方が先だろう。
何でもかんでも手を動かしてやりゃいいってもんじゃない
0985nobodyさん
2008/11/22(土) 02:20:06ID:lJIGiW+20987nobodyさん
2008/11/22(土) 02:31:54ID:???みたいなもんばっかだろう
0988nobodyさん
2008/11/22(土) 03:24:41ID:???PHPを使えばいい場合勉強するにあたってお勧めの本やサイトを教えてくれと聞いてるわけだ
0989nobodyさん
2008/11/22(土) 03:25:53ID:???0990nobodyさん
2008/11/22(土) 03:54:53ID:???0991nobodyさん
2008/11/22(土) 04:04:23ID:???0993nobodyさん
2008/11/22(土) 05:55:15ID:???0994nobodyさん
2008/11/22(土) 06:36:46ID:???http://pc11.2ch.net/test/read.cgi/php/1227303362/
0995nobodyさん
2008/11/22(土) 07:04:30ID:???その中に関数を入れることってできますか?
test.phpの中身が
<?php
class test{
private $_text;
function test()
{
$_text = 'abc';
include 'aaa.php';
aaa();
}
}
?>
で
aaa.phpの中身が
<?php
function aaa()
{
print $this->_text;
}
?>
0996nobodyさん
2008/11/22(土) 08:46:33ID:???マニュアルも読まない神経が(ry
0997nobodyさん
2008/11/22(土) 08:56:44ID:???aaa.phpの中身を
<?php
print $this->_text;
?>
にすれば実行できるので
どこかが間違っているのか、元々できないのかわからなかったんです。
0998nobodyさん
2008/11/22(土) 09:01:58ID:???1000nobodyさん
2008/11/22(土) 10:52:28ID:???10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。