【PHP】ID出さなくても質問OKなスレ【初心者歓迎】
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん
2009/02/03(火) 01:09:36ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
0856nobodyさん
2009/08/26(水) 00:56:09ID:???0857nobodyさん
2009/08/26(水) 05:55:55ID:???やりたいこと: 自分のホームページ上からヤフオクへログイン。
現状: mixiへのログインは出来たのですが、ヤフオクが出来ずに躓いてます。
mixiへログインすると正常にcookieも書き出してくれるのですが、
ヤフオクへアクセスを試みると Empty reply from server というエラーを
吐いてしまいます。もちろんcookieも書き出してくれません。
何かアドバイスを頂けると非常に助かります。m(__)m
(長くなるのでスクリプトは次レスで。)
0858857
2009/08/26(水) 05:57:44ID:???スクリプト:
<?php
// POSTデータ準備 hiddenで送ってるデータが非常に多いので視認性のため一部割愛
$post_data[".u"] = "2c2vi55595i07";
$post_data[".v"] = "0";
$post_data[".challenge"] = "bwDQLWdW58F9ZAsaWVZwpkkumuzc";
$post_data["hasMsgr"] = "0";
$post_data[".chkP"] = "Y";
$post_data[".done"] = "http://auctions.yahoo.co.jp/jp";
$post_data[".protoctl"] = "" ;
$post_data["login"] = "MYID";
$post_data["passwd"] = "MYPASSWORD";
$post_data[".persistent"] = "y" ;
0859857
2009/08/26(水) 05:59:10ID:???$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://login.yahoo.co.jp/config/login?");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
$result = curl_exec($ch);
if ($result === false) {
// エラーが発生した場合の処理(現在ここでエラーを吐きだして終了する。)
print curl_error($ch);
exit();
}
// ログインが成功してたらトップページへ接続
curl_setopt($ch, CURLOPT_URL, "http://auctions.yahoo.co.jp/jp/");
$result = curl_exec($ch);
curl_close($ch);
//取得結果を出力する。
echo $result;
?>
以上です。
0860nobodyさん
2009/08/26(水) 06:10:12ID:???0862nobodyさん
2009/08/27(木) 16:53:40ID:pMvyOdS/$_SERVERや$_GETに入ってますか?
$_SERVER['PHP_SELF']や$_SERVER['QUERY_STRING']では取得できなかったのですが
他に何かあれば教えてください;;
0863nobodyさん
2009/08/27(木) 16:56:20ID:???0864nobodyさん
2009/08/27(木) 16:58:32ID:lv8pbWG8REQUEST_URIとか
つか$_SERVERとか$_GETとか定義されてるもの全部確認してから質問しろよ
http://www.php.net/manual/ja/reserved.variables.server.php
0865nobodyさん
2009/08/28(金) 15:57:06ID:???取り出した元ハッシュからは、その一番目のデータを取り除きたいです。
ベタに書くとこんな感じですが、
もっとかっこよく書けないでしょうか。
$array = array(
'a'=>'100',
'b'=>'200',
'c'=>'300',
);
list($data, $array) = foo($array);
print_r($data); // array('a'=>100)
print_r($array); // array('b'=>200, 'c'=>300)
function foo($array) {
$new_array = array();
$line = 0;
foreach ($array as $key=>$value) {
if ($line == 0) {
$data[$key] = $value;
$line++;
continue;
}
$new_array[$key] = $value;
}
return array($data, $new_array);
}
0867865
2009/08/28(金) 16:10:54ID:???function hash_shift($array) {
list($key) = array_keys($array);
$data[$key] = $array[$key];
unset($array[$key]);
return array($data, $array);
}
>>866
4点。
0868nobodyさん
2009/08/28(金) 16:13:02ID:???$array = array_slice($array, 1);
0870名無しさん@そうだ選挙に行こう
2009/08/30(日) 16:02:47ID:???日本語フォルダに対応してくれる神はいませんか?
http://popilol.lolipop.jp/NiconicoPHP/pipipiga.html
http://popilol.lolipop.jp/NiconicoPHP/faq/body.php?no=4
どうもmb_convert_encodingを使えばできるらしいのですが、
PHP作ったことないのでさっぱり。
0871名無しさん@そうだ選挙に行こう
2009/08/30(日) 16:15:21ID:???にすればおk
0872nobodyさん
2009/08/31(月) 14:00:08ID:???厳密に言うとPHPではないのかもしれませんが、<a name="〜〜">でのアンカーリンクが上手く動作しません。
header("Location:〜〜")でページをジャンプさせるのですが、その際にPHPSESSIDと共に#でページ内アンカーに飛ばしています。
ところが、まったく同じURLにジャンプさせているのにもかかわらず、機種やジャンプさせるボタンによってページ内アンカーに
飛んだり飛ばなかったりで、条件がよく分かりません。
飛ばしたいところのソースは、
<a name="face" id="face"></a>
となっていて、ジャンプさせるコードは、
header("Location:hogehoge.php?guid=ON&SSID=〜〜&".SID."#face");
となっています。
header("Location:")は、aタグのページ内アンカーに対応していないのかとも思いましたが、
場所によっては飛んでくれるところもあるので、そうではないようです。
ちなみにXHTMLで組んでいるので<div id="face">とやってみましたが、これでもジャンプしてくれませんでした。
一体何が原因なのでしょうか?
0873nobodyさん
2009/08/31(月) 14:01:41ID:???ドコモで試したところ、header("Location:")内の#以降がスッパリとなくなっていました。
ドコモでは対応していないようですね・・・。
0874nobodyさん
2009/08/31(月) 14:02:28ID:???0875nobodyさん
2009/08/31(月) 14:21:09ID:???auでは#以降はキチンと転送されているものの、ジャンプしてくれません。
0876nobodyさん
2009/08/31(月) 14:34:02ID:???0877nobodyさん
2009/08/31(月) 14:34:29ID:???0879nobodyさん
2009/08/31(月) 14:40:52ID:???0880nobodyさん
2009/09/01(火) 12:42:16ID:???0882nobodyさん
2009/09/02(水) 10:09:20ID:???で、今PHPのインストール設定のところで迷っているのですが、php-5.2.10-Win32.zipをダウンロードし、C:\phpに展開しました
その後php.ini-distをphp.iniに名前変更してWindowsディレクトリに入れました
その次の事が良く分からないのですが、このphp.iniの内容を書き換えろというのは、例えば自分でメモ帳やらTeraPadで書き換えろという事なのでしょうか?
それと、本に「extension_dir="c:/php/ext"」と書かれているのですが、コレはphp.ini内で検索して出てくる「extension_dir = "./" 」という部分を書き換えればいいのでしょうか?
また、自分は「独習PHP」を参照にしているのですが、このサイト(http://y-kit.jp/saba/xp/phpsetup.htm#down)やこのサイト(http://www.phpbook.jp/install/phpini/index.html)で、書かれている事などが違います
いったいどれを参考にし、どういうような書き換えをするべきなのでしょうか?
教えていただければ幸いです
0883nobodyさん
2009/09/02(水) 10:16:57ID:???俺が初心者にPHPを伝授する
http://pc11.2ch.net/test/read.cgi/php/1167984858/
0885nobodyさん
2009/09/02(水) 10:24:27ID:???他のサイトのは貴方の環境には合いませんから違います。
0886nobodyさん
2009/09/02(水) 10:31:33ID:???返答ありがとうございます
思っていたよりもPHP導入って難しいんですね
PHP学習するよりも何か導入の方が時間かかっている気がします(苦笑)
第1章がなかなか先に進みません・・・
0887nobodyさん
2009/09/02(水) 11:57:26ID:???上記のスレの>>1から続く設定方法を見てやってみたのですが、
>>13のPHPの設定で、Apachewo再起動したところ、httpd.confの「LoadModule php5_module C:/php/php5apache2.dll」がEroorになり、
「php5apache2.dll」がload出来ないと出ました
色々とやってみたのですが出来ません
いったいどこの設定が間違っているのでしょうか?
教えてください
0888887
2009/09/02(水) 12:10:26ID:???0889nobodyさん
2009/09/02(水) 12:17:27ID:???0891nobodyさん
2009/09/02(水) 19:44:10ID:???を実行しても、/usr/local/bin/php がインストールされません。
(--prefixはちゃんと/usr/localになっています。)
以前はこれでうまくいっていたはずなのに。
何が原因かわからないのですが、心当たりのあるひとがいたら教えてください。
PHP5.2.10, MacOS X Snow Leopard
0892nobodyさん
2009/09/03(木) 01:24:57ID:???基本的すぎて?解説書に書いてない
0893nobodyさん
2009/09/03(木) 01:39:12ID:???print "1 $hoge";
print '2 $hoge';
->出力
1 ほげ
2 $hoge
-----------------------------------------
速度的には ""の中に変数を書くのではなく、
print "1 ". $hoge;
とするのが早いらしい。
0894nobodyさん
2009/09/03(木) 02:39:30ID:???まあソースを追えばわかるんだろうけど。
0895nobodyさん
2009/09/03(木) 02:53:32ID:???�d
すみません、質問の仕方が不適切でした。
その違いはわかるのですが、シングルでもダブルでも動作に違いがない場合
どちらを使うかは全くどうでも良いことなのでしょうか?
具体的には、
$hoge['name']と書くか
$hoge["name"]と書くか悩んでる。現在統一されてなくてバラバラなので気になって。
0896nobodyさん
2009/09/03(木) 03:41:35ID:???書き方が悪かった、
print "1 ". $hoge;
print '2 '. $hoge;
とやった際のスピードは殆ど変わらない
ダブルで変数が書かれていた場合、変数を呼び出す際に遅いということ。
>>895
シングル・ダブル、どちらでもかまわないが、文字+変数などでキーを指定する場合は
$hoge[ "As$num" ] ではなく、
$hoge[ "As".$num ] とやった方がいい
0897nobodyさん
2009/09/03(木) 04:58:16ID:???PERLだとシングルで囲むと不具合の出る日本語(カタカナのソとかだったような)があったけど、
PHPではその心配はしなくて良いのでしょうか?
0898nobodyさん
2009/09/03(木) 15:35:06ID:???これtwitterAPIがかなり不完全で辛いのだけど、他に使えそうなのないだろうか。
自作したほうがかゆいとこに手が届くのは確かだけど
既存のがあるのならそっち流用したほうが手間省けるし。
twitterのbotやツール関連スレないかと探してみたもののないっぽいね。
0899nobodyさん
2009/09/03(木) 21:13:27ID:???1.7.2
MySQLを起動しているのに、
XAMPPの「ステータス」の画面では、
MySQL 起動していない
って表示されます。なんで?
起動していることの検出に
失敗している?
0900nobodyさん
2009/09/03(木) 21:14:46ID:???0901nobodyさん
2009/09/03(木) 21:27:49ID:???0902nobodyさん
2009/09/03(木) 21:43:26ID:???0903nobodyさん
2009/09/03(木) 21:52:33ID:???チュートリアルどおりに正常にインストールが完了していれば
問題なく使えるようになっているはずだが
なんか余計なことした?
0904nobodyさん
2009/09/03(木) 21:55:43ID:???ってのに、遭遇したんだが、
これってどこから設定するの?
0905nobodyさん
2009/09/03(木) 21:59:37ID:???1.phpinfoのタイプミス
2.PHP不可のサーバー使っている
3.その他こっち参照ttp://74.125.153.132/search?q=cache:GpgepT72DysJ:sakaguch.com/pastbbs/0033/B0016626.html+php.info&cd=1&hl=ja&ct=clnk&lr=lang_ja
0906nobodyさん
2009/09/03(木) 22:07:05ID:???それは使えません」
って英語で出てきた。
0907nobodyさん
2009/09/03(木) 22:11:20ID:???これってphpだとダメなんだね。
0908nobodyさん
2009/09/03(木) 22:16:03ID:???0909nobodyさん
2009/09/03(木) 22:28:10ID:???$a=array(1,2,3,"","","");
$a=array(1,2,3,null,null,null);
0911nobodyさん
2009/09/03(木) 23:23:51ID:???nullはnull、文字列では無い。
空白つったらspace。
0912nobodyさん
2009/09/03(木) 23:25:02ID:???0913nobodyさん
2009/09/03(木) 23:29:37ID:???0915nobodyさん
2009/09/04(金) 00:06:06ID:???0916nobodyさん
2009/09/04(金) 00:09:10ID:???という話があってだな。
0917nobodyさん
2009/09/04(金) 03:29:20ID:???0918nobodyさん
2009/09/04(金) 10:06:16ID:+DFleHvHどうも中心がずれてしまいます。
$src_img=ImageCreateFromJPEG(元の画像);
$img_w=ImageSX($src_img);
$img_h=ImageSY($src_img);
if($src_img){
//$resize_h,$resize_wトリミング後のサイズ
//$new_h,$new_w縮小後の画像のサイズ
if($resize_h>$resize_w){
$rate=$resize_h/$img_h;
$new_w=$rate*$img_w;
$new_h=$rate*$img_h;
$dst_y=($new_h-$resize_h)/2;//位置の調整
}else{
$rate=$resize_w/$img_w;
$new_w=$rate*$img_w;
$new_h=$rate*$img_h;
$dst_x=($resize_h-$resize_w)/2;//位置の調整
}
$dst_img=ImageCreateTrueColor($resize_w,$resize_h);
$result=ImageCopyResampled($dst_img,$src_img,0,0,$dst_x,$dst_y,$new_w,$new_h,$img_w,$img_h);
ImageJpeg($dst_img,$resize_path.$img_name);
imagedestroy($dst_img);
imagedestroy($src_img);
こんな感じなんですが、よろしくお願いします。
0919918
2009/09/04(金) 10:27:33ID:+DFleHvHImageCopyResampled($dst_img,$src_img,-$dst_x,-$dst_y,0,0,$new_w,$new_h,$img_w,$img_h);
↑で解決しました。
昨日一日使ってうまくいかず
imagecopyresampledのマニュアル(公式じゃない奴)調べなおしてうまくいきました。
お騒がせしました。
0922nobodyさん
2009/09/04(金) 18:05:29ID:???ネットワーク系のプログラミングはほとんど経験ありません
どこかのHPの専用ブラウザを作るにはそのHPのソースが絶対にわからないとだめなのでしょうか
この2ch専用ブラウザは誰が作ったのでしょうか
お願いします
0923nobodyさん
2009/09/04(金) 18:17:06ID:???0924nobodyさん
2009/09/04(金) 19:29:22ID:???「拡張子がphpのファイルをphp5スクリプト(cgiモード)として扱う」という設定があります。
各所の説明を見ると、CGIモードならセーフモードの影響を受ける機能が使える
というような記述があるんですが、CGIモードにしても自作スクリプトが動いてくれません。
しかし、セーフモードである別のレンタル鯖Bだと問題なく動きます。
同じセーフモード環境下なのにAだけエラーが出る理由が分からないんですが、
phpini等の設定の違いでありえることなんでしょうか?
0926nobodyさん
2009/09/04(金) 20:22:03ID:???色々制限もあるしWebプログラムのプラットフォームでやるようなことじゃないとおもう
0928nobodyさん
2009/09/04(金) 20:51:56ID:???そりゃどういうエラーが出てるかをいわなきゃわからんだろ
パーミッションは?cgiで動かすなら755とかにしないとだめだよ
0929nobodyさん
2009/09/06(日) 01:41:17ID:???ゾーンアラームはMySQLがインストールできないので
Outpost2009にしたのですが
Outpostはトラブルが多いので別のにしたいのですが
OSはXPです
0930nobodyさん
2009/09/06(日) 02:15:39ID:???ルーターもってないの?
もってるならいらないからアンインストールしていいよ
0933nobodyさん
2009/09/06(日) 19:17:24ID:???ルーター機能つきのモデムなんじゃない?(むしろADSLモデム機能つきルーターか)
ルーター自体がファイアーウォール機能が備わっている(外から中だけだけど)
ようするにルータがある状態ならバックドアだけに気をつけてればいいので
アンチウイルスソフトのみでいいというお話
(ここで遮断すれば中から外へ向かう悪意のあるソフトはインストールされないので)
XPからは中から外を検知するWindowsファイアーウォールなんてのもついてるしね
今時ルーターを通さないで直接接続してる人はまれだろう
(ブロードバンド契約時にルーターも貸し出されることが多い)
まだルーターが普及してないころに必要だったものなので
ソフトウェアのファイアーウォールは直接接続してる人にしかいらないもの
ソフトよりハードのほうが強力だしわざわざソフトとハードで二重にする必要はないよ(重いだけ)
>>932
初心者乙
0934nobodyさん
2009/09/06(日) 19:27:51ID:???接続するときなんかを想定すると必要になる場合もあるけど
ルータがあってデスクトップで家のみで使う分にはいらない
0937nobodyさん
2009/09/06(日) 22:13:14ID:???ゾーンアラームのログを見たら
2年ぐらい使ってて外からの攻撃を受けたのが0件だったから十部ありえるんだよな
0938nobodyさん
2009/09/06(日) 22:38:04ID:???だいたい外からの攻撃として検出されるのは
攻撃前の下調べのポートスキャンが大半でしょ
ルータのログには残ってるんじゃない?
0939nobodyさん
2009/09/07(月) 10:01:31ID:???勝手に(パーソナル)ファイアーウォールは入ってるんじゃないの?
0940nobodyさん
2009/09/07(月) 11:00:31ID:???入らない。セットになってる製品もあるけどね。
たとえば俺が使ってるカスペルスキーの製品でも、
ファイアーウォール機能つきのKaspersky Internet Securityと、
アンチウィルスのみのKaspersky Anti-Virusがある。
他の会社の製品も大体似たような感じで、
ファイアーウォール機能つきとついてない2種類の製品を用意してる場合が多い。
ファイアーウォールはアプリケーションとしては重い部類に入るし、不要な干渉も多いので、
セキュリティに詳しい人でルーター入れてる人は避ける傾向にある。
0941nobodyさん
2009/09/07(月) 11:13:02ID:???詳しくなくて&phpと離れてしまって申し訳ないが
ルータのF/W機能で、Zone Alarmみたいにプログラム単位で許可・不許可を設定できる?
俺のiodataのルータだとそういうの見つからなかったから、ルータ側では使わないポート塞ぐ位しかしてない。
0942nobodyさん
2009/09/07(月) 12:05:00ID:???結局できてもプロトコル別やポート別が限界じゃないかな。
0943nobodyさん
2009/09/07(月) 12:16:57ID:???できない。
ファイアーウォールってのは字のごとく外からの不正アクセスを火の壁でブロックする(イメージ)機能。
ルータが行うことはまさにこれでこれ以上のことはしない。
直接インターネットに接続してる場合、ポートが開いている状態になっているので、
これをソフトウェア的に閉じるのがZoneAlarmみたいなソフト。
このようなソフトウェアは外から中への監視に加え、中から外へ向かう通信も監視している。
中から外への監視というのは、ウイルスなどで自PCにサーバ機能をもつソフトなんかを、
知らない間に設置されてしまったときの検出には役立つが、基本的に必要性がない。
なぜなら自分で意図的にいれたソフトウェアは最初から信頼しているわけだからね。
(たとえば2chブラウザを使うために入れてわざわざ通信の許可するのは不要だと思わない?)
それにウイルスに感染して上記のようなソフトを入れられた場合、
ルータをはさんでればポートが開くことはないのでその後の受け皿になることもないが、
ソフトウェアの場合、プロセスを強制終了させられて機能させなくすることも可能なので信頼性が低い。
上のほうでハード(ルータ)だソフトだいってるのはそういうこと。
ポートは基本的に全て開ける必要はないので全て閉じていい。
PHPの開発でApacheいれるにしてもlocalhostでの開発になるんだからわざわざ外に開ける必要はない。
0944924
2009/09/07(月) 12:26:22ID:???xreaではないんです
>>928
Warning: session_start() [function.session-start]: SAFE MODE Restriction in effect.
で、スクリプトのディレクトリにtmpディレクトリ作ってsession.save_pathで指定してみたらエラーは消えたけど
ログインが出来ないっていう…。(ログイン成功で発行されるセッションの値がNULL)
0945nobodyさん
2009/09/08(火) 17:21:31ID:8FIeNmpAwhile (list ($a, $b) = each ($c)){
$flag1 = eregi("test",$a);
$flag2 = eregi("test",$a);
echo $flag1;
echo $flag2;
}
echo $flag1;
echo $flag2;
0946nobodyさん
2009/09/08(火) 17:26:50ID:???$cの中身よく見てみな。
whileの最後のループでeregiマッチしなくて$flag1と$flag2に空が代入されているからだろ。
0947nobodyさん
2009/09/08(火) 17:27:47ID:???0948nobodyさん
2009/09/08(火) 19:10:27ID:???↓のブログのコメントの73番のやり方が分かる方はおられませんか??
ttp://ameblo.jp/yamasita-94nsr/entry-10018566158.html
PRという文字列を含む場合、ソート用の変数に追加させないようにしたいんですが
どのようなif文を追加すれば良いのか分かりません。
0949nobodyさん
2009/09/08(火) 20:55:24ID:???0950nobodyさん
2009/09/09(水) 07:04:04ID:???workspaceの指定し
mysqlのエンコードを設定後
bin/httpd.confに
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
追加すると
apacheが立ち上がりません
イベントビュアーで確認をとったところ
上記書き換え行のシンタックスエラーがでてるみたいなのですが
subversionを使うには他に何か操作する必要があるのでしょうか?
OSはXPSP2です
ソフトはサクラエディタです
ファイアーウォールはウィンファイアウォールです
0951nobodyさん
2009/09/09(水) 07:32:07ID:???スレ違いもとい板違い
http://pc11.2ch.net/test/read.cgi/mysv/1245157265/l50
0952nobodyさん
2009/09/09(水) 07:33:21ID:???http://pc12.2ch.net/test/read.cgi/tech/1230488758/l50
0953nobodyさん
2009/09/09(水) 11:31:03ID:???private $width;
public function __construct(){ 中身 }
public function __destruct(){ 中身 }
public function get_width(){return $this->width;} //�@
}
ちょっと色々と省略していますが、このthisはいったい何を意味しているのでしょうか?
というよりも、�@の部分はwidthプロパティを取得しているとの事らしいのですが、 $this->widthの部分が何をしているのかが分かりません
すみませんが教えていただきたく質問させてもらいました
0954nobodyさん
2009/09/09(水) 11:38:37ID:???$foo=mew MyClass();
$foo->get_width();
//ならget_width()の$thisは$fooだし
$boo=mew MyClass();
$boo->get_width();
//なら$boo。
レス数が950を超えています。1000を超えると書き込みができなくなります。