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

【PHP】くだらねぇ質問はここに書き込みやがれpart4

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん05/03/13 16:08:32ID:???
PHPに関するくだらない質問用すれです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい

・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
0028nobodyさん05/03/14 13:15:04ID:???
>>27
preg使う
$file = preg_replace('/{(\$[[:alnum:]]+)}/e', "$1", $file);

または
$title = "test";
include('./template.php');
00292805/03/14 13:16:40ID:???
template.php
<html>
<head>
<title><?=$title?></title>
</head>
<body>
<h1><?=$title?></h1>
</body>
</html>
0030nobodyさん05/03/14 13:22:09ID:???
>>26
ランダム数値を取得するのにmt_rand()やrand()を使うとして、
ダブらないようにするには、過去全ての数値を記録しておくより他は無い。

1. 数値を一個生成する度に過去の数値と比較して有効無効を判定。
 初めての数値だったら、記録用配列に保存。重複していれば再生成。
2. 重複しない数値を入れた配列を用意し、shuffle()を使ってかき混ぜる。
 最初から順番に使っていく。
0031nobodyさん05/03/14 13:52:38ID:ac0vKofO
auのケータイのケータイプラネットで「今週のイチオシ」とか言うサイトの
着メロダウンロードしたんですけど、怪しいサイトの可能性はありますか?
0032nobodyさん05/03/14 14:16:22ID:???
>>31
しらんがな(´・ω・`)
0033nobodyさん05/03/14 17:42:03ID:R34xlKHj
文字列が格納された変数の末尾を切り取って、
切り取った物を別の変数に格納する関数はPHPに標準装備されてますか?
あれば名前を教えてください。
0034nobodyさん05/03/14 17:48:16ID:???
>>33
   〃∩ ∧_∧
   ⊂⌒( ´・ω・`) くぜんぶマニュアルに書いてあんがな
     `ヽ_っ⌒/⌒c
ttp://www.php.net/manual/ja/ref.strings.php
ttp://www.php.net/manual/ja/ref.mbstring.php
0035nobodyさん05/03/14 17:50:58ID:???
>>34
そのAAかわええ。
0036nobodyさん05/03/14 18:00:01ID:9MS+lPog
日本語のファイル名でダウンロードさせたいのですが、
header( "Content-type: application/octet-stream;n" );
header( "Content-Disposition: attachment; filename="". urlエンコードした日本語 .""n" );
print ファイルの中身
とやっても、ファイル名がばけばけくんです。
sjisでもeucでもダメなのですが…

0037nobodyさん05/03/14 18:19:13ID:???
>>36
urlエンコードはドッから沸いた。
0038nobodyさん05/03/14 18:33:20ID:???
>>26

>>30 とは違う意味ならこんな感じか。

$nums = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9) ;
shuffle($nums) ;
$numuniqs = 1000 * $nums[0] + 100 * $nums[1] + 10 * $nums[2] + $nums[3] ;
printf("%04d", $numuniqs) ;
0039nobodyさん05/03/14 19:01:29ID:???
>>36
ブラウザによって全然違うので、これだ、という方法がありません。
0040nobodyさん05/03/14 23:19:48ID:???
>>26
function getPassnum($keta='4'){
 if(!$keta) return False;
 srand();

 
}
0041nobodyさん05/03/14 23:21:18ID:???
すまそ、書き中に送信しちまった。

>>26
function getPassnum($keta='4'){
 if(!$keta) return False;
 srand();
 $temp = shuffle(array(0,1,2,3,4,5,6,7,8,9));
 return (string) $temp[0].$temp[1].$temp[2].$temp[3];
}
0042nobodyさん05/03/15 11:47:18ID:???
0123だと4桁?
0043nobodyさん05/03/15 13:21:19ID:a8e+tPDr
windows+apacheなんですが、
実行中のphpをとめるにはどうしたらいいのでしょうか?
強引にでもプロセスとめたいです。
0044nobodyさん05/03/15 13:23:30ID:a8e+tPDr
apacheとめたら大丈夫でした
0045nobodyさん05/03/15 13:48:08ID:???
>>43
モジュールならapacheの一部だからな
0046nobodyさん05/03/15 14:37:59ID:???
>>36
IE限定での話ならURLエンコードしないでSJISにすればOK。
0047nobodyさん05/03/15 16:05:59ID:EikE9BP9
PHPでメールを送信する場合の設定についてですが、下の以外に何かありましたっけ?
最近OSを入れ替えたんですが(Fedora2→CentOS4)、
同じPHPスクリプトでメールを送れなくなってしまったもので。

<php.ini>
sendmail_path = /usr/sbin/sendmail -t -i -f自分のアドレス
※sendmailのパスはwhichで確認しましたので、間違いありません。
※メールサーバー(Postfix)はきちんと動いていて、メールの送受信が可能です。

<PHPスクリプト>
<?php
$email = "自分のアドレス";
$subject = "TEST";
$content = "This is test";
mb_send_mail($email, $subject, $content);
?>
※mbstring関係の設定も行っており、mb_ereg_replaceなど他のマルチバイト文字列関数は使えます。
※エラーメッセージの表示をオンにして確認してみたのですが、エラーは何も出ません。

何か根本的なことを見落としているのかも・・・
アドバイス願います。
0048nobodyさん05/03/15 16:22:57ID:???
>>47
Centのpostfixの設定ファイルを読んだかい?
0049nobodyさん05/03/15 20:29:10ID:???
くだらないんですが、
配列を空で初期化するのは、
$a = array();
でよいんでしょうか。

なにか正しいやり方あれば教えてください。
0050nobodyさん05/03/15 20:36:42ID:???
>>49
配列の要素数を0にしたいのならそれでいい。

配列自体を無くしたい(メモリを開放したい)なら
unset($a);
00514705/03/15 23:05:05ID:EikE9BP9
>>48
レスどうもありがとうございます。なるほど、postfixのmain.cfを読むと、
sendmail_path = /usr/sbin/sendmail.postfix となっていますね。
で、この通りにphp.iniの方を書き換えて、apacheを再起動してみたのですが、
メールの送信はできませんでした。うーん・・・
0052nobodyさん05/03/15 23:38:55ID:???
>>51
postfix のログを見るとか、下みたいな感じのスクリプトを
sendmail_path の先に置いて、こいつの結果をそのままその sendmail.postifxって
言うやつに食わせてちゃんと送るか確認するとか。

#!/bin/bash
OUT=/tmp/php_maildump
echo $0 $* > $OUT
cat > $OUT
exit 0
0053nobodyさん05/03/16 00:03:01ID:oQ3Q5gEX
Pockey-GetHTMLというサイト一括ダウンロードソフト?を拒否するにはどうしたらいいでしょう
PHPのバージョンは4.3.10です。

if(getenv("HTTP_USER_AGENT")=="Pockey-GetHTML"){exit;} うーん?
00544705/03/16 00:14:43ID:???
>>52
レスどうもです。postfixのログには関連するものがなかったのですが、
apacheのログを再度見直してみたら、
sendmail.postfix: fatal: chdir /var/spool/postfix: Permission denied
というエラーを見つけました。これが原因でしょうか。

で、/var/spool/postfixのアクセス権を調べたところ、
所有者はrootで、アクセス権は755に設定されていました。
所有者以外のユーザーも読めるわけですが、何が問題なんでしょう。

試しに上記ディレクトリのアクセス権を777にしてみましたが、
結果は変わらず、エラーログも同じものでした。

あと、せっかくスクリプトを書いていただいたのに恐縮ですが、
後半のアドバイスは私にはちょっとわかりません。すみません。
0055nobodyさん05/03/16 00:14:45ID:???
>>53
Web制作板から来た人かいな。
UA名はきちんと申告するらしいのでhtaccessで弾くのが手っ取り早いんだが。
「うーん?」つーのはどういう意味で書いているんだ?
00565305/03/16 00:49:42ID:???
>55
はい、移動してきました。
htaccessは使えないのでPHPでなんとかできないかと思ったんですが無理ですか?
うーん?というのは読み飛ばしてかまいません。深い意味はないです。
0057nobodyさん05/03/16 01:28:17ID:???
>>56
Pocky-GetHTMLのUser-Agent名は、「Pockey-GetHTML/4.12.0 (Win32; GUI; ix86)」
ってな感じらしいので、>>53の書き方の「 == (等しい)」だとそこを通らない。
strstrやstrposのような文字列の中を検索する関数を使う。
ttp://www.php.net/manual/ja/tutorial.useful.php
0058nobodyさん05/03/16 07:58:31ID:qOWGuaAh
XHTML宣言を書きたいのですがPHPとして解釈されてしまうので、
<? echo '<?xml version="1.0" encoding="Shift_JIS"?>'; ?>
とやるのはどうでしょうか?
ご意見をいただけると嬉しいです。
0059nobodyさん05/03/16 07:59:01ID:qOWGuaAh
↑XML宣言を書きたい、の誤りです、、
0060nobodyさん05/03/16 09:54:48ID:???
>>58
short_open_tagを無効にする。
0061nobodyさん05/03/16 10:11:58ID:???
>>56
なんかググってみたけどモノ自体は判らなかったが
(今は配布されてないみたいだ)
相当に行儀が悪い振る舞いをするモノということだけは判った。

現物ないので、UAを偽装できてしまうのか判らんが。
>>57みたいに文字列検索で、正規表現で引っ掛けるか。
あとデフォルトのUA表示は「Pocky/〜」というのもあるみたい。
0062nobodyさん05/03/16 12:26:14ID:???
>>53
GETHTML 4.13は持ってるよ
UAを変更する機能はないのでPockey-GetHTMLを含むものを拒否するだけでOKでしょう
それかrobots.txtを読み込むのでrobots.txtでも拒否できますよ。

一応4.13からは
(1) 同一サーバ(ホスト)への同時取得数が 1 に固定されました
(2) 同一サーバ(ホスト)への連続取得に対し、1秒の wait をデフォルトで入れました
という変更がされてるようです
00635305/03/16 13:14:18ID:???
うおーん、ありがとうございます。
モノが無いので挙動を確かめられんのですが
多分これでいけるんでしょう。次回の爆撃を楽しみにまっときます。

if(strpos($_SERVER['HTTP_USER_AGENT'],'Pockey-GetHTML')==true){exit;}
0064nobodyさん05/03/16 14:19:24ID:???
>>63
まてまて、strposは先頭の文字の位置は0を返すぞ。
!==false じゃないかな。

UA偽装してアクセスするくらいのテストをした方が爆撃が楽しみになると思う。
00655805/03/16 16:09:26ID:???
>>60
それをヒントにいろいろ調べてみたらわかりました。
ありがとうございます。
0066nobodyさん05/03/16 17:00:56ID:???
以下のようなエラーが発生したのですが、これはどういう事なのでしょう?
Webで翻訳してみたら「変数だけは、参照によって超えられることができます」と・・・
変数自体は$a[1]=array()しか存在していないはずなのです
意味がわからない

print_r($a);
Array ( [1] => Array())
Fatal error: Only variables can be passed by reference
0067nobodyさん05/03/16 17:14:15ID:???
>>66
エラーの原因はわからないがプログラムするんならpass by valueとpass by referenceぐらい知っとけ
知らなければ調べとけ
0068nobodyさん05/03/16 17:28:28ID:???
>>67
こんなエラーは私としては初めてみるのですが皆さんはエラーが発生する前にエラーの
文脈を理解されているのですね。流石にプロは違いますね。
文字が出る前に予測し意味を理解されているなんて!。
と煽ってみる^^。

0069nobodyさん05/03/16 17:41:54ID:???
煽れてねえよ。むしろ墓穴掘ってるよ。
00706605/03/16 17:53:51ID:???
それにしても原因がわからないなぁ
count($a)は1ですし成立しているはずなのに致命的エラーで中止されてしまう
配列の作り方に問題があるのか・・・

print_r($a)
Array ( [1] => Array())
Fatal error: Only variables can be passed by reference

isset($rel[1]);
Fatal error: Only variables can be passed by reference
0071nobodyさん05/03/16 18:03:38ID:???
>>66
passの意味が違う。ボールをパスするとか
(語源はいっしょだけど)
00726605/03/16 18:09:10ID:???
>>71
変数名を変更したら直りました・・・が、あぁ〜書き込む途中で何となく分かりました。
使っている変数名を初期化してなかった為に何処かで使っていた変数と被っていたのかも知れません。
しょぼい・・逝ってくる;;
0073nobodyさん05/03/16 18:18:13ID:???
Fatal error: Only variables can be passed by reference
を出したくてチャレンジしてるのですができません。。 orz
よほど革新的なやり方に違いない。。
00746605/03/16 18:39:26ID:???
今、関数は除いてスクリプトを眺めてみたのですがエラーが発生していた変数を
使っている形跡がなかった。グローバルなんて使っていないし、わけがわからない・・。
00756605/03/16 18:47:16ID:???
致命的エラーで途中で処理を中断させたらデータくらいは狂わせる事が
出来るかもしれないな
ちなみにPHP Version 4.3.9です
0076nobodyさん05/03/16 22:45:43ID:???
他板から来ました。
ローカルルール申請をする前に
知識のある方に確認して欲しいのですが
どちらで聞けばよろしいでしょうか?
0077nobodyさん05/03/17 00:18:17ID:???
>>76
http://qb5.2ch.net/operate/
0078nobodyさん05/03/17 00:24:03ID:???
>>76
ここは「PHP」のくだ質スレなんよ。
0079nobodyさん05/03/17 02:32:38ID:pEdxtvRG
1、掲示板のログとかで、DB無しだと一行消すために全行書き直すことになると思うのですが、
  MYSQLとかだと一行消して間をつめるみたいに軽い処理でできるのでしょうか?

2、最近のサーバーなら5000行を超えるテーブルでも比較的軽く操作できますでしょうか?

3、カンマ区切りのテキストファイルをたくさん作るくらいならMYSQLにすべきでしょうか?

4、MS-ACCESSのようにテーブル作るたびにファイルができるのでしょうか?


webアプリを作っていて、できたのはいいもののデータファイルが1000行とか超えてくるとさすがに心配です。
ファイルロックをしてはいますがfrockでは完璧ではないようで・・

どなたかY/Nで結構ですので1〜4答えてください。
0080nobodyさん05/03/17 06:07:50ID:???
>>79
ここはPHPのスレなのだが。。。。
0081nobodyさん05/03/17 09:10:33ID:???
>>79
SQLite
0082nobodyさん05/03/17 12:31:19ID:JSWrWrWk
すいません、教えてください。
現在PHPにPOSTでバイナリ画像データを投げています。
ところが、$ret = $_POST['ret'];
にした時にすでに、$retはデータに\0があった場合に切り詰められてしまいます。

これを回避してバイナリ画像データを
画像ファイル形式で保存するにはどうしたらいいでしょうか?
0083nobodyさん05/03/17 12:31:45ID:JSWrWrWk
ddd
0084nobodyさん05/03/17 12:32:27ID:???
>>83
ごめんなさい。
変なものも打ってしまいました。
0085nobodyさん05/03/17 12:54:39ID:???
>>82
POSTでバイナリを投げる?
フォームからファイルアップロード?
だったら、普通にmultipart/form-data使えば?

それより、IDに感動した。
0086nobodyさん05/03/17 13:12:57ID:???
>>85
フォームからではなくて、Iアプリから投げています。
Iアプリからはきちっと投げれているんですが、
PHP側で$ret=$_POST['ret'];
と、やろうものならもう文字がめちゃめちゃになっています。

なんとか回避できないでしょうか?
$HTTP_POST_FILESというのを試したのですが、うまくいきませんでした。
(FORMからファイルのアップはできました)
0087nobodyさん05/03/17 13:19:19ID:???
文字がめちゃめちゃって?
0088nobodyさん05/03/17 13:20:29ID:???
>>86
そのi-アプリはcontent-typeヘッダを出力してるのか
0089nobodyさん05/03/17 13:24:46ID:???
お絵描きJavaアプレットから画像データを受け取るときは$HTTP_RAW_POST_DATAを使ったけどね
0090nobodyさん05/03/17 13:25:08ID:JSWrWrWk
レス恐れ入ります。

ヘッダはこんな感じで出力してます。
con.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
試しにmultipart/form-dataにしてみたんですが駄目でした。
ちなみに、ret='画像バイナリデータ'という感じでPOSTで渡しております。

文字が認識できないというのは、バイナリデータに\0が在った場合切り詰められてしまうことです。
$ret=$_POST['ret']; ←この時点で取得するときには勝手に切り詰めてくれます(涙
0091nobodyさん05/03/17 13:54:02ID:???
レスありがとうございます。
$HTTP_RAW_POST_DATAをググったら解決できました♪
//うちの鯖では$HTTP_RAW_POST_DATAが使えませんでしたので
//ググって出てきたメーリングリストから転載します。
$buffer = "";
$stdin = fopen( "php://input", "r" );
if( !$stdin ){ die( "stdin open error!!" ); }
while( !feof( $stdin ) )
{
$buffer .= fgets( $stdin, 10000 );
}
fclose( $stdin );

これでPOSTデータを取得できました。
但し、もともと"ret=画像バイナリ"で送信していたので、
retをはずして"画像バイナリ"のみで送信しました。
折角、ハッシュになっていて便利なのですが、この際諦めます。
00927905/03/17 14:12:39ID:???
phpでデータたくさんのデータ保存するならどっちがいいのか知りたかったんですが
webprogの質問のほういきますね。
0093nobodyさん05/03/17 15:41:55ID:???
>>91
Content-typeをapplication/octet-streamとかにすればalways_populate_raw_post_dataの設定にかかわらず
$HTTP_RAW_POST_DATAにPOSTデータがそのまま残ると思う。
0094nobodyさん05/03/17 15:59:35ID:???
>>90
i-appli側も作ってるならi-appliのほうでmaltipart/form-dataの形式にして送ればバイナリデータもちゃんと遅れるでしょう。
application/x-www-form-urlencodedは文字通りurlエンコードして送るものですから
0095nobodyさん05/03/17 17:09:51ID:???
自分とこのBlogっぽいスクリプトで、
http://foo.bar/index.php/20050401
って感じでindex.phpに日付っぽい文字列渡してるんですけど、
Hatenaみたく
http://foo.var/20050401
って感じで日付をスクリプトに渡すにはどうすればいいでしょうか。
やっぱApache側でなんとかしないとダメ?
0096nobodyさん05/03/17 17:40:17ID:???
>>95
PHP以前の問題でapacheがどうするかつー話。
上のURLが使えるつーのもapache側でなんとかしてるよ。
自分が管理してる鯖なら「なんとかした」時のドキュメントを再度確認。
他人が管理してる鯖ならその人に相談してみれ
0097nobodyさん05/03/17 18:34:04ID:???
>>96
うへぇ。やっぱApache側ですか。
> 自分が管理してる鯖なら「なんとかした」時のドキュメントを再度確認。
Apache側の設定はデフォのままです。
上のURLみたいにやってるサイト見て、試しに自分とこのでも似たようなURL入れて飛んでみたらありゃアクセス出来んじゃんって。
じゃあ$_SERVER['PHP_SELF']から文字列取得すりゃどうにでもなるじゃん、って感じで適当に書いただけなんで。

んー、mod_rewriteあたりでなんとかなりますかね・・調べてみます。
0098nobodyさん05/03/17 19:12:45ID:???
文字列の比較について質問させてください。
パスワードの比較をしたいのですが
半角の英数のみの文字列を比較する場合
== === strcmp などどれがよいのでしょう?
00999805/03/17 19:13:20ID:???
==は余計でしたね。
0100nobodyさん05/03/18 01:16:38ID:???
自分でサーバ動かして、ドキュメントルートフォルダ以下にhoge.phpファイルを置いた場合と、
ホスティングのレンタルサーバで、自分のディレクトリ以下にhoge.phpファイルを置いた場合に、

同階層のinc.phpを読み込むには、
require_once($_SERVER['DOCUMENT_ROOT'].'/inc.php');
これで行けてるんですが、

自分でサーバ動かして、ユーザ/public_html/以下のディレクトリにhoge.phpを置いた場合は、
パス的に違うところ(ドキュメントルートの方)を見に行ってしまってinc.phpが無いという
エラーになってしまいます。

当たり前と言えば当たり前な気がするんですが、こういう場合、今いる位置を取得するような記述に変えるものでしょうか?
(そんなものがあれば、ですが。)

もしくは、apacheの設定でどうにかする問題でしょうか?
0101nobodyさん05/03/18 01:20:05ID:???
>>100
__FILE__
0102nobodyさん05/03/18 02:04:42ID:???
同階層なら./inc.phpでよいんでないの?
010310005/03/18 02:11:52ID:???
>>101
ちょっと調べてみます。使い方がよくわからんので。

>>102
まじすか?じゃあ元から
require_once('./inc.php');
ってやっとけば良かったのかなぁ。後でやってみます。
0104nobodyさん05/03/18 13:36:47ID:???
ごめん自信ないけど
require_once('inc.php');
はだめなのかな
0105nobodyさん05/03/18 15:45:07ID:???
imagefttextについてですが、
携帯サイトで画像に文字を入れるサイトを作っています。
imagefttext ($im, $size, $angle, $x, $y, $col, $font_file, $text)
を全て変数にしてformを使った選択式にしています。
PCからアクセスするとすんなり行き、画像に文字が入って表示されます。サイズ、位置、色、フォントの種類も全てOKです。
しかし携帯(auのA3012CA)からアクセスすると画像は表示されますが、文字が描画されていません。
これは無理なんでしょうか?
0106nobodyさん05/03/18 16:08:50ID:???
>>105
ここで聞く前に色々出来る事があるだろう?
$textに文字列がちゃんと入ってるのかとかさぁ。
携帯の時の画像をファイルに落としてそれをPCで確認してみるとかさぁ。
0107nobodyさん05/03/18 17:02:27ID:???
ツワ
0108nobodyさん05/03/18 17:37:43ID:???
PHP4.3.10とMySQL3.23.49での質問です。

+--+--------+-----+------+
| id | leader  | sub_l | sub_l2 |
+--+--------+-----+------+
| 01 | 山田   | 本田 | 上田  |
| 02 | 上田   | 藤本 | 山本  |
| 03 | 山田   | 藤本 | 田中  |
+--+--------+-----+------+
こんなテーブルで、各列の名前をひとつの配列に格納したいのですが、
つまづいてしまったので質問させてください。

$result = mysql_query (SELECT leader FROM table, $conn);
$leader = mysql_fetch_array ($result);
これだと、
Array( [0] => 山田 )
Array( [0] => 上田 )
Array( [0] => 山田 )
の様に、行ごとの配列になってしまいます。

これを、Array ([0] =>山田 [1] => 上田 [3] => 山田)
の様にしたいのですが、どうすれば良いでしょうか?
0109nobodyさん05/03/18 17:52:34ID:???
>>108
while ($row = mysql_fetch_row($result)) {
$leader[] = $row[0];
}
mysql_resultでもいいけど。
mysql_fetch_array()した後で新しい配列を作るのもありかな。
011010805/03/18 18:00:14ID:???
>109
うおー!できました!
whileが浮かばなかったです。。。

こんな短時間に答えてもらってめっちゃ嬉しいっす。
�dクス!
0111nobodyさん05/03/18 18:13:55ID:???
ううう、基本だと思うk度
0112nobodyさん05/03/18 18:54:53ID:???
スミマセンorz
011310005/03/18 21:41:06ID:???
すみません、また質問なんですが、
今いるページ(動的)を表示させるにはどうしたもんでしょうか?
$_SERVER['PHP_SELF'];
や、
$_SERVER['PATH_TRANSLATED'];
だと、そのファイル自体が出てしまいますが、
http://xxx.com/hoge.php?huga=1&hage=2とか、
.htaccessでちょっと違う渡し方(http://xxx.com/1/2/みたいな感じ)をしてたりするので、
つまりは、アドレスバーに出ているパスがわかる手法なんてありませんですか?
011410005/03/18 21:42:08ID:???
うわ↑実在だった…宣伝じゃないス
0115nobodyさん05/03/18 22:01:03ID:???
あ、REQUEST_URIってので出来そうな気がしました。
0116nobodyさん05/03/18 22:36:14ID:???
>>100
ここはお前のチラシの裏じゃねぇ。
0117nobodyさん05/03/18 22:42:36ID:???
>>739
最後ギガワロスwwwwwwwwwwwwwwwww
義兄さんいいやつカッコイイwwwwwwwwww
↓の1とは大違いだwwwwwww
http://ex10.2ch.net/test/read.cgi/news4vip/1111083418/
0118nobodyさん05/03/19 17:26:13ID:???
>>116
お前のレスは、くだらねぇ質問ですら無いな。
チラシやろうか?
0119nobodyさん05/03/19 20:15:14ID:+syTbEnI
質問です。
PHPスクリプトからパスワード入力が必要なページにアクセスするのはどうやればいいんでしょうか?

[パスワード認証ページ]
pass.php ($_POST['pass']に対応した入力ボックスがある)
0120nobodyさん05/03/19 20:18:19ID:???
>>119
cURL使うのが楽でいいんじゃないか。
POSTで色々投げられるし。
012111905/03/19 20:29:22ID:???
>>120
レスどうも!
CURLというのは「libcurl」というライブラリですよね?
ちょっと調べてみます。
012211905/03/19 21:31:07ID:+syTbEnI
>>120
教えて頂いたcURLを使用して以下の様なコードを作成して実行したのですが
「ERROR!」が表示されてしまい、どうも上手く行きません…
スクリプトで指定したパスワードをコピー&ペーストで手動でボックスに入力して
ログインすると問題ないので、パスワードは間違ってないはずなのですが…
どこが悪いのでしょう??

-------------------------------
[access.php]
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'http://www.******.***.login.php');
curl_setopt($ch, CURLOPT_POST, 'test_pass');

curl_exec($ch);

curl_close($ch);
-------------------------------
[login.php]

if($_POST['password'] == 'test_pass'){
print("OK!\n");
}else{
print("ERROR!\n");
}
-------------------------------
0123nobodyさん05/03/19 21:42:05ID:???
>>122
curlは使ったこと無いからぱっと見の印象だけど、
passwordという文字がどこにも無いのにそれがPOSTで割り当てられるとは到底思えない。
そう思って本家のマニュアルを見てみれば、user notesにサンプルまであったよ。
012411905/03/19 22:04:12ID:???
>>123
そうですよね… アホなコード書いてしまってた…
以下で問題なくアクセス出来る様になりました。
どうもありがとうございました!

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'http://www.******.***.login.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'password=test_pass');

curl_exec($ch);

curl_close($ch);
0125nobodyさん05/03/20 00:17:39ID:Agj+ehs1
関数から配列をreturnする時って
ポインタのみ返される(=配列が巨大になってもコストは変わらない)
のでしょうか?
それともまるまるコピーされるのでしょうか?
0126nobodyさん05/03/20 01:09:28ID:???
ポインタとは少し違いますが参照渡しできますよ
0127nobodyさん05/03/20 01:42:16ID:HpwY0q6P
趣味の範囲でlinux自作鯖を立て、perlをwebで、あるいは、
鯖管理のスクリプトとして使ってました。
このたびphpを勉強しようと思うのですが、お勧めの書籍などあれば
教えていただきたいのですが。
0128nobodyさん05/03/20 01:53:14ID:???
PHP は公式マニュアルが使えるから、基本が分かってれば特に本を読む必要は無いと思う。
不安になったら既存のスクリプトを読むとか。
あとは何がしたいかによるけど。
■ このスレッドは過去ログ倉庫に格納されています