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

【PHP】下らねぇ質問はID出して書き込みやがれ 77

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/12/08(月) 01:27:39ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 76
http://pc11.2ch.net/test/read.cgi/php/1226517332/

◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0755nobodyさん2008/12/22(月) 06:24:37ID:???
例えばどれ?
0756nobodyさん2008/12/22(月) 06:31:15ID:???
いつから人力検索スレになったんだよ
はてなにでも池
0757nobodyさん2008/12/22(月) 08:53:52ID:Cwv0g3tM
通常、PDOって言ったら、それは
PECL::PDOのことなの?
0758nobodyさん2008/12/22(月) 08:59:25ID:Cwv0g3tM
mysql関数と、
mysqliと、

pear::DBと、
PEAR::MDB2と、

PECL::PDOと、

どれを使えばいいの?
0759nobodyさん2008/12/22(月) 09:04:29ID:Cwv0g3tM
mysql関数と、
mysqliと、

pear::DBと、
PEAR::MDBと
PEAR::MDB2と、

PECL::PDOと、

どれを使えばいいの?
0760nobodyさん2008/12/22(月) 09:15:50ID:???
動作効率を求めるならネイティブ関数
使いやすさや開発の効率など機能の利便さを求めるならライブラリ
0761nobodyさん2008/12/22(月) 09:20:53ID:Cwv0g3tM
http://www.google.co.jp/trends?q=MDB2%2CPDO&ctab=0&geo=all&date=all&sort=0

PDO一択かな
でもそれだと、mysqliが使えないんだけど、
みんな使ってないの?
0762nobodyさん2008/12/22(月) 09:25:01ID:???
PDOだけでおk
0763nobodyさん2008/12/22(月) 09:41:19ID:Cwv0g3tM
PDO 使うときに、
mysql_real_escape_string でエスケープしなければ
いけないのか、それとも、しなくていいのか、という議論ですが、

http://labs.cybozu.co.jp/blog/hata/archives/2005-10-04-1.html
このページを読む限りだと、

(1)
PDO::query() でいきなりSQL文を実行する場合
           ↓
SQLインジェクションの可能性があるので、
自分でmysql_real_escape_stringしなければならない

(2)
prepare()して、execute()する場合、
        ↓
SQLインジェクション対策を自動的にしてくれる
        ↓
mysql_real_escape_string 不要


=--------------------------
この理解で合ってますか?
0764nobodyさん2008/12/22(月) 09:57:12ID:???
あってるよ
0765nobodyさん2008/12/22(月) 09:57:50ID:Cwv0g3tM
「データーベースに格納するときは
htmlentitiesを使ってエスケープする」

という記事を読んだことがあるのですが、
これってマユツバですか?
0766nobodyさん2008/12/22(月) 10:00:35ID:???
>763
あってる。というか、可能な時はいつでもprepareを使え。

DB接続のパフォーマンスがどうしても問題になる場合のみ、しぶしぶmysql関数。
それ以外の場合はPECL::PDO(現在はPECLではなく標準ライブラリ)。
きちんとクラス構成ができていれば、書き換えはそれほど手間ではないので、迷ったらとりあえずPDOで書く。
0767nobodyさん2008/12/22(月) 10:14:36ID:???
>765
その本を燃やせ。というか、出版社を燃やせ。あり得ない。
「エスケープは、出力先に応じて適切なものを選ぶ」のが基本。
出力先はSQLなのだから、SQLとして安全になるようなエスケープを選ぶ必要がある。
DBに応じたエスケープ関数があるはずだからそれを使え。
たとえばMySQLならmysql_real_escape_string。SQLiteならsqlite_escape_string。
ttp://jp2.php.net/manual/ja/refs.database.php

とりあえずそれだと、'NULL OR TRUE'という入力には確実に無防備になる。
WHERE ID = $id
というプログラムに上記文字列がぶち込まれた時にどう動作するか考えてみるといい。
DROPやDELETE、UPDATEと組み合わせた文も上手くやれば発行可能かもしれん。
HTMLの実体参照はよりによってセミコロンを多用するしな。
ユーザー管理テーブルが書き換えられ、RDBMSのroot権限を奪取される事もじゅうぶんあり得る。
0768nobodyさん2008/12/22(月) 10:15:12ID:???
>>765
目的がSQLインジェクション対策でないからしなくていい
DBには生のデータを入れるのが基本
XSS等を意識するのは取り出す時
取り出す時に忘れるかもしれないから入れる時にエスケープする人もいるが
取り出す時にエスケープするのは当たり前なので
穴を防ぐ目的としてはいいかもしれないが根本的な解決にはなってない
0769nobodyさん2008/12/22(月) 10:17:41ID:???
>>765
それはPHPが進化する過程の中での話し
0770nobodyさん2008/12/22(月) 10:20:58ID:???
マユツバってなに?
0771nobodyさん2008/12/22(月) 11:27:37ID:YHC8UPCZ
一つ質問させていただきたいんですが
画像キャプチャによるフォームの認証のセキュリティについて
画像キャプチャの下にhiddenでその画像キャプチャの値を設定し
認証の時にユーザが記述した値とhiddenの値を照らし合わせるという
やり方はセキュリティー的に問題がありますか?

以前どこかのサイトで
生成された画像キャプチャの値とidを一度データベースに書き込み
hiddenには値ではなくIDを設定、
認証時にそのIDからデータベース検索を行い認証するやり方
を目にし上のやり方はセキュリティ的に問題あるのかなと
ずっと気になっています。
わかりにくい説明ですいませんがアドバイスよろしくお願いします。
0772nobodyさん2008/12/22(月) 11:29:20ID:???
【東京】都ホームページ、不正アクセスで障害
http://gimpo.2ch.net/test/read.cgi/wildplus/1229912492/
0773nobodyさん2008/12/22(月) 11:31:17ID:???
>>771
hiddenの値はHTMLのソース見れば
誰でも見れるよね。

つまり、スクリプト等でhiddenの値を
自動的に読み取るようにして、その値を
連続でぶちこまれたら、アカウント10万個とか
取られてしまうのではないかな?
0774nobodyさん2008/12/22(月) 11:33:23ID:???
>>771
金庫に鍵をさしっぱなしで一緒に置いておいても
問題がないならいいんじゃないの?
俺ならhiddenにいれずに簡易に済ませるならセッションに入れる
0775nobodyさん2008/12/22(月) 11:37:46ID:???
でもセッションの値ってたいてい
クッキーにも書き込んでるよね。

クッキーの値はクライアント側から読めるわけで、
もしアタッカーが、クッキーの値を読み取って、
自動的に連続入力するスクリプトをrubyで書いたら
やっぱりアカウント10万個とか取られてしまう。のでは?
0776nobodyさん2008/12/22(月) 11:44:22ID:???
>>775
クッキーに記録しなければいいだけじゃん
0777nobodyさん2008/12/22(月) 11:46:49ID:???
>>775
すまん、高度すぎて言ってる意味が分らん
クッキーに入ってるのはセッションIDだろ?
画像チャプタってたいがい都度生成だろうからその都度ID変わるし
都度セッションに値セットするなら仮に違うセッションID使われたとしても
セッションの参照先に値が無いからとおらないだろ
0778nobodyさん2008/12/22(月) 11:52:47ID:???
SIDやhiddenによるIDがそのまま認証鍵だと思い込んでいるのでしょうね
だから安全性に問題があるとは書いている
0779nobodyさん2008/12/22(月) 11:57:34ID:???
つかなんでルビー?
07807712008/12/22(月) 12:01:59ID:???
>>773
>>774
たくさんのアドバイスありがとうございます!
今独学でPHPを勉強してるんですが
アプリケーション作成時にXXSやSQLインジェクション、XSRFなど
どんな時にセキュリティを施せばいいかがすごい難しかったりします。
もう少し頑張って勉強してみます。
本当にありがとうございました!
0781nobodyさん2008/12/22(月) 12:04:39ID:???
いや、そのhiddenの値は、
ユーザーが手で入力すべき値と
同一なの?
0782nobodyさん2008/12/22(月) 12:11:23ID:e1MSnnKM
Parse error: syntax error, unexpected T_STRING, expecting ')' in /home/www/htdocs/index.php on line 70

上記のエラーが、”たまに”出ます。
70行目は、クラス変数(配列)を宣言している場所です。
var $prefs = array(
  '北海道', '青森県', '秋田県', …
          :
          :
  … '宮崎県', '鹿児島県', '沖縄県'
);
といった感じです。

一体なぜでしょうか?
毎回出るわけじゃなく、アクセスすると条件不明でたまに出るのです。
0783nobodyさん2008/12/22(月) 12:15:33ID:???
わからんから、とりあえず
配列の要素を1万個に増やして
F5しまくって実験
0784nobodyさん2008/12/22(月) 12:17:34ID:???
CAPTCHAで「12345」と出るとしよう。
hiddenに入れる値(以下、キー)に「12345」としたら何の意味もない。これは論外。

じゃあ、推測困難な計算方法で「12345」が導けるようなキーはどうだろう。
たとえば「23456」とか(これだと推測容易なんで、実際はもっと難しい計算を使うべき)。これは悪くない。

これを発展させて、crypt($salt . '12345')とかをキーにする。これも悪くない。まず破られないだろう。

ベストは、キーには「12345」とはまったく無関係の値を入れておき、キーと「12345」の関連付けはDBなどで行なう方法。
これだとDBのデータを知らないと絶対に両者を関連付けられない。

セッション・キーを発行しているなら、もうキーにできる値はあるので、新規に発行する意味もない。
キーとしてセッション・キーを使い、CAPTCHA生成時に「12345」をセッション変数としてサーバーに保存しておけばいいわけだ。
0785nobodyさん2008/12/22(月) 12:21:03ID:???
ちょい説明が足りなかったかな。
> これを発展させて、crypt($salt . '12345')とかをキーにする
この場合、キーから'12345'は算出不能になる。
答え合わせは、ユーザーの入力した「12345」を同じ方法でcryptして、両者が一致するかで行なう。
0786nobodyさん2008/12/22(月) 12:26:46ID:???
>782
Shift_JISでプログラムを書くな。
0787nobodyさん2008/12/22(月) 12:33:08ID:???
>>786
でも文字コードが原因だったら
「毎回」エラーが出るのでは?
0788nobodyさん2008/12/22(月) 12:38:02ID:e1MSnnKM
>>786
UTF-8ですよ
0789nobodyさん2008/12/22(月) 12:50:13ID:Cwv0g3tM
接続が成功したかどうかを知ろうと思って

<?php
$user="root";
$pass="abcde";
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
print $dbh;
?>

って書いて実行したら、

Catchable fatal error: Object of class PDO could not be converted to string in

ってエラーが出るのですが、
これを出力するにはどんな関数を使えばいいですか?

自分の予想だと1か0で返ってくるかと思ったのですが。
0790nobodyさん2008/12/22(月) 12:53:25ID:???
var_dump($dbh);
0791nobodyさん2008/12/22(月) 12:56:27ID:Cwv0g3tM
>>790
やってみたら、
object(PDO)#1 (0) { }

って返ってきました。これって、(0)の部分を
見ればいいの?0ってことは失敗してる?
0792nobodyさん2008/12/22(月) 12:57:56ID:???
>>791
つど偉そうに聞いていいスレ
0793nobodyさん2008/12/22(月) 13:07:26ID:???
ttp://jp2.php.net/manual/ja/pdo.connections.php
データベースへの接続に成功すると、PDO クラスのインスタンスが スクリプトに返されます。
この PDO オブジェクトが存在する間、 接続がアクティブであり続けます。

パスワードわざと間違えたのを入れて、もいちど var_dump($dbh);
07947712008/12/22(月) 13:29:14ID:???
>>781
そう考えてました。
掲示板の新規登録のところを作ってたんですが
個人情報を扱う場所じゃないから
そこまで厳しくしないでいいかなと思ってました・・
明らかに無知ですよね・・
もう少ししっかり勉強します。
>>784
丁寧な説明本当にありがとうございます!
色んな方法があるんですね。

アプリケーションでも様々な物があり
個人情報を登録してもらうフォームや掲示板の新規登録のフォームなど
各々でどこまでのセキュリティを施すべきかの判断が
本当に難しく感じます。
しっかり勉強しようと思います。
0795nobodyさん2008/12/22(月) 13:30:26ID:???
ちなみにどうやって?
07967712008/12/22(月) 13:48:07ID:???
>>795
先日PHPサイバーテロの技法という本を買って
今それを読みながらwebで一つ一つを調べています。

XSSにしてもXSRFにしても言葉と意味はなんとなく理解できたんですが
ただどんな状況下でそういった事が起こりえるのかが
理解できにくく苦労しています。
私自身以前はwebデザイン関係で働いてましたので
情報漏えいに対する危機感は理解しているつもりです。
それで今いい勉強の仕方を考えているんですがなかなか難しいですね。

私事ですいません。
0797nobodyさん2008/12/22(月) 14:10:18ID:???
http://raven-seo-tools.com/
ここのサイトなのですが壁紙は全て同じ色なのに
一部分だけ明るくなってます。
どうやってそれをやっているのでしょうか?
自分も真似をしたくて質問させてもらいました。
0798nobodyさん2008/12/22(月) 14:12:48ID:???
>>796
良い方法です。頑張って。
>>797
PHPと関係無し
0799nobodyさん2008/12/22(月) 14:21:03ID:???
>>797

>>1
0800nobodyさん2008/12/22(月) 14:21:35ID:???
>>797
seoのために2ちゃんで宣伝ごくろうさまです作者様
0801nobodyさん2008/12/22(月) 14:22:10ID:???
>>797
ttp://raven-seo-tools.com/css/img/bg.jpg
0802nobodyさん2008/12/22(月) 14:22:46ID:???
>>801
lol
0803nobodyさん2008/12/22(月) 14:23:24ID:???
> その本を燃やせ。というか、出版社を燃やせ。

精神に障害かかえてるのなら、病院行けよ。
0804nobodyさん2008/12/22(月) 14:23:44ID:???
最初からそういう画像だったのね
0805nobodyさん2008/12/22(月) 15:09:22ID:???
apache2.2→apache2.2.11
PHP5.2.6→PHP5.2.8と久々に更新したくて
↓ここのサイト参考に作業したんですがapacheが走ってくれません
ttp://2php.jp/php/install_php_windows.html#download

落としてきたPHPをフォルダ改名して現PHPフォルダに上書きが良くなかったのでしょうか
C:ドライブ直下に置いたphpフォルダ直下にあるphp5apache2.dllを読み込んでくれません

apacheのhttp.confには表記したのですが↓
LoadModule php5_module "C:/php/php5apache2.dll"

ttp://127.0.0.1/に繋ぐと"It Works!"と表示されます
0806nobodyさん2008/12/22(月) 15:16:15ID:???
休みに入りましたからね

大人しく本を買って来て読めw
0807nobodyさん2008/12/22(月) 15:18:38ID:???
It Works!

だったら動いてるんじゃないの?
0808nobodyさん2008/12/22(月) 15:24:51ID:???
の筈なんですが、ttp://127.0.0.1/phpinfo.phpに繋ぐと当然表示無し、
apacheスタートさせるとThe requested operation has failed!って言われます

とりあえず全部削除してもっかいやってみます、なんか使用変更とかで
やらなくて良い手順とか出てきたのかと思って聞いてみました、どうもです
0809nobodyさん2008/12/22(月) 15:28:06ID:???
>>805
>>808

>>1スレタイ嫁
0810nobodyさん2008/12/22(月) 15:29:24ID:AQe0W6WJ
すいません、表示してませんでした
ちなみにxpのsp3です
0811nobodyさん2008/12/22(月) 15:29:52ID:???
Apacheのエラーログを読め。
原因究明に必要な事はすべてそこに書いてある。
0812nobodyさん2008/12/22(月) 15:29:56ID:???
どうせphp5ts.dllとかその周りのdllを入れ替えてないんだろw
0813nobodyさん2008/12/22(月) 15:30:15ID:???
xamppにすれば?
0814nobodyさん2008/12/22(月) 15:42:16ID:???
>>812
入れ替えるとはどういうことですか?
0815nobodyさん2008/12/22(月) 15:59:34ID:???
2.2だったら2.2用のDLLじゃないとだめじゃん
0816nobodyさん2008/12/22(月) 16:12:54ID:???
>>814
D&Dで上書きする
0817nobodyさん2008/12/22(月) 16:24:37ID:???
>>775
自動化してアカウント取るなら別に他人のクッキー読むとか関係なくね?
0818nobodyさん2008/12/22(月) 16:46:37ID:???
>>789
接続に失敗したら PDOException を投げるのでそれを掴まえる
ちなみに件のエラーは「オブジェクトを文字列に変換できねぇよバーヤ」って事

http://www.php.net/manual/ja/pdo.construct.php
> try {
>     $dbh = new PDO($dsn, $user, $password);
> } catch (PDOException $e) {
>     echo 'Connection failed: ' . $e->getMessage();
> }
0819nobodyさん2008/12/22(月) 16:58:04ID:???
>>818
普通にifのほうが初心者向きなんじゃ・・
0820nobodyさん2008/12/22(月) 16:59:44ID:???
PDOを使って、UTF8で開発しているのですが、結果が文字化けしています。

・MySQLのテーブル等の文字セットは utf8_general_ci
・phpMyAdminを通して見ると化けていない
・mbstring系の設定は
mbstring.http_input:auto
mbstring.http_output:pass
mbstring.internal_encoding:UTF-8
mbstring.language:Japanese

スクリプト側から SET NAMES 系を発行するのはよくないと聞いています。
では何を使って解決すればいいのでしょうか。
よろしくお願いします。
0821nobodyさん2008/12/22(月) 17:09:03ID:Cwv0g3tM
>>820
skip-character-set-client-handshake
0822nobodyさん2008/12/22(月) 17:10:31ID:Cwv0g3tM
default-character-set = utf8
0823nobodyさん2008/12/22(月) 17:21:45ID:???
>>820
こんどからしっかり>>1をよくよんでIDを出すことをおすすめする
08248202008/12/22(月) 17:41:45ID:mD1ma74F
>>823
出し忘れてました。すみません。
>>821-822
ローカルではその方法で可能なのですが、本番のサーバーはレンタルなので、権限がないのです。
query メソッドで SET NAMES 系を発行する場合はやはり、プリペアドステートメントを使わないと問題ありますか?
データ検索のアプリケーションのため、SQLの条件節がリクエストされてからでないと確定せず、使いにくそうなのですが。
0825nobodyさん2008/12/22(月) 17:46:42ID:???
php.iniを書き換える権限が無いってこと?
0826nobodyさん2008/12/22(月) 17:47:27ID:???
my.cnfだっけ?
08278202008/12/22(月) 17:48:25ID:mD1ma74F
>>825-826
はい。
my.cnf は通常のレンタルサーバーでは書き換えできないですよね。
0828nobodyさん2008/12/22(月) 17:49:44ID:???
mysql_set_charsetを使う
0829nobodyさん2008/12/22(月) 17:52:00ID:???
前、mysql_set_charsetで指定しても効果なかった経験あるけど今はそれで設定できるの?
08308202008/12/22(月) 17:54:35ID:mD1ma74F
>>828
調べてみたのですが、どうも、mysql_connect();でオープンする必要があるみたいです。
PDOを捨てる or query()を使わずにプリペアドステートメントを使うか、の二択でしょうかね。
08318202008/12/22(月) 18:05:57ID:mD1ma74F
どうにも解決策が見つからないので、とりあえず頭のほうで $pdo->query("SET NAMES UTF8"); で設定しておいて、
以降のクエリの発行はすべて、プレペアドステートメントを使ってどうにかすることにします。

答えてくださった方、ありがとうございました。
0832nobodyさん2008/12/22(月) 18:14:09ID:AQe0W6WJ
>>811>>812

解決しました、ありがとうございました
0833nobodyさん2008/12/22(月) 18:29:33ID:???
>>831
それ意味なくね?
>>832
どう解決したか
08348202008/12/22(月) 18:38:27ID:mD1ma74F
>>833
SET NAMES 使っちゃうと、もしかしてプレペアドステートメントも使えませんか?
そうなると、mysql_set_charsetを使うためにmysql_* で自作クラスを組むしかないのでしょうか。
0835nobodyさん2008/12/22(月) 18:38:48ID:???
>>833

>>812の人の言うとおりでした orz
お騒がせしてすみませんでした
0836nobodyさん2008/12/22(月) 21:21:32ID:b0EzUWOb
php5.2.6@windowsなんだけど、
mb_eregにおける全角スラッシュの扱いがおかしい気がする。これバグ?
具体的には
mb_ereg('<a>(.+?)</a>(.+)','<a>abc</a>xyz',$reg);
は期待した値が$regに格納されてるけど、
mb_ereg('<a>(.+?)</a>(.+)','<a>abc</a>xyz',$reg);
にしたらダメ。どーなのこれ。
0837nobodyさん2008/12/22(月) 21:24:27ID:???
>836
ereg関数はマルチバイトに対応していない。
つうか、pregが完璧に上位互換だからpreg使え。eregはPHP6で標準関数から削除される(PECLへ格下げ)。
0838nobodyさん2008/12/22(月) 21:25:07ID:???
ってmb_eregか、ロクに読んでなかった
08398362008/12/22(月) 21:27:41ID:b0EzUWOb
そうそう。個人的にはpregの方が好きなんだけどね。マルチバイト使う時はしょうがなくmb_ereg。
ローカルルールがよく分からんけど、まだage続けたほうがいいのかな?
そちらでは正常に動きますかい?
0840nobodyさん2008/12/22(月) 21:28:49ID:???
この板には基地外しかいないから、ルールとか気にしたら負けだよ。
08418362008/12/22(月) 21:32:29ID:???
連投ごめん。
PHP5.2.6@CentOS5.2で全く同じソース↓を動かしたらまともに動きやがった。
windowsだとtrue1,false2がしゅつりょくされて、centOSだとtrue1,true2が表示される。ナニコレ

if(mb_ereg('<a>(.+?)</a>(.+)','<a>abc</a>xyz'))
echo "true1\n";
else
echo "false1\n";
if(mb_ereg('<a>(.+?)</a>(.+)','<a>abc</a>xyz'))
echo "true2\n";
else
echo "false2\n";

php-windowsのバグか?

>>840
そうかwww
08428202008/12/22(月) 21:40:42ID:???
しつこくてすみません。
いろいろ調べました。
結果、PDOには文字セットの変更は伝わらない、伝える手段がないようです。
(SET NAMES しちゃダメってこと……だと思う)。
おとなしく、mysql_* なり mysqli 系にします。

お騒がせしました。
0843nobodyさん2008/12/22(月) 21:42:41ID:UijRZ2Ey
すみません
初心者です。10日ほど前に圧縮ファイルをダウンロードさせる方法について聞いた者です。
http://www.phppro.jp/phpmanual/php/ref.zip.html
このページにあるZIPファイル関数というので、
ローカルでは完ぺきにできました。
が、サーバーでは動きません(php4)

エラーは
Parse error: syntax error, unexpected ')', expecting '(' in /〜〜〜〜.php on line 135

135行目は
if ($zip->open($filename, ZIPARCHIVE::CREATE)!==TRUE) {

これは、php4では動かないと理解したらいいのでしょうか?

php4でやる場合、フォルダを圧縮するのと、透過的書込みというのを
やる方法はあるのでしょうか?

あるいは、サーバーをphp5のところに引っ越したほうがいいのでしょうか?
0844nobodyさん2008/12/22(月) 21:54:52ID:???
予期せぬ)って書いてあるじゃん
そこのカッコの数があってたら、前の部分でカッコの数があってない
0845nobodyさん2008/12/22(月) 22:12:22ID:UijRZ2Ey
レスありがとうございます。
ローカルでは動いているので、カッコは合っていると思うのですが。
それなのにエラーが出るのは、
php4ではダメという意味かなと推測しましたが、勘違いでしょうか?
0846nobodyさん2008/12/22(月) 22:17:40ID:???
予期せぬ)って書いてあるじゃん
そこのカッコの数があってたら、前の部分でカッコの数があってない
0847nobodyさん2008/12/22(月) 22:18:49ID:???
>>845
勘違いも何も、まったく関係ないエラーメッセージが出てるのに「PHP4ではダメなのかな」っていう発想がずれてる。
出るとしたら Undefined function 〜 とかだよ。
0848nobodyさん2008/12/22(月) 22:27:31ID:UijRZ2Ey
すみません
135行目の数行前に
$zip = new ZipArchive();
これがありますが、これが悪いのでしょうか?
0849nobodyさん2008/12/22(月) 22:28:42ID:???
このスレにエスパーはいないので、スクリプトを全うpすればいいと思うよ。
0850nobodyさん2008/12/22(月) 22:29:52ID:???
とりあえず、zipが使えるのかphpinfoで確認したら?
0851nobodyさん2008/12/22(月) 22:32:53ID:UijRZ2Ey
すみません。
その前に、圧縮ファイルの中に書き込むデータを記述するところがあって、
そこが悪いことがわかりました。
$data = <<<MESSAGE
なんたらHTML
MESSAGE

この表記に何か問題あるでしょうか?


0852nobodyさん2008/12/22(月) 22:34:32ID:???
>>851
>>849
0853nobodyさん2008/12/22(月) 22:36:40ID:UijRZ2Ey
たびたびすみません
$data = <<<MESSAGE
なんたらHTML
MESSAGE

の中に、変数を入れているのが悪いのではと推測しますが、
HTMLのなかに変数を入れる場合、変数を""で囲むのでしょうか?
初心者ですみません
Perlでは囲まないような気が
0854nobodyさん2008/12/22(月) 22:38:16ID:???
>>853
>>849
0855nobodyさん2008/12/22(月) 22:40:02ID:???
エラーメッセージ読んでる?

Parse error: syntax error, unexpected ')', expecting '(' in /〜〜〜〜.php on line 135
'('があるべき場所に予期せぬ')'があります。
■ このスレッドは過去ログ倉庫に格納されています