くだすれPHP(超初心者用)3 at PHP
[2ch|▼Menu]
[前50を表示]
300:nobodyさん
08/01/21 00:37:42
レンタルサーバー(アイル)でセッションを使ってユーザ管理できる形で
スケジューラー作ってます。

最近利用している人から、見ていたらお前のログイン状態が出てきたぞと
言われ、キャプチャされた内容が送られてきました。
セッションは
session_start()
ではじめて
$_SESSION[id]
$_SESSION[pwd]
にデータを入れてます。セッションはブッキングすることがないと
聞いていたのですが、たった4人の利用でブッキングがあったため、
もしかすると

iクラスタでは、クラスタリング環境となっており、
セッションの使用、またflock, fcntl 等のロックは機能しません。
symlink, mkdir 等での代用いただくようお願いします。
とレンタルサーバーにはかかれていましたが、クラスタリング環境で
flock,fcntlが使えないことでこういう事が起きているのでしょうか?
ここがはっきりしないと、別のサーバーに切り替えてもらえないし、
自分が選んだサーバーでもプランでもないので板挟みで状態で困ってます。

301:nobodyさん
08/01/21 00:44:27
セッションは機能しませんってこれ以上なく明確に書いてるやん('A`)

302:nobodyさん
08/01/21 13:09:21
>>300
DB使えるならDBでセッション管理すれば?
別にそんなに規模大きいもんでもないんでしょ?

303:296
08/01/21 14:21:47
>>297
>>298
ありがとう

304:244
08/01/21 19:22:48 5H6OPrCr
過去の話掘り返してスマナイ。

>>253でmd5にして認証を行ったはいいが
HTTPヘッダ見たら暗号化した文が表示されてた。

これってこの文盗聴されてそのまま打たれたら結局意味ないじゃんって結果に。

参考にしたページ: URLリンク(jsgt.org)

Digest認証でここはやってますが
どうも不完全なまま終わってるようで続きが見当たりません。

実際にSSLを使わないで認証してる方はいないでしょうか?
自分しか使わないのでSSLの証明はいらないんですが、、、

305:nobodyさん
08/01/21 20:16:56 5H6OPrCr
連投スマソ

結構大きなネトゲのサイトでburp suiteでHTTPヘッダを見てみた。

IDとパスがそのまま表示された…。
これってこの部分盗聴されたらログインされるはずだよな…?と思って
mixiのhttpsでログインしてみた。

こちらは何も表示されなかった。


そのネトゲのスレ行ってみたらセキュアなしかよって散々叩かれてた。
こんなのもあるんですね。


一応報告まで。

306:nobodyさん
08/01/21 21:07:52
>>304
そりゃまんまじゃ駄目。
ワンタイムパスワードにでもしないと。

307:nobodyさん
08/01/21 22:07:39
>>305
ネ糞○

308:nobodyさん
08/01/22 00:42:56 Qziki4SA
すみません、phpを始めたいのにインストール段階で行き詰っちゃいました…
すごく初心者なので、書き方おかしかったらすみません。
・os
windows vista
・希望
apache_2.2.6-win32-x86-no_sslをインストールしたい
・困ってる事
「このインストール パッケージを開くことができませんでした。
パッケージが存在し、アクセスできることを確認してください。
またはアプリケーション ベンダに問い合わせ、この Windows インストーラ パッケージが有効かどうかを確認してください。」
が出てインストールできない。
・やった対策
vistaだと通常とは違うという事で色々と調べて「コマンドプロンプト」というやつを管理者の権限で開いてインストーラーを実行させました。
そうすると何回やっても上記のエラーメッセージが出ます。
なので「windows install cleanup」をダウンロードして開いてみましたが該当するものはなし。

無知なりに考えた原因は、何度も違うバージョンのapacheをインストール→アンインストールしたせいでインストーラが狂ったのかと…。
どうにかインストールしたいです。「ベンダ」に問い合わせる他に何かまだ出来る事があれば教えてほしいです。

309:nobodyさん
08/01/22 01:33:19
>>308
このあたりが関係しているのかも。
URLリンク(www.apachefriends.org)
> Windows VistaではC:\Programfilesのフォルダのパーミッションが限定されております。
> その為、通常のインストールではインストールが成功しない場合があります。
> xampp用のフォルダをCドライブの直下か、C:\userの下にxamppというディレクトリを
> 作成してご利用いただくことをお勧めします。


XAMPPだと、インストーラを使うタイプと使わないタイプがあるから、こっちで
試してみたらどうかな。全部がセットになってるから便利だし。

310:nobodyさん
08/01/22 07:54:00
今の時期は、出来ればVistaでやるのは避けた方が良い。

311:nobodyさん
08/01/22 11:52:06
>>306
ワンタイムパスワードを考えてみました。
データベースにpass1とpass2のあるテーブルを作る。
pass1はユーザーが決めたパスワードをmd5した物。

ログインページにアクセスした時点で
ランダムな文字列を発行。(例 ZztMHpWSD)
全てのユーザーのpass2を更新する(pass1 + ZztMHpWSD)

<input type="text" name="pass">
<input type="hidden" name="rand_pass" value="(ランダムな文字列)">

submit押すと
md5_func(document.formname.pass.value)+document.formname.rand_pass.value;

これでpass1+ランダムな文字列が渡されました。

これで送られてきた物をpass2で一致すればOK。
この処理はできました。

----続く----

312:nobodyさん
08/01/22 11:56:30 q9syKBOV
問題点

Aさんがログイン画面にアクセスしてログインの情報を入力してる最中に
Bさんがアクセスしてきました。

その場合また新しいランダムな文字列が発行され
データベースのpass2が更新されてAさんの hidden に入ってる物が違ってきます。

現在この状況でつまっております。
何か助言を頂けないでしょうか?

313:nobodyさん
08/01/22 12:03:57
> 全てのユーザーのpass2を更新する(pass1 + ZztMHpWSD)
すべてのユーザーのを更新する理由は何?
ログインとかログアウトする時に一人のユーザーのみを
更新してはいけないの?

314:nobodyさん
08/01/22 12:12:27 q9syKBOV
>>313
> すべてのユーザーのを更新する理由は何?
アクセスしてるユーザーがどのユーザーかわからないためです。

ログアウトした時に一人のユーザーを更新する場合
ログアウトする時にpass1+ランダムな文字列で更新

再ログインするためにランダムな文字列発行するわけにもいかないし、
ログアウトの時クッキーにランダムな文字列書き込んだ場合
他のパソコンでログインできなくなる。

一応こんな風に考えてます。

315:nobodyさん
08/01/22 12:28:18 q9syKBOV
古い物上げてきたんで一応悩みをまとめておきますね。

・ SSLをできれば使いたくない(証明とかいらない&節約)
・ HTTPヘッダを見るとパスワード丸見え(盗聴怖い)
・ md5で暗号化しても暗号化した物を盗聴されて打たれたら意味ない
・ ワンタイムパスワードを作って毎回パスワードを変更するが他のユーザー接続で失敗

こんなところです。

316:nobodyさん
08/01/22 14:19:06
節約とセキュリティーをあげるのは相反するものだぞ。一般論として。
金属探知機を設置せずに、拳銃の持込を完全に防止したいみたいな意味だ。

317:nobodyさん
08/01/22 14:40:45 q9syKBOV
>>316
私がしたいのは独自で作成した金属探知機を使用したいのです。
金をかければ有名ブランドの金属探知機で安心、安全でしょう。

私がほしいのは安全だけなのです。

未熟なので能力が伴うかどうかは別として。

318:nobodyさん
08/01/22 14:42:26
ユーザに負担思いっきりかけていいならPGPの秘密鍵暗号鍵みたいな仕組みにすれば?
可能か不可能かって話なら可能だろ

319:308
08/01/22 16:03:11
>>309
ありがとうございます!
今職場なので、帰宅したら試してみます。

>>310
避けたい気持ちでいっぱいです。
一応使えている人がいる様なのでもう少しいじり倒してみます。

320:nobodyさん
08/01/22 17:21:38 q9syKBOV
ざっとセキュリティ関連の記事をいくつか見てきたのですが
どうやらこのスレにいるレベルでは無理そうな感じがしてきました。

>>318
ユーザーに負担はやはりかけたくないですね…。
PGPをざっと見てどのような物かがわかったのですが
できればユーザーにはシンプルにログインさせてあげたいです。
(ID & PASS ぐらい)

とは言っても数人で使う程度の予定で、
一度ログインしたら自動ログインできるように設定したいので、

ログイン画面は
ID入力画面→(データベース内容変更)→pass入力画面→ログイン
この流れでいこうと思います。

これだったら全ユーザーのパスワードを変更しなくていいですし。
これでどうしても証明やユーザーの手間を削減する必要がでてきたら、SSL導入を考えます。

ありがとうございました。

321:nobodyさん
08/01/22 17:46:58
ワンタイムパスワードなのに自動ログインてw

322:nobodyさん
08/01/22 17:52:25
>>321
自動ログインは別の処理だろ?

>>320
素直にSSL入れておけ。
何に使うかよくわからんがSSLに慣れておく事も重要

323:nobodyさん
08/01/24 12:32:36 NF7q/+V1
はじめまして。

別サーバにあるファイルの更新時間を表示させるには
どうしたらいいのでしょうか?


324:nobodyさん
08/01/24 13:50:13
ファイルの更新日時はftp接続じゃないと取得できないような気がする。
URLリンク(always-pg.com)
ファイルの中身だけであれば、httpで
$file = file("URLリンク(........)");
見たいな感じでいけるけれど。

325:nobodyさん
08/01/24 15:19:32
別サーバにあるのが性的で、Webサーバ経由で読み出せるなら

get_headers("URLリンク(www.hoge.jp)");

とやって、last-modifiedの値を見る

phpファイルなら、そのファイル自身にfilemtime(__FILE__)とかで更新時を出力させればいいと思う

326:323
08/01/24 15:32:15 NF7q/+V1
ありがとうございます。
試してみます。

いろいろ探してみたところ下のように”HTTPヘッダーから拾う”という方法を見つけました。
これで「Wed, 23 Jan 2008 00:00:00 GMT」と表示されるのを、
JSTにして、「6:15 1/24 Thu 」と表示したいのですが、整形の方法がわかりません。
どなたかご教授ください。よろしくお願いいたします。



327:323
08/01/24 15:32:38 NF7q/+V1
<?php
$URL="http://対象ファイル";
$purl=parse_url($URL);
if(!$purl["port"]) $purl["port"]=80;
//開く
$fp=fsockopen($purl["host"],$purl["port"]);
//リクエストを送る
if($purl["query"]){
fputs($fp,"GET ".$purl["path"]."?".$purl["query"]." HTTP/1.0\n");
}else{
fputs($fp,"GET ".$purl["path"]." HTTP/1.0\n");
}
fputs($fp,"Host: ".$purl["host"]."\n");
if($purl["user"]) fputs($fp,"Authorization: Basic ".base64_encode($purl["user"].":".$purl["pass"])."\n");
fputs($fp,"\n");
//HTTPステータスラインを取得
$buf=fgets($fp,1024);
if(!strstr($buf," 200 ")) return(FALSE);
//HTTPヘッダを取得
//$finfo["HTTPヘッダ名"] に内容が格納される
while(!feof($fp)) {
$buf=chop(fgets($fp,1024));
if(!$buf) break;
ereg("^([^:]*): *(.*)$",$buf,$sbuf);
$finfo[$sbuf[1]]=trim($sbuf[2]);
}
echo $finfo["Last-Modified"];
?>


328:nobodyさん
08/01/24 15:46:09
>>326
echo date('G:i n/j D',strtotime('Wed, 23 Jan 2008 00:00:00 GMT'));
こんな感じで。下記参照。
URLリンク(jp.php.net)

329:323
08/01/24 16:57:23 NF7q/+V1
最後の行を
echo date('G:i n/j D',strtotime($finfo["Last-Modified"]));
としたら望みどおりの結果になりました!!!

ありがとうございました。

330:nobodyさん
08/01/26 03:19:27
俺は Last-Modified → Date → クライアントローカル って順にしてるな

331:nobodyさん
08/01/27 19:58:32
はじめまして。超初心者用という事でわからない事があったので質問してみます

YahooAPIを用いて画像検索を行い、検索された画像をクリックする事でその画像の類似画像を新たに検索して
Webページに表示させるPHPを作成しているのですが、クリックされた画像の色情報を取得する方法がわかりません。
画像のRGB値を求めて、その値に近い画像を表示させるつもりで現在考えています。
色の取得自体は一応できてるのですが下に処理を書きます
  $im = imagecreatefromjpeg($content);
  $img_w = imagesx( $im );
  $img_h = imagesy( $im );
  $cnt = $img_w * $img_h;
  $r = array();
  $g = array();
  $b = array();
  for( $i = 0 ; $i < $img_w ; $i ++ ){
  for( $j = 0 ; $j < $img_h ; $j ++ ){
  $rgb = imagecolorat($im, $i , $j );
  $r[] = ($rgb >> 16) & 0xFF;
  $g[] = ($rgb >> 8) & 0xFF;
  $b[] = $rgb & 0xFF;
  }
  }
  $index_r = intval( array_sum( $r ) / $cnt);
  $index_g = intval( array_sum( $g ) / $cnt);
  $index_b = intval( array_sum( $b ) / $cnt);
クリックされた画像に対してこの処理を行う方法がいまいちわかりません。
わからない事だらけなのですが何か助言を頂ければお願いします。

OS:WindowsXP
PHP: Version 5.2.5
ApacheVersion:1.3.26

332:nobodyさん
08/01/27 21:02:47
>>331
検索結果表示時に画像リンクを
img.php?src=hogehoge.jpg
こんな風にimg.phpを経由させれば
img.php内で画像のソース取得などできるけど

こういう風に出来ない場合は
javascriptとかで画像に対してクリックイベント設定して
そこから処理させるとかかな・・・・

333:331
08/01/28 11:07:03
>>332
遅くなりましたがレスありがとうございます。

事情があってjavascriptは使わずに処理をさせたいのですが
上の方法で少し考えてみます。
img.phpという別のphpを新たに作成してそこで処理をさせるみたいな感じでいいのでしょうか?

334:nobodyさん
08/01/28 11:31:46
PHPはPerlと比較するとオブジェクト指向プログラミングが
やり易いようになっているけれど、やはり、大規模な開発には
向かないとかいわれています。javaの方が良いと。
この理由は何処にあるのでしょうか。他のプログラムとの連携や
モジュール関連なのでしょうか。

335:332
08/01/28 11:46:04
>>333
あーごめんちょっとぼけてた
<a href="hoge,php?src=hogehoge.jpg"><img src="hogehoge.jpg" /></a>
こういう風なリンクにしちゃえば
hogehoge.php内でどの画像がクリックされたとか解ると思うんだけどどうかな?
このhoge.phpにsrc=hogehoge.jpgを渡してやることによって
hoge.phpにはどの画像がクリックされたかわかるし
どの画像がクリックされたか解ればあとは上のコードでなんとかなると思うけど


336:331
08/01/28 11:54:21
>>334
レスありがとうございます。
PHPだけでしたいのは他にも理由はあるのですがjavascriptはまだ全然勉強してないので・・・
でもPHPと連動させて作成するものが多いようなのでこれから勉強していきます

>>335
レスありがとうございます。
hoge.phpでそんなことができたのですね。一度やってみます
親切に教えてくれてありがとうございます

337:nobodyさん
08/01/29 22:16:32
無知すぎて申し訳ありませんが

URLリンク(www.harudake.net)

↑のようなRSSから自動的に画像を抜き出してサムネイル表示させるには
どのようにすればよろしいでしょうか?
参考になりそうなサイトや書籍があったら教えてください

338:nobodyさん
08/01/29 23:04:54
>>337
それは多分JavaScriptでやってる
んで、PHPでやるなら
まずRSSをパースして画像のURLを抽出する
抽出した画像をDLしてローカルに保存するor抽出したURLをそのまま使用
IMGタグを生成時に一定サイズ以上はサムネイル化する処理を実行
表示デ終わり

339:nobodyさん
08/01/29 23:40:56
>>338
有難うございました 早速実行してみたいと思います

340:nobodyさん
08/02/03 14:38:33
お聞きしたいのですが、PHPを実行した時画面の左上に?が必ず表示されていて
困っているのですがどうすれば無くなるのでしょうか?
日本語で表示させたくてPHP本体の文字コードをUTF-8にして毎回保存しています。
これだと文字化けはせず日本語は表示されるのですが必ず?が表示されます。
PHPを保存する時の文字コードを変更するのではなく、php.iniの設定を変えなければならないのでしょうか?

OSはWindowsXP。PHPはバージョンを確認すると5.2.5なのですが途中でバージョンアップしたのか
iniファイルはPHPとPHP4の二つあります。Apacheは1.3.26です。

ただPHPの環境作りは別の人がやってしまったので今いちどこを修正すればいいのかわかりません。
なんとか解決する方法を教えてもらえないでしょうか

341:nobodyさん
08/02/03 14:54:58
>>340
PHPのソースコードに変な記号を表示させる記述がないのであれば、
間違って?を書いてるとかの可能性が考えられる。
あと、実行後のhtmlのソースのどの部分に記述があるかによって、
推測する事になると思う。

<?php
echo "test!<br>";

と、あえて書いてみるとか。

342:nobodyさん
08/02/03 15:18:25
<?php
echo "test!<br>";

と書いてためしに実行してみましたが、?test!と表示されます。
色んなPHPで実行してみましたが必ず?がついてきます。
間違って?を書いているということは無いと思うのですが・・・

343:nobodyさん
08/02/03 15:51:00
BOM

344:nobodyさん
08/02/03 16:13:35
>>343
BOMというのは始めて知りました。ありがとうございます。
このBOMを削除するのにUTF-8nで保存すると直るようなのですが、普通のメモ帳ではUTF-8でしか保存できません。

function delete_bom($str)
{
if (ord($str{0}) == 0xef && ord($str{1}) == 0xbb && ord($str{2}) == 0xbf) {
$str = substr($str, 3);
}
return $str;
}

上のコードでBOMを削除できるそうなのですが。<?phpの処理の中で記述すればいいのでしょうか?
?が消えないのですが。本当にわからない事だらけで申し訳ありません

345:nobodyさん
08/02/03 16:16:54
エディタでUTF-8のBOM無しにするかUTF-8Nにすればおk

346:nobodyさん
08/02/03 16:18:30
悪いよく読んでなかったけど、要するに文字コード指定できるエディタ使えってこと。
メモ帳で開発は有り得ない。

参考:URLリンク(besunday.hp.infoseek.co.jp)

347:nobodyさん
08/02/03 16:22:16
>>346
ありがとうございます。まだ勉強し始めたばかりだったので(汗)

348:nobodyさん
08/02/04 00:53:06
あれ?bom無しは駄目なのか?
いつも秀丸使っててbom有りでスクリプト書いてたんだが…

349:nobodyさん
08/02/05 16:49:29
逆、BOM有りがダメ
予期せぬエラーが起きる

350:nobodyさん
08/02/05 19:30:27
あぁ、ごめん。逆だった…
bom有りで書いてたぜ。
具体的にどんなエラーが起きるの?

351:nobodyさん
08/02/05 20:27:52
基本的にEUCでbomは知らんかったんで秀丸でUTF-8で保存してみたけど?出ないな。
秀丸だと保存オプションもUTF-8Nとかもないしbom入らないのかな。
メモ帳でUTF-8で保存して実行したら ・ソtest!<br> みたいのは出た。

352:nobodyさん
08/02/05 20:48:26
秀丸でもBOMオプションあるな。
あんまり古いのだとないかもしれんけど。
これはphpが読み込んだときに自動的に削るべきもんかもね。

353:nobodyさん
08/02/05 23:51:41
秀丸、bom有り、bom無し で試してみた。
web 上では見た目上、変化無かったけど、
CLI で実行させたら、bom付きでは頭に 0x81, 0x45, 0xbf の3バイトがくっついてきた。

354:nobodyさん
08/02/06 00:11:29
>>353
そのくっついてくるのがアレ。
BOMつきUTF-8でファイル冒頭に

<?php
header("Content-Type: text/html; charset=UTF-8"); // 例。

なんてのを書くと「ヘッダ送ったあとでヘッダ変えたいとか、無理」と
PHPさんが優しく語りかけてくれる。

355:nobodyさん
08/02/06 00:16:53
なるほど。解ったよ。アンガト

356:354
08/02/06 00:24:06
書いてから気づいた。

> 頭に 0x81, 0x45, 0xbf の3バイト

0xef 0xbb 0xbf の3バイト(>>344参照)、じゃないのね。

357:nobodyさん
08/02/07 16:59:49 d+qc2qYD
チェックボックスでチェックされていたらチェックさせたいです
POSTのデータと一致してるかどうかでforeach書いてるんですけど
なんとなく無駄な感じがしてます…
いい書き方ってありますか?

foreach ( $hoge as $k => $v ) {
$checked = "";
if (isset($_POST['hoge'])) {
foreach ( $_POST['hoge'] as $key ) {
if ($key == $v) {
$checked = " checked=\"checked\"";
}
}
}
echo "<input name=\"hoge[]\" type=\"checkbox\"$checked value=\"$v\" />\n";
}


358:nobodyさん
08/02/07 17:42:05
>>357
こーかな?判定は一行にもできるけど逆に見づらいし。

foreach ( $hoge as $k => $v ) {
    $checked = "";
    if( is_array($_POST['hoge']) && array_search($v, $_POST['hoge']) != FALSE ){
        $checked = " checked=\"checked\"";
    }
    echo "<input name=\"hoge[]\" type=\"checkbox\"$checked value=\"$v\" />\n";
}

359:nobodyさん
08/02/07 17:44:38
でも$v素通りはあんまよくないな。

360:357
08/02/08 13:26:21
>>358
array_searchなんてあったんですね!
ありがとうございます

>>359
素通りとは…?

361:nobodyさん
08/02/08 13:37:59
$v を validate しろって事だよ。
359 はクロスサイトスクリプティングの可能性を示唆してるんだろ。

362:357
08/02/08 17:52:07
なるほど。
これは例なのでいれてないだけです。
$vはこっちで作成してる配列なのにな〜と思って。

ちなみに358は
!= FALSE ではなく !== FALSE ですね

363:nobodyさん
08/02/08 18:47:04
それが確実。

364:nobodyさん
08/02/09 01:31:23
つーか何で毎回is_arrayでチェックするんだよ


365:nobodyさん
08/02/10 18:46:39
フォームで入力した内容に " が含まれる場合、
それをそのまま出力したら\"となるのですが、
どうすれば\をつけずに表示や保存できるんですか?

366:nobodyさん
08/02/10 19:57:48
magic_quote_gpcをoffにする

367:nobodyさん
08/02/10 20:08:37
エー
それしか方法ないのですか?

368:nobodyさん
08/02/10 20:10:21
あるよ

369:nobodyさん
08/02/10 20:19:51
お願いします

370:nobodyさん
08/02/10 20:42:46
>>369
URLリンク(jp.php.net)

371:nobodyさん
08/02/10 20:43:34
>>369
URLリンク(jp.php.net)

372:nobodyさん
08/02/10 21:12:31
どうもです!解決しました。

stripcslashes(htmlspecialchars())っていう風につかったんだけどこれでいいのかな

373:nobodyさん
08/02/10 21:21:05
>>372
順序は逆の方が良くないか?

374:nobodyさん
08/02/10 22:06:12
ああ、phpには
"はフォームを通すと\\\"として送られてくるんですね
だから先に勝手につけられたスラッシュを消して
htmlspecialchars(stripcslashes($a, ENT_QUOTES)) とやれば"も'もHTML上できちんと表示できるようになりますね
勉強になりました

375:nobodyさん
08/02/10 22:35:31 rhutwfEM
PHPないにプリントタグを使いたいんですが、
<BODY>
<?php
print <table>
print <tr>
<td>print"値"</td>
<td>print"値2"</td>
<td>print"演算"</td>
<td>print"答"</td>
print </tr>
print </table>
?>
</BODY>
</HTML>
だと、エラーがでます。だれかご教授ください・・・

376:nobodyさん
08/02/10 22:37:08
>>375
参考ページをよく見て
違いを調べろw

377:nobodyさん
08/02/10 22:39:38
ワロタw

378:nobodyさん
08/02/10 22:40:35 rhutwfEM
>>376
すいません、テーブルタグでした。
申し訳ありませんが、参考ページを教えてくれますか?

379:nobodyさん
08/02/10 22:43:46
>>378
どこでもいい。さがせw

380:nobodyさん
08/02/10 22:48:34 rhutwfEM
>>378
わかりました。もう一日考えます。。。


381:nobodyさん
08/02/10 22:48:39
基礎ってレベルじゃねえぞww

382:nobodyさん
08/02/10 23:21:00
糞ってレベルだ

383:nobodyさん
08/02/10 23:54:56
ひょっとしてこういう事がしたいのか?
だとしたら文法根本的に間違えてるだろうに。

<BODY>
<table>
<tr>
<td><?php print"値";?></td>
<td><?php print"値2";?></td>
<td><?php print"演算";?></td>
<td><?php print"答";?></td>
</tr>
</table>
</BODY>
</HTML>

384:nobodyさん
08/02/11 00:20:01
なんというか…wwwwwww

解った後でもう一度このスレに来て自分の書き込み見てみろw

385:nobodyさん
08/02/11 03:49:39
携帯とPCの振り分けをしたく思い
URLリンク(blogn.hustle-user.com)を参考にして、

index.htmlをindex.phpにリネームして、先頭に
<?php
$title="○○";
$page_e='URLリンク(www.)<)○○/m/index.html';
$page_i='URLリンク(www.)○○/m/index.html';
$i=$_SERVER['HTTP_USER_AGENT'];

require_once('agent.txt');

?>
としました。そして携帯からアクセスしたところ無事振り分けることが出来ました。
しかしPCからみたら外部のcssを読み込んでいないようでページレイアウトが崩れてしまいました。
相対パスなのがいけないと思って、
<link href="http://○○/css/global.css" rel="stylesheet" type="text/css" />
と、絶対パスに書き換えましたが改善しませんでした。
そしてさらにわからないことに、ブラウザ(Sleipnir)で何回も読み込んでいると
5回に一階ぐらいきちんと読み込んで表示されるのです。

どういうことなのでしょうか。もしかしてphpの問題じゃなくhtmlの問題でしたら板違い申し訳ありません。


386:nobodyさん
08/02/11 04:14:40
問題の切り分けオヌヌメ

387:nobodyさん
08/02/11 05:29:22
そのコードでどうやったら振り分けられる方が興味あるなw

388:385
08/02/11 05:49:50
>>386
問題の切り分けですか。
まずCSSのパスは間違ってませんでした。

htmlや画像のリンクは相対パスでも問題なく通ってるんで
もしかしたらパスの問題ではないんでしょうか?

となると。。文字コードとかでしょうか・・?
ちなみにphpもcssもS-Jis、改行コードはCR+LFでした。


>>387
ふ、振り分けられないですか?
サイトを参考にしつつやってみたのですが・・


389:nobodyさん
08/02/11 10:01:19
俺は>>387では無いが。
page_e, page_j, page_i 全部URLが一緒な件

390:nobodyさん
08/02/11 11:04:25
>>389
いや、それは別にそういう作り方もあるから別にいいけど
そもそも参考したっていうサイトの内容が突っ込みどころが多すぎて…


391:nobodyさん
08/02/11 11:10:17
URLリンク(blogn.hustle-user.com)
の処理に、腹抱えてワロタ

392:nobodyさん
08/02/11 11:13:06
>>388
そこのサイトのはあんま参考にならんから別の探せw
あと火狐+火虫いれてCSSが適用されてるか確認しろ

393:385
08/02/11 17:22:49
返事が遅くなってしまい申し訳ありません。
>>389
あ、それはケータイのキャリア別に振りわけていないからです。。。
基本はみんなパソコンのメインサイトのindex.phpにアクセスしてもらって
ケータイの人は別のサイトに飛んでもらうってことで。。

なんか参考にしたサイトがまずかったようで。。。
もしおすすめなどあれば教えて頂けると嬉しいです。

>>392
firefoxはいれてないんで、今からいれて確認してみます。
ところで、火虫とは・・・?

394:nobodyさん
08/02/11 17:30:47
> ところで、火虫とは・・・?
水虫のライバル。


395:nobodyさん
08/02/11 17:57:57
火虫=FireBug

396:385
08/02/11 17:59:06
firefoxでみたところ問題なく見れました!

となると、IE側の問題になるのでしょうか?

そして火虫はわかりませんでした><

397:385
08/02/11 18:13:19
firefoxのアドオンでしたか。ありがとうございました。

398:nobodyさん
08/02/11 20:29:28
fopen追記モード('a')で開いたファイルに追記したいとき
どうすれば改行してつなげていけますか?
たとえば
$fh = fopen($file, 'a');
fwrite($fh, "test\n");
としても改行してつないでくれません

399:nobodyさん
08/02/11 20:42:17
改行してつなげるんだから、
fwrite($fh, "\n");
fwrite($fh, "test");
だろw

400:nobodyさん
08/02/11 22:35:00
>>399
それでもできてませんよ
ためしてください

<?
$file = "test.txt";
$fh = fopen($file, 'a');
fwrite($fh, "\n");
fwrite($fh, "test");
fclose($fh);
?>

いやあ納得いきませんね
いちおうtest\nとやって書き込んで、ファイルを見ると最後は改行されている。
なのに書き込むときはなぜ改行されたところから始まらないのですか?

401:nobodyさん
08/02/11 23:06:13
\r\nではどうだい?
もしくは 'ab'

402:nobodyさん
08/02/11 23:07:39
あごめんabは勘違い。

403:nobodyさん
08/02/11 23:17:32
だめですね

404:nobodyさん
08/02/11 23:24:11
あれ、いや
できてました
どうもでした

405:385
08/02/11 23:42:52
解決しました!!

CSSの文字コードをきちんとしていなかったのが問題だったようです。
CSSの先頭に
@charset "shift_jis";
といれると解決しました。

phpじゃなかったですね。申し訳ないです。

406:nobodyさん
08/02/12 03:40:48
>>385,398
  ,......,___                ___  お前初めてかここは?
  {  r-}"'';                    (,- ,_'',;  力抜けよ
__ノYv"-ァ'=;}                  ,_、 Y' リ''ー
  ヽー-ハ '、                 / キ}、 {"ー {⌒
  ト ハ  }      ,. -ー─-- 、___ /   ハノ`{  {
 ! ! !__! ,-、_    ,,( ,        ̄`ー、 /"''ー;ー'"
 |___|! !ー-ニー、;、;'""ノ';{  iー       ヽ=ニ=),..- '"
 K \ヽ !`ーニ'-、{  (e 人  |' ̄ ̄/`ー!  | /   /⌒
  \ヽ !、ヽ, "")ー-'"| !  |   |  /!  |___{,、  /  /
    \"'ヽ'ー-"  _! ||  }   ー─|  | / ヽ/  /
ニ=ー- `!!!'     ''''ー'"{  |     |  /  /`ー|\/
ーーーー'        _ | ./      ヽ__ /  | !


407:nobodyさん
08/02/18 19:07:50
すみません下らない質問なのですが
<?php
$mysql=mysql_connect("localhost","user","password");
if(mysql_select_db("dbname", $mysql)){
print "OK";
}else{
print "NG";
}
?>
このようなソースを書いて(user passはサーバーのもの)
PHPとMYSQLがちゃんと動いているのか確認をしようとしたのですが
画面が真っ白になってエラーも帰ってきません。
PHP php-5.1.6-1.6
mysql mysql-5.0.27-1.fc5
FedoraCore5で
php-mbstring php-mysql php-gd php-devel mysql-serverなども全部入れています。
解決方法ご指南ください



408:nobodyさん
08/02/18 21:17:53
>>407
display_errors = on

409:nobodyさん
08/02/18 22:25:40
それとコンソールを試してみて
パスワードが通っていない感じのエラーが出ていました
ただ、パスワードは合っていて
コンソールで mysql -u user -pでログインが出来ている状態です
/etc/hosts にもデータベース名は記述してあり(localhost)
なんで通らないのかわからなくなっています

今まで使っていたときは大丈夫で
突然この状態になってしまいました。

どなたかお願いします…

410:nobodyさん
08/02/19 02:56:13
それだけの情報で聞いたって誰も分からない

411:nobodyさん
08/02/19 10:06:45
すみません、質問です。
PHPには、.NET Framework の ADO.NET のように、自作した csv ファイルに SQL 文で
データを抽出することは可能なのでしょうか。
以下のサイトのような感じで動かす場合です。
URLリンク(park5.wakwak.com)

一般的なテキストファイルを開いたり、書き込んだりする方法とは別という意味です。
こういった方法以外でという意味です。
$fh = fopen("csv.txt", "r");
$line = fgets($fh, 1024);
// ここで$lineの条件を調べる。
fclose($fh);

ヒントとなるキーワードでもいいので、お願いします。

412:nobodyさん
08/02/19 10:26:38
PEAR::Structures_DataGrid_DataSource_CSV   ・・か?

413:nobodyさん
08/02/19 12:43:40
>>410
よく情報が足りないといわれるのですが
どこら辺が足りないですか
>>407でバージョンやOSも書いてますが
エラーはサーバーから離れていたので書けなかったですが

後学のためにもお願いします

414:nobodyさん
08/02/19 13:02:22
>>413
そういうところ

415:nobodyさん
08/02/19 14:47:53
>>412
ありがとうございました。

416:nobodyさん
08/02/19 19:38:04
変テコなPHP Shell見つけたんだがどう思う?
URLリンク(kissho.xii.jp)

417:nobodyさん
08/02/19 20:44:23
>>416
よくわからんが、こんなコードがある時点でろくなもんじゃない
if(file_exists("B:\\")){
echo "<center><a href='./$this_file?dir=B:\\'>B:\\</a></center>";
} else {}
if(file_exists("C:\\")){
echo "<center><a href='./$this_file?dir=C:\\'>C:\\</a></center>";
} else {}
if (file_exists("D:\\")){
echo "<center><a href='./$this_file?dir=D:\\'>D:\\</a></center>";
} else {}
if (file_exists("E:\\")){
echo "<center><a href='./$this_file?dir=E:\\'>E:\\</a></center>";
} else {}
if (file_exists("F:\\")){
echo "<center><a href='./$this_file?dir=F:\\'>F:\\</a></center>";
} else {}
if (file_exists("G:\\")){
echo "<center><a href='./$this_file?dir=G:\\'>G:\\</a></center>";
} else {}
if (file_exists("H:\\")){
echo "<center><a href='./$this_file?dir=H:\\'>H:\\</a></center>";
} else {}


418:nobodyさん
08/02/21 03:11:11
ShiftJISのCSV形式を読んで、EUC文字コードに変換したいんですが、
Windowsの拡張漢字(IBM拡張やNEC拡張)や、外字領域も
きっちり対応してくれるような、関数とかないんでしょうか?


419:nobodyさん
08/02/21 03:39:48
そんなマニアックな文字まで対応してる関数はない

420:nobodyさん
08/02/21 04:46:45 uBvv/k1H
すみません、質問です。。。
XAMPPをインストール後に以下の手順でエラーがでてしまうのですが、何が原因なのでしょうか???

1. Terminal shellに行って、システム管理者ルートでログインします。
sudo su

2. XAMPPをスタートするには、このコマンドをコールしてください:
/Applications/xampp/xamppfiles/mampp start

ここで、このような感じのエラーメッセージがでていまいます。
(No such file or directory, errno = 2)
XAMPP: Error 133! Couln't start ProFTPD!

ちなみにこの段階でXAMPP Control Panelを起動しようとすると「このシステムとは互換性がないためアプリケーションを起動できません」とメッセージが出てしまいます。

OSはMacOSX.2.8で、インストールしたのがXAMPP Mac OS X 0.7.2です。PHP使用以前の問題で恐縮ですがとても困っていますのでどなたかよろしくおねがいします。

421:nobodyさん
08/02/21 08:00:49
This version is for Mac OS X 10.4 (Intel&PPC) and higher.

422:420
08/02/21 15:40:03 uBvv/k1H
ガーン。。。ということはXAMPPは使えないのですネ。
ありがとうございました。。。

423:nobodyさん
08/02/21 20:36:09
xamppなんて使うなや

424:nobodyさん
08/02/21 21:13:13
それをいうのなら、Macなんて使うなよ。が正しい。

425:nobodyさん
08/02/21 22:15:59 FbPK8kbc
現在携帯メール(添付画像付き)をメールサーバーから転送させて、PHPで処理してDBに保存するということをやろうとしてるのですが、
なぜか本文とか件名が化けてしまいます。

文字化け
「あ」→「$B$"(B」

このサイトを参考にしてます。
URLリンク(www.phppro.jp)

改行コードが「LFのみ」にしてるからかな?と思うのですが、わかりません。
ご教授お願いします。

426:nobodyさん
08/02/21 22:17:02
Winよりはマシだけどな(PHPインストール環境として)

427:nobodyさん
08/02/21 22:19:36
>>425
文字コードを変換しなされ

428:nobodyさん
08/02/21 22:29:31 FbPK8kbc
>>427

sjis,EUC,utf-8に変更したんですが、何も変わりません。。。

429:nobodyさん
08/02/21 22:37:31
意味がわからん

430:nobodyさん
08/02/21 22:40:10
つ mb_decode_mimeheader, mb_internal_encoding

431:nobodyさん
08/02/21 22:56:44 FbPK8kbc
すみません。意味不明で。。。

とりあえず33行目から変更してみたんですが、今度はなにも表示されなくなってしまいました。

33 switch(strtolower($structure->ctype_primary)){
34 case "text": // シングルパート(テキストのみ)
35 $diary_body = $structure->body;
36 $diary_body = mb_decode_mimeheader( $diary_body , 'ISO-2022-JP');

あと言い忘れたんですけど、スクリプトはSJIS、DBもSJISでやってます。

432:nobodyさん
08/02/21 23:00:32
本文ならmimeheaderじゃねーし。
header見て文字コードが何か確かめてSJISに変換しなされ

433:nobodyさん
08/02/21 23:10:41
あとスクリプトSJISで書くのは今すぐやめろ

434:nobodyさん
08/02/21 23:14:40 FbPK8kbc
SJISで書いちゃ駄目なんですか!?
すみません!!

あと>>432さんの書き込みの意味がわかないんですが、具体的にはどうすればいいんでしょうか?


435:nobodyさん
08/02/21 23:57:05 FbPK8kbc
自己解決できました。
ご迷惑欠けて申し訳ありませんでした。

436:nobodyさん
08/02/26 00:15:23
>>431
可能です。
以上。
はい、次。

437:nobodyさん
08/02/26 22:29:16 8JcMjBPY
for ($i=0, $n=100000000; $i<$n; $i++ ) {
$str = $i;
}

こうすると$strには0〜99999999が入りますが、a〜zzzzzzzzまでを$strに入れるにはどう書けばよいのでしょうか?

438:nobodyさん
08/02/26 23:24:57
アルファベット進数?つまり26進数とかになるのか。
aを0、bを1、cを2・・・て対応させればとりあえず入るな。


439:nobodyさん
08/02/27 00:33:52
for ($i='a', $n='zzzzzzzz'; $i<=$n; $i++ ) {
$str[] = $i;
}

440:nobodyさん
08/02/27 04:32:26
>>473
パスワード総当り攻撃の相談でつか?

441:nobodyさん
08/02/27 04:36:01
1桁増やすごとに計算量が莫大に増加していく恐怖を味わうとよいわ

442:nobodyさん
08/02/27 13:31:31
>>439
ネタかと思ってやってみたら本当に動きました
文字列をプラスするとこういうことになるんですね
ありがとうございました

443:nobodyさん
08/02/27 17:43:11
質問です!
「form.html内のinputタグで送信した値をpost.php内の<?= $_post["abc"]  ?>で表示させる。」
ですが、

「phpファイルではなく、htmlファイル内で表示させる」
にはどうすればいいのでしょうか?

1回の入力で、複数ページ共通ヘッダの「更新日」が変更できたらいいな、と考えております。
きっと超基本的な事柄なのでしょうけれど、ネット上でもなかなか見つからないので...。

よろしくお願いします。

444:nobodyさん
08/02/27 19:05:32
Webサーバの設定で拡張子「.html」もphpで動くようにして<?= $_post["abc"] ?>

445:nobodyさん
08/02/27 19:12:22
444>>
なるほど、設定が必要なんですね。
助かりました。
ありがとうございます。

446:nobodyさん
08/02/27 20:15:02
>>445
SSIって手もあるよ

447:nobodyさん
08/02/27 20:37:33
>>446
ありがとうございます。
勉強してみます!

448:nobodyさん
08/02/28 00:23:44
ど素人の質問です。
以下のPHPを作ったところ、画面が真っ白になりました。
真っ白=エラー無しと思い、tablenameを確認したところデータが入っていませんでした。
>>407と同じエラーかと思い、>>408を確認したところONになっていました。
自分では原因がわからないため、どなたかご指摘願えないでしょうか。

<作っているつもりのもの>
別ページのフォームから送信(reg)されたデータを、データベースに入れるPHP。
環境…SQL=PostgreSQL OS=Linux PHP=5.2.5 
確認…FireFox
$con = pg_connect('dbname host user password');
$a = $_POST["a"];$b =$_POST["b"];$c = $_POST["c"];
if(isset($_POST["reg"])){
$sql = "select max(log) from tablename";
$result = pg_query($con,$sql);
$array = pg_fetch_array($result);
$new_log_no = $array[0] + 1;
$sql = "select current_timestamp";
$result_date = pg_query($con,$sql);
$in_date = pg_fetch_array($result_date);
if(isset($_POST["b"])){ $d = $b; } else { $d = $c; }
$sql = "insert into tablename (log,a,d,_in_date)
         values('$new_log_no','$a','$d','$in_date')";}
else{ header("Location: menu.php"); }
if(!$result){ echo "送信に失敗しました";}


449:nobodyさん
08/02/28 00:40:01
Apacheのログは?
あとプログラムのどこまで実行したら真っ白になるか切り分けてみたら?

450:nobodyさん
08/02/28 01:14:23
>>449
レスありがとうございます。
AccessLogはこうなっていました。
127.0.0.1 - username [28/Feb/2008:00:59:35 +0900] "GET /test/in.php HTTP/1.1" 200 555
127.0.0.1 - username [28/Feb/2008:00:59:41 +0900] "POST /test/in_date.php HTTP/1.1" 200 5
in.phpがフォーム、in_dateが問題のPHPです。
よくわからないですが、データベースに問い合わせていない?気がするので調べてみます。

451:nobodyさん
08/02/28 01:43:16
php として動作してないだけじゃ?
httpd.conf とか確認してみたら?

452:448
08/02/28 02:15:26
>>451
httpd.confは本を参考に次のように設定追加してます。

AddType application/x-httpd-php .php

453:nobodyさん
08/02/28 02:48:59
あとは、デバッグの基本中の基本。チェックライト入れまくる

454:nobodyさん
08/02/28 14:23:55
つーか、LoadModuleしてるのか?

455:448
08/02/28 19:24:05
亀レスになってしまい申し訳ありません。

$sql = "insert into tablename (log,a,d,_in_date)
    values('$new_log_no','$a','$d','$in_date')";}
の部分のSQLに対し
pg_query($con,$sql);
を設定するとテーブルにデータを追加することが出来ました。
しかし作成されたデータは中身が空でしたorz
insertが動いてるのでPHPとデータベースの連携は取れてると思います。

>>454
Loaded Modulesを調べた所次の通りの結果でした。
mod_php5, mod_setenvif, mod_so, mod_auth, mod_access,
mod_alias, mod_userdir, mod_actions, mod_imap, mod_asis,
mod_cgi, mod_dir, mod_autoindex, mod_include, mod_status,
Momod_negotiation, mod_mime, mod_log_config, mod_env, http_core


456:nobodyさん
08/02/28 19:36:50
>>449

457:nobodyさん
08/02/29 10:18:45
つーか、まずはHTMLしかないphpを書いて試すとか
白紙のときにブラウザの機能でソース見るとどうなってるとか
いろいろやってんのかな

458:nobodyさん
08/03/05 16:03:25
だいぶ前にログナンバーを引っ張り出して重複せずに+1したいと
言っていたものですがa+モードとファイルロックのタイミングで
何とか実現できました。
その後に続くwモードのファイルーオープンで
ログ数を調整しようと思ったのですが
この処理を付けるとログが全部消えてしまいます。
何か間違えていますか?

459:458の続き
08/03/05 16:05:57
//指定行数以上のログの削除
$delfilename = ('card-walin.txt');
$dellines = file($delfilename);
$delcountlines = count($dellines);
$yojyou = $delcountlines - 2;
$delhandle = fopen($filename, "w");
$delnewlog = "";
flock($delhandle,LOCK_EX);
for ($i = $delcountlines; $i <= $yojyou; $i--) {
array_unshift($delnewlog, $dellines[$i]);
}
fwrite($delhandle,$delnewlog);
flock($delhandle,LOCK_UN);
fclose($delhandle);

460:458の改正
08/03/05 16:41:48
すいません、これで。
ログ二行以上ならログの先頭から余剰分消していくと言う感じで

//指定行数以上のログの削除
$delfilename = ('card-walin.txt');
$dellines = file($delfilename);
$delcountlines = count($dellines);
if ($delcountlines > 2) {
$yojyou = $delcountlines - 2;
} else {
$yojyou = 0;
}
$delhandle = fopen($delfilename, "w");
flock($delhandle,LOCK_EX);
$delnewlog = "";
for ($i = $delcountlines; $i <= $yojyou; $i--) {
fwrite($delnewlog, $dellines[$i]);
}
flock($delhandle,LOCK_UN);
fclose($delhandle);

461:nobodyさん
08/03/05 16:42:58 bSWg3SQN
実行スクリプトまでのサーバーのフルパスを下記のように取っております
この書き方だとファイル名test.phpを他の名前にするたびに$this_script_nameを書換えないといけません
ファイル名を書換えてもソースを変えずにフルパスを取得する書き方を教えてください


$this_script_name = 'test.php';
$full_path = ereg_replace($this_script_name ,'' ,$_SERVER['SCRIPT_FILENAME']);

462:nobodyさん
08/03/05 16:58:07 OQixiW/q
レンタルサーバ・無料スペースに依存せずにPEARを使いたいのですが・・・

ググってみると”必要ファイルをコピーして ini_set や .htaccess を使えば良い”
との事ですが、どこまでが必要ファイルなのか良く分かりませんでした
(ローカルにインストールしたPEARディレクトリ丸ごとホームディレクトリにコピーなのか
installコマンドでダウンロードしたファイルだけコピーなのか)

質問は最初の一行の通りなのですがPEARを使うにはどのファイルが必要なのでしょうか?

463:nobodyさん
08/03/05 17:09:24
>>461
dirname(__FILE__)

464:nobodyさん
08/03/05 17:16:55 bSWg3SQN
>>463
おおお できました
これだけで出来るとわ・・・
ありがとうございました

465:nobodyさん
08/03/08 00:22:24
掲示板の削除なんですが下記操作してからファイルロックかけて書き込むと
場合によっては重複しませんか?

if ($_POST['delete']) {
for ($i = 0; $i < count($lines); $i++) {
$items = explode("\t", $lines[$i]);
if ($items[0] == $_POST['delradio'] && $items[4] == $_POST['delkey2'] || $items[0] == $_POST['delradio'] && 'masterpass' == $_POST['delkey2']) {
array_splice($lines, $i, 1);
}
}
}

466:nobodyさん
08/03/08 07:01:18
>>465
if (isset($_POST['delete']) && $_POST['delete']) {
 foreach ($lines as $key => $value) {
  $items = explode("\t", $value);
  if ($items[0] == $_POST['delradio'] && ($items[4] == $_POST['delkey2'] || 'masterpass' == $_POST['delkey2'])) {
   unset($lines[$key]);
  }
 }
}

書き込みの部分を見ないとなんとも言えない


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5299日前に更新/165 KB
担当:undef