【PHP】下らねぇ質問はここに書き込みやがれ 66
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/03/16(日) 17:23:27ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 65
http://pc11.2ch.net/test/read.cgi/php/1203854597/
◆質問する時の注意
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を必ず明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくはトリップをつける事。
◆質問後の注意
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくは質問時のトリップをつける事。
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
004229
2008/03/18(火) 02:38:54ID:XUFQaekoなるほど
ありがとうございます
0043nobodyさん
2008/03/18(火) 03:16:50ID:???最後のを使いたいだけであれば
array_sliceかarray_pop(こっちは元の配列から削除する)を使えば良い
$last = array_slice($data,-1);
var_export($last,true);
$last = array_pop($data);
var_export($last,true);
var_exportはprint_rと使い方は一緒、ただ配列ポインタのresetを勝手にしてくれる
んで、>>28のコードは実際使ってるコードじゃないよね?
間に何らかの処理が入ったコードだと思うんだけど
そこらへんでなんか$recordとか弄ってないの?
0044nobodyさん
2008/03/18(火) 03:23:43ID:???やりたいのはこういう事だよね?
$data = array(
array(1,22,345345),
array(2,222,34532245),
array(3,223,34534125),
array(4,225,34532345),
array(5,226,31245345),
);
$lastRec = array();
foreach ($data as $rec) {
if (empty($lastRec)) {
$lastRec = $rec;
continue;
}
echo "前のキー:".$lastRec[0]."<br>\n";
$lastRec = $rec;
}
まぁやっぱり実際書いてる部分のコードを見ないと何ともいえないな
28の
$last_record = array_diff($record,array());
この部分の$last_recordと=の間が全角なのはおいといて・・・
0045nobodyさん
2008/03/18(火) 03:35:37ID:???自分で最小コード書いて検証しろ
で駄目だったら人に聞け
で、駄目だった最小コードをここに張れ
004628
2008/03/18(火) 04:41:34ID:???>$last_record = array_diff($record,array());
>この部分の$last_recordと=の間が全角なのはおいといて・・・
!!!
お恥ずかしい限りです。
まさにそこが代入できない原因でした。
こんなくだらないことに時間をとらせてしまいすいませんでした。
そして大いに助かりました。どうもありがとうございます。
0047nobodyさん
2008/03/18(火) 08:23:48ID:jD2oSeYGZendStudioでは出来たのですが、
PDTでは「PHP実行可能ファイル」という部分で、
ローカルのファイルしか指定できないようなので、
出来るのかどうかわかりません(><)
004822
2008/03/18(火) 09:52:16ID:npoe+Lzf誘導ありあがとうございます
これからそちらを利用させていただきます
0049nobodyさん
2008/03/18(火) 11:52:57ID:oLNpLuBrsqlite使おうとしているんだができない。
sqlを作成するプログラムを作ると
Fatal error: Call to undefined function sqlite_open()
というエラーがでる。
やったことは
php.iniに
extension=php_sqlite.dll
extension=php_pdo_sqlite.dll
extension=php_pdo.dll
という行を追加
dllファイルまでのパスも
extension_dir = "c:/php/ext"と指定し
それらのdllは全てフォルダの中に入っているのに
なぜか動作しない
もうググりまくって色々調べたけどわからない。誰かsqliteに詳しい人教えてください
0050nobodyさん
2008/03/18(火) 11:57:55ID:???Call to undefined function sqlite_open()
でググってみ
ググったほうが早いケースはググったほうがいいぞ
0051nobodyさん
2008/03/18(火) 11:58:41ID:???多分ロードの順序性
php_pdo.dll が php_sqlite.dll より前に必要だった気がする。
php_pdo_sqlite.dll は使ってないから知らない。
0052nobodyさん
2008/03/18(火) 12:03:14ID:???ロード出来てるかどうかは、phpinfoで見たほうが確実かと。
0053nobodyさん
2008/03/18(火) 12:18:50ID:oLNpLuBrありがとうございます。
php.iniの順序を変えたんですが、不可能でした。
なーんでできねえかなあ
0054nobodyさん
2008/03/18(火) 12:37:17ID:???0055nobodyさん
2008/03/18(火) 12:38:54ID:???phpinfo で Configuration File (php.ini) Path を確認。
http://jp.php.net/manual/ja/function.phpinfo.php
0056nobodyさん
2008/03/18(火) 13:56:46ID:???0057nobodyさん
2008/03/18(火) 14:41:35ID:nN03NNVP枠で囲むことってできるでしょうか?
セルを枠で囲むことは border でできますが、
<tr> に border を付けてもうまくいかなかった。。。
0058nobodyさん
2008/03/18(火) 15:10:26ID:???0060nobodyさん
2008/03/18(火) 15:38:13ID:???Web製作板で聞くといいよ。
0061nobodyさん
2008/03/18(火) 15:42:53ID:???喧嘩売ってんの?それとも馬鹿?
どっか逝けよ
0062nobodyさん
2008/03/18(火) 19:17:04ID:czwwJPYuphpを仕事にしたいのですが、
28歳からでも業界に入ることは可能ですか?
ちなみに、英検と簿記検定で1級は持っています。
例えば、海外のシステムをphpで作るとか、
会計系のシステムをphpで作るなどのお仕事の需要はありますか?
有識者の方教えて下さい。
0066nobodyさん
2008/03/18(火) 20:37:01ID:???実際にはTOEFLとらないとだめだけど余裕で海外の4年生大学へ留学できるぐらいのレベルなはず
0067nobodyさん
2008/03/18(火) 21:52:44ID:???IT業界は頭脳土方、頭よりも体力勝負
プログラムのプの字もわからない上司や経営者からは、品質よりもコストダウンだけを強いられる
ろくにテストもできずにバグが出たら開発部が上司や営業部からフルボッコ
成果報酬、実力主義、みなし労働で残業代ゼロの素敵な世界
0068nobodyさん
2008/03/18(火) 22:12:19ID:uQDfWjhjマニュアルに書いていたのですが下記の記述も複数呼び出しになりますか?
ちなみにバージョン5.22では動作しましたが今使いたい5.25で動作しません。
if($imgsize[2] == 1){
$image = imagecreatefromgif("${save_dir}$savefile");
$newimage = imagecreatetruecolor($newwidth, $newheight);
imagecopyresized($newimage,$image, 0, 0, 0, 0, $newwidth, $newheight,$imgwidth,$imgheight);
header("Content-type: image/gif");
imagegif($newimage,null,100);
} else if ($imgsize[2] == 2) {
$image = imagecreatefromjpeg("${save_dir}$savefile");
$newimage = imagecreatetruecolor($newwidth, $newheight);
imagecopyresized($newimage,$image, 0, 0, 0, 0, $newwidth, $newheight,$imgwidth,$imgheight);
header("Content-type: image/jpeg");
imagejpeg($newimage,null,100);
} else if ($imgsize[2] == 3){
$image = imagecreatefrompng("${save_dir}$savefile");
$newimage = imagecreatetruecolor($newwidth, $newheight);
imagecopyresized($newimage,$image, 0, 0, 0, 0, $newwidth, $newheight,$imgwidth,$imgheight);
imagepng($newimage,null,100);
}
0070nobodyさん
2008/03/18(火) 22:27:20ID:A85b11Lfローカルサーバ上では出来ているのですが、
なぜかレンタルサーバ(CORESERVER)上では出来ません。
renameが利かない原因ってあるのでしょうか?
007168
2008/03/18(火) 22:31:32ID:uQDfWjhj何のエラーも出ません…
ただ、わかるのは動作するサーバーとしないサーバーがある
くらいなのです…
0074nobodyさん
2008/03/18(火) 22:47:42ID:???実行してみるとDB Error: syntax errorと表示され困ってます。。
どこも悪くないと思うんですが・・・ よろしくお願いします。
<?php
require_once("DB.php");
略
$dsn = "$dbType://$dbUser:$dbPass@$dbHost/$dbName";
$conn = DB::connect($dsn);
if(DB::isError($conn)){
die($conn->getMessage());
}
$last_name =addslashes($_POST['last_name']);
$first_name =addslashes($_POST['first_name']);
$age =addslashes($_POST['age']);
略
if(preg_match("/windows/",$_ENV["OS"])){
$sql=mb_convert_encoding($sql,"SJIS","EUC-JP");
}
$result = $conn->query($sql);
if(DB::isError($result)) {
die($result->getMessage());
}
略
007670
2008/03/18(火) 22:51:44ID:A85b11Lf777にしているのですが、全く変わりません。
調べてみると、利用しているCORESERVERはセーフモードが有効だから
それでrenameに制限がかかっているみたいです。
対処法も全く分からないし、こんなことなら借りるんじゃなかった・・・
0077nobodyさん
2008/03/18(火) 22:54:51ID:???$first_name =addslashes($_POST['first_name']);
$age =addslashes($_POST['age']);
から
$sql = <<<EOS
INSERT INTO member
(
last_name,
first_name,
age
)
VALUES
(
'$last_name',
'$first_name',
$age
)
EOS;
です。
0078nobodyさん
2008/03/18(火) 22:56:00ID:???ああ、そうだった、そう言えば。ごめん。
でも共有でsafemodeじゃ無いところって殆ど無いし、あってもヤバそうなとこばっかじゃない?
0079nobodyさん
2008/03/18(火) 23:11:35ID:???ヒアドキュメントは使わないから分からんが、'が怪しくないか?
\入れないとダメな気が・・。
途中でechoしたらどうなる?
008068
2008/03/18(火) 23:11:39ID:uQDfWjhjWarningも出ません。
GDの問題も考えられますか?
GDはインストールされてますが基本的にサムネを作るなどの別箇所は
問題なく稼動しております。
0082nobodyさん
2008/03/18(火) 23:22:17ID:???それ、gifもjpegもpngも、いずれの場合もダメなの?
pngでheader吐いてないのも気になるんだけど・・。
008368
2008/03/18(火) 23:45:40ID:uQDfWjhjありがとうございますGDのバージョンはこうです。
GD Support enabled
GD Version bundled (2.0.34 compatible)
FreeType Support enabled
FreeType Linkage with freetype
FreeType Version 2.3.5
T1Lib Support enabled
GIF Read Support enabled
GIF Create Support enabled
JPG Support enabled
PNG Support enabled
WBMP Support enabled
XPM Support enabled
XBM Support enabled
JIS-mapped Japanese Font Support enabled
後、jpgでテストは行っております。
0084nobodyさん
2008/03/19(水) 00:19:58ID:???ファイルに出せるかどうか。
008568
2008/03/19(水) 00:42:40ID:2SyStzeCとりあえずheader以外の出力方法を探して書いて見ますが
知ってたら教えて下さい。
一応自分でも探してみてます。
008768
2008/03/19(水) 00:58:59ID:2SyStzeCあ、それならやり方わかります。
今からやってみます。
008868
2008/03/19(水) 01:23:58ID:2SyStzeC0089nobodyさん
2008/03/19(水) 02:10:58ID:aPCtWHEb調べるにはどうしたらいいですか?
0090nobodyさん
2008/03/19(水) 02:13:45ID:???0091nobodyさん
2008/03/19(水) 02:22:01ID:???009274
2008/03/19(水) 02:37:23ID:hGKuSH/Dちょこちょこ弄ってみましたがよけい酷くなって(笑)
難しい。。
0094nobodyさん
2008/03/19(水) 05:45:59ID:???このスレの中にも、実装系で飯食っている奴がいるんだよな。
こんなのばっかりだから、あっちこっちでシステムトラブルが発生するだよ。
0095nobodyさん
2008/03/19(水) 10:01:56ID:???0096nobodyさん
2008/03/19(水) 10:10:31ID:???派遣会社(ヤクザ)が経歴にゲタを履かせるのが常習化してるから。
3重派遣なんかになると、3回下駄がついて、初心者が中級者ぐらいの経歴になってしまう。
とうぜん、求められたものなんてこなせない。
解決したいなら、派遣なんて使うな。
0097nobodyさん
2008/03/19(水) 10:35:46ID:Git3E2u1CRYPT_MD5を有効(=1)にするにはどうしたらいいの?
再コンパイルすればいいのか?と思ったが、configureのオプションにそれらしきものは見当たらない・・
ちなみにPHP4.4.8 on Linuxです
0098nobodyさん
2008/03/19(水) 11:54:02ID:???ただの勘だけど、configureに LDFLAGS='-lcrypt' を渡したらよろしくやってくれるかも。
0099nobodyさん
2008/03/19(水) 12:10:02ID:Git3E2u1ありがとう.その後格闘の結果、なんとかなりました.
PHPを使わず、crypt()システムコールを直接呼ぶCのプログラム作ってみたらちゃんとMD5暗号化できたたので
そのプログラムをexec()でPHPから呼ぶことにします.
せっかく-lcryptを追加してみたら?とヒントをくれたので報告しておくと
Makefileの中ですでに定義されていました.
でもなぜCRYPT_MD5が有効になっていなかったのかは不明・・
0100nobodyさん
2008/03/19(水) 12:38:05ID:0Yuq8Q66あるhtml文字列が正しいhtmlかどうかをチェックしてくれる
スクリプトやモジュールはありませんか?
例えば
<div class="hoge">
ほげほげ
だったら<div>が閉じられていないのでおかしいという事を
返してくれるような機能が欲しいのですが。
知っている方いましたら教えてください。お願いします。
0101nobodyさん
2008/03/19(水) 12:38:37ID:???___
/ノ^, ^ヽ\
/ (○) (○) ヽ
/ ⌒(__人__)⌒::: l
⊂ ̄ヽ_| |
<_ノ_ \ /
ヽ ⌒,
/____,、ノ /
/ (__/
( ( (
ヽ__,\_,ヽ
(_/(_/
0102nobodyさん
2008/03/19(水) 12:46:39ID:???モジュールのconfig.m4を実行する順番の問題じゃない?
Makefileに書いてあってもext/standard/config.m4(多分)を実行する時点で
LDFLAGSに'-lcrypt'がないと意味ないよ。まぁ勘なんだけど。
あと、crypt()はシステムコールじゃないよね?。man 2 cryptしちゃったよ。
>>100
Tidyは?
0103nobodyさん
2008/03/19(水) 13:41:51ID:???この場合preg_match_allの第二引数には何をいれればいいんでしょうか・・・
0105nobodyさん
2008/03/19(水) 14:00:47ID:???すいませんorz
PEARを初めて使ったのですが、ほとんど理解できないままやっているもので・・・
HTTP_Requestで取得した文字列を第二引数に入れたいのですが、それをどうやるのかがわかりません。PEARで定義された変数でもあるんでしょうか?
0106php学習中 ◆CyaS/rIHbo
2008/03/19(水) 14:05:06ID:???PHPからMySQLにアクセスする際にID,パスワード,ユーザーネームが漏れてしまいます。
他のファイルから読み込むとしても、サーバー側の管理者に見られたりするように思えるのですが、
一般的にパスワードの管理はどうやってやるのでしょうか?
0107nobodyさん
2008/03/19(水) 14:06:37ID:???http_requestでぐぐればすぐでてきたよ・・・
pearで良く使われたりす物の使い方等は検索した方が早い
0109nobodyさん
2008/03/19(水) 14:09:44ID:???何のid,pass,ユーザ名?
何かサービス等を作ろうとしてて
DBに保存してるIDとかパスが見られるっていうなら
DBにハッシュを登録しておけばいい
ただそのハッシュ化の方法が解れば
サーバ管理者が勝手に登録しようと思えばできる
0110php学習中 ◆CyaS/rIHbo
2008/03/19(水) 14:17:07ID:???MySQLのid,pass,ユーザ名です。
MYSQLに接続する際や、SQLクエリを実行する際に使うのですが、参考書ではソースに直接書いていたものでして。
0112nobodyさん
2008/03/19(水) 14:27:34ID:???そんなの気にスンナ
それが嫌なら自鯖立てるか
VPSとか専用鯖借りて
自分でmysqlサーバ立てて
rootのパス設定すればいい
0113nobodyさん
2008/03/19(水) 14:29:19ID:???>参考書ではソースに直接書いていたものでして
それが普通と思うんだ
>サーバー側の管理者に見られたりするように思えるのですが、
鯖缶とはそういうもんだ
>>112
禿同
0114php学習中 ◆CyaS/rIHbo
2008/03/19(水) 14:33:00ID:???ソース剥き出しで普通なのでしょうか・・・
レン鯖なんですけど、怖いですね
とりあえず初心者なんで参考書通りやってみます。
0115nobodyさん
2008/03/19(水) 14:33:48ID:???0116nobodyさん
2008/03/19(水) 14:50:07ID:???最近は知識だけ豊富でそれを活かしてない奴が多いんだな
鯖管ならユーザー毎のID,PASSは知らなくてもDBやディレクトリ内を自由に触る事は出来る
そうじゃなかったらDB等に不具合が出たら対応が出来ないからな
そこは鯖管のモラルだ
信頼出来ないなら自分ですべてを構築すればいい
あとPHP自体はサーバー側で実行されてそれを返すからクライアント側にはどんなコードが実行されているのかは判らないぞ
まぁ、馬鹿やってHTML内にコードがそのまま残っているとかの馬鹿をしてしまえば意味は無いがな
んな変な部分に気を回すよりもっと大事な部分があると思うんだがなぁ
0117nobodyさん
2008/03/19(水) 15:03:40ID:???そうですか・・・失礼しました。検索はしているのですが理解できなくて。
自分の理解力の無さのせいですね。
もう一度きちんと調べてみます。ありがとうございました。
0118nobodyさん
2008/03/19(水) 15:04:31ID:???これ一発で鯖管なんて涙目だぜ
0119nobodyさん
2008/03/19(水) 15:25:32ID:???どんなショボい社内サーバだろうが、UPSくらいあんだろ。
0120nobodyさん
2008/03/19(水) 15:51:56ID:???sakuraの専用鯖は、1万円/月から利用できるし、それくらいの費用も稼げないのか・・・
0121nobodyさん
2008/03/19(水) 18:57:00ID:???ネット商売なんて運営してみないとわからないことばかりだからね。
0122nobodyさん
2008/03/19(水) 19:25:28ID:Q3E6mXW11、$x = $_SERVER["x"];
2、$x = $_ENV["x"];
3、$x = getenv("x");
のどれを使うのが適切なのでしょうか?
0123nobodyさん
2008/03/19(水) 19:27:44ID:???0124nobodyさん
2008/03/19(水) 19:37:56ID:???リモホ gethostbyaddr($_SERVER['REMOTE_ADDR']
ua $_SERVER['HTTP_USER_AGENT']
0125nobodyさん
2008/03/19(水) 19:47:27ID:???>リモホ gethostbyaddr($_SERVER['REMOTE_ADDR']
>リモホ gethostbyaddr($_SERVER['REMOTE_ADDR']
>リモホ gethostbyaddr($_SERVER['REMOTE_ADDR']
>リモホ gethostbyaddr($_SERVER['REMOTE_ADDR']
>リモホ gethostbyaddr($_SERVER['REMOTE_ADDR']
>リモホ gethostbyaddr($_SERVER['REMOTE_ADDR']
>リモホ gethostbyaddr($_SERVER['REMOTE_ADDR']
>リモホ gethostbyaddr($_SERVER['REMOTE_ADDR']
>リモホ gethostbyaddr($_SERVER['REMOTE_ADDR']
>リモホ gethostbyaddr($_SERVER['REMOTE_ADDR']
0129nobodyさん
2008/03/19(水) 19:57:39ID:???0131122
2008/03/19(水) 20:23:13ID:???レスありがとうございます。
サーバーによって取得できたりできなかったりする(?)ので、
if(!isset($_SERVER["HTTP_ADDR"])){$ip = getenv("REMOTE_ADDR");}
else{$ip = $_SERVER["HTTP_ADDR"];}
の様に合わせて使うという解釈で良いのでしょうか?
>>124
レスありがとうございます。説明不足ですみません。
リモートホストは、IPアドレスとリモートホストを>>122の方法で一旦取得してから
if($host == null || $host == $ip){$host = gethostbyaddr($ip);}
という様にしています。
0132nobodyさん
2008/03/19(水) 21:04:49ID:???http://up2.viploader.net/pic/src/viploader603856.jpg
0133nobodyさん
2008/03/19(水) 21:59:06ID:???ERROR: `phpize' failed
になります。
どうしたらphpizeが成功しますか?
0134nobodyさん
2008/03/19(水) 22:33:57ID:???1クロスサイトスクリプティング
2SQLインジェクション
これらの対策をすれば怖いもんなしですか?
0136nobodyさん
2008/03/19(水) 22:37:57ID:hGKuSH/D上手いお答えありがとうです。
まだまだ知識不足なのでもっと勉強しますね。
0137nobodyさん
2008/03/20(木) 01:34:09ID:FxALsn1Dmkdirを使って作成したフォルダの所有権がwww-dataであるため、
そのフォルダの中にFTPでアップロードできません。
chownをphpで実行し所有権を一般ユーザーに変更しようとするのですが
実行権限がないらしく変更できません。
www-dataから一般ユーザーに所有権を変更する方法を教えてください。
偉い人
0139nobodyさん
2008/03/20(木) 02:06:12ID:zGG3/JO8Linux red3 2.4.20-8 redhat 8 php 4.2.2
$NENDO_MLIST = array("19","18","17","16","15");
foreach($NENDO_MLIST as $key => $value ){
$nsts[$key] = NEN_CHK($value);
}
↑のループで格納される $nstsですが、NEN_CHK関数の戻りは配列で戻ります。
そうなると、$nstsも配列なので配列の中に配列がはいると思ったのですが、うまくいきません。
$nsts[$key] = NEN_CHK($value); 配列の中に配列をいれる命令は左記ではだめでしょうか?
0140nobodyさん
2008/03/20(木) 02:31:56ID:???return array($value);
}
$NENDO_MLIST = array("19","18","17","16","15");
foreach($NENDO_MLIST as $key => $value){
$nsts[$key] = NEN_CHK($value);
}
print_r($nsts);
入ってるみたいだけど?
■ このスレッドは過去ログ倉庫に格納されています