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

くだすれPHP(超初心者用)3

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/10/25(木) 16:04:31ID:???
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
PHP使いが優しくコメントを返しますが、
お礼はPHPの布教と初心者の救済をお願いします。

PHP Home Page
http://www.php.net/
http://jp.php.net/

---前スレのテンプレここまで---

前スレ: くだすれPHP(超初心者用)2
http://pc11.2ch.net/test/read.cgi/php/1164617202/

適当に関連スレ(マルチはだめぽ)
【PHP】下らねぇ質問はここに書き込みやがれ 57
http://pc11.2ch.net/test/read.cgi/php/1193062236/
△▲ WebProg 初心者の質問 Part16 ▼▽
http://pc11.2ch.net/test/read.cgi/php/1187729623/

完走したら、雑談スレで待機でどうでしょう
【総合】 Webprog板質問雑談スレッド 1
http://pc11.2ch.net/test/read.cgi/php/1131016915/
0409nobodyさん2008/02/18(月) 22:25:40ID:???
それとコンソールを試してみて
パスワードが通っていない感じのエラーが出ていました
ただ、パスワードは合っていて
コンソールで mysql -u user -pでログインが出来ている状態です
/etc/hosts にもデータベース名は記述してあり(localhost)
なんで通らないのかわからなくなっています

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

どなたかお願いします…
0410nobodyさん2008/02/19(火) 02:56:13ID:???
それだけの情報で聞いたって誰も分からない
0411nobodyさん2008/02/19(火) 10:06:45ID:???
すみません、質問です。
PHPには、.NET Framework の ADO.NET のように、自作した csv ファイルに SQL 文で
データを抽出することは可能なのでしょうか。
以下のサイトのような感じで動かす場合です。
ttp://park5.wakwak.com/~weblab/selectTextFile.html

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

ヒントとなるキーワードでもいいので、お願いします。
0412nobodyさん2008/02/19(火) 10:26:38ID:???
PEAR::Structures_DataGrid_DataSource_CSV   ・・か?
0413nobodyさん2008/02/19(火) 12:43:40ID:???
>>410
よく情報が足りないといわれるのですが
どこら辺が足りないですか
>>407でバージョンやOSも書いてますが
エラーはサーバーから離れていたので書けなかったですが

後学のためにもお願いします
0414nobodyさん2008/02/19(火) 13:02:22ID:???
>>413
そういうところ
0415nobodyさん2008/02/19(火) 14:47:53ID:???
>>412
ありがとうございました。
0416nobodyさん2008/02/19(火) 19:38:04ID:???
変テコなPHP Shell見つけたんだがどう思う?
http://kissho.xii.jp/1/src/1jyou27419.txt.html
0417nobodyさん2008/02/19(火) 20:44:23ID:???
>>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 {}
0418nobodyさん2008/02/21(木) 03:11:11ID:???
ShiftJISのCSV形式を読んで、EUC文字コードに変換したいんですが、
Windowsの拡張漢字(IBM拡張やNEC拡張)や、外字領域も
きっちり対応してくれるような、関数とかないんでしょうか?
0419nobodyさん2008/02/21(木) 03:39:48ID:???
そんなマニアックな文字まで対応してる関数はない
0420nobodyさん2008/02/21(木) 04:46:45ID: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使用以前の問題で恐縮ですがとても困っていますのでどなたかよろしくおねがいします。
0421nobodyさん2008/02/21(木) 08:00:49ID:???
This version is for Mac OS X 10.4 (Intel&PPC) and higher.
04224202008/02/21(木) 15:40:03ID:uBvv/k1H
ガーン。。。ということはXAMPPは使えないのですネ。
ありがとうございました。。。
0423nobodyさん2008/02/21(木) 20:36:09ID:???
xamppなんて使うなや
0424nobodyさん2008/02/21(木) 21:13:13ID:???
それをいうのなら、Macなんて使うなよ。が正しい。
0425nobodyさん2008/02/21(木) 22:15:59ID:FbPK8kbc
現在携帯メール(添付画像付き)をメールサーバーから転送させて、PHPで処理してDBに保存するということをやろうとしてるのですが、
なぜか本文とか件名が化けてしまいます。

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

このサイトを参考にしてます。
http://www.phppro.jp/phptips/archives/vol35/1

改行コードが「LFのみ」にしてるからかな?と思うのですが、わかりません。
ご教授お願いします。
0426nobodyさん2008/02/21(木) 22:17:02ID:???
Winよりはマシだけどな(PHPインストール環境として)
0427nobodyさん2008/02/21(木) 22:19:36ID:???
>>425
文字コードを変換しなされ
0428nobodyさん2008/02/21(木) 22:29:31ID:FbPK8kbc
>>427

sjis,EUC,utf-8に変更したんですが、何も変わりません。。。
0429nobodyさん2008/02/21(木) 22:37:31ID:???
意味がわからん
0430nobodyさん2008/02/21(木) 22:40:10ID:???
つ mb_decode_mimeheader, mb_internal_encoding
0431nobodyさん2008/02/21(木) 22:56:44ID: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でやってます。
0432nobodyさん2008/02/21(木) 23:00:32ID:???
本文ならmimeheaderじゃねーし。
header見て文字コードが何か確かめてSJISに変換しなされ
0433nobodyさん2008/02/21(木) 23:10:41ID:???
あとスクリプトSJISで書くのは今すぐやめろ
0434nobodyさん2008/02/21(木) 23:14:40ID:FbPK8kbc
SJISで書いちゃ駄目なんですか!?
すみません!!

あと>>432さんの書き込みの意味がわかないんですが、具体的にはどうすればいいんでしょうか?
0435nobodyさん2008/02/21(木) 23:57:05ID:FbPK8kbc
自己解決できました。
ご迷惑欠けて申し訳ありませんでした。
0436nobodyさん2008/02/26(火) 00:15:23ID:???
>>431
可能です。
以上。
はい、次。
0437nobodyさん2008/02/26(火) 22:29:16ID:8JcMjBPY
for ($i=0, $n=100000000; $i<$n; $i++ ) {
$str = $i;
}

こうすると$strには0〜99999999が入りますが、a〜zzzzzzzzまでを$strに入れるにはどう書けばよいのでしょうか?
0438nobodyさん2008/02/26(火) 23:24:57ID:???
アルファベット進数?つまり26進数とかになるのか。
aを0、bを1、cを2・・・て対応させればとりあえず入るな。
0439nobodyさん2008/02/27(水) 00:33:52ID:???
for ($i='a', $n='zzzzzzzz'; $i<=$n; $i++ ) {
$str[] = $i;
}
0440nobodyさん2008/02/27(水) 04:32:26ID:???
>>473
パスワード総当り攻撃の相談でつか?
0441nobodyさん2008/02/27(水) 04:36:01ID:???
1桁増やすごとに計算量が莫大に増加していく恐怖を味わうとよいわ
0442nobodyさん2008/02/27(水) 13:31:31ID:???
>>439
ネタかと思ってやってみたら本当に動きました
文字列をプラスするとこういうことになるんですね
ありがとうございました
0443nobodyさん2008/02/27(水) 17:43:11ID:???
質問です!
「form.html内のinputタグで送信した値をpost.php内の<?= $_post["abc"]  ?>で表示させる。」
ですが、
↓
「phpファイルではなく、htmlファイル内で表示させる」
にはどうすればいいのでしょうか?

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

よろしくお願いします。
0444nobodyさん2008/02/27(水) 19:05:32ID:???
Webサーバの設定で拡張子「.html」もphpで動くようにして<?= $_post["abc"] ?>
0445nobodyさん2008/02/27(水) 19:12:22ID:???
444>>
なるほど、設定が必要なんですね。
助かりました。
ありがとうございます。
0446nobodyさん2008/02/27(水) 20:15:02ID:???
>>445
SSIって手もあるよ
0447nobodyさん2008/02/27(水) 20:37:33ID:???
>>446
ありがとうございます。
勉強してみます!
0448nobodyさん2008/02/28(木) 00:23:44ID:???
ど素人の質問です。
以下の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 "送信に失敗しました";}
0449nobodyさん2008/02/28(木) 00:40:01ID:???
Apacheのログは?
あとプログラムのどこまで実行したら真っ白になるか切り分けてみたら?
0450nobodyさん2008/02/28(木) 01:14:23ID:???
>>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です。
よくわからないですが、データベースに問い合わせていない?気がするので調べてみます。
0451nobodyさん2008/02/28(木) 01:43:16ID:???
php として動作してないだけじゃ?
httpd.conf とか確認してみたら?
04524482008/02/28(木) 02:15:26ID:???
>>451
httpd.confは本を参考に次のように設定追加してます。

AddType application/x-httpd-php .php
0453nobodyさん2008/02/28(木) 02:48:59ID:???
あとは、デバッグの基本中の基本。チェックライト入れまくる
0454nobodyさん2008/02/28(木) 14:23:55ID:???
つーか、LoadModuleしてるのか?
04554482008/02/28(木) 19:24:05ID:???
亀レスになってしまい申し訳ありません。

$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
0456nobodyさん2008/02/28(木) 19:36:50ID:???
>>449
0457nobodyさん2008/02/29(金) 10:18:45ID:???
つーか、まずはHTMLしかないphpを書いて試すとか
白紙のときにブラウザの機能でソース見るとどうなってるとか
いろいろやってんのかな
0458nobodyさん2008/03/05(水) 16:03:25ID:???
だいぶ前にログナンバーを引っ張り出して重複せずに+1したいと
言っていたものですがa+モードとファイルロックのタイミングで
何とか実現できました。
その後に続くwモードのファイルーオープンで
ログ数を調整しようと思ったのですが
この処理を付けるとログが全部消えてしまいます。
何か間違えていますか?
0459458の続き2008/03/05(水) 16:05:57ID:???
//指定行数以上のログの削除
$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);
0460458の改正2008/03/05(水) 16:41:48ID:???
すいません、これで。
ログ二行以上ならログの先頭から余剰分消していくと言う感じで

//指定行数以上のログの削除
$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);
0461nobodyさん2008/03/05(水) 16:42:58ID:bSWg3SQN
実行スクリプトまでのサーバーのフルパスを下記のように取っております
この書き方だとファイル名test.phpを他の名前にするたびに$this_script_nameを書換えないといけません
ファイル名を書換えてもソースを変えずにフルパスを取得する書き方を教えてください


$this_script_name = 'test.php';
$full_path = ereg_replace($this_script_name ,'' ,$_SERVER['SCRIPT_FILENAME']);
0462nobodyさん2008/03/05(水) 16:58:07ID:OQixiW/q
レンタルサーバ・無料スペースに依存せずにPEARを使いたいのですが・・・

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

質問は最初の一行の通りなのですがPEARを使うにはどのファイルが必要なのでしょうか?
0463nobodyさん2008/03/05(水) 17:09:24ID:???
>>461
dirname(__FILE__)
0464nobodyさん2008/03/05(水) 17:16:55ID:bSWg3SQN
>>463
おおお できました
これだけで出来るとわ・・・
ありがとうございました
0465nobodyさん2008/03/08(土) 00:22:24ID:???
掲示板の削除なんですが下記操作してからファイルロックかけて書き込むと
場合によっては重複しませんか?

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);
}
}
}
0466nobodyさん2008/03/08(土) 07:01:18ID:???
>>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]);
  }
 }
}

書き込みの部分を見ないとなんとも言えない
04674662008/03/08(土) 11:35:25ID:???
if($_POST['deletion']){
$deletionlogname = ('card-walin.txt');
$deletionloglines = file($deletionlogname);
$deletioncountloglines = count($deletionloglines);
$deletionlognumbers = $deletioncountloglines - 1;
$deletionfopen = fopen($deletionlogname, "w");
flock($deletionfopen,LOCK_EX);
for($i=0; $i<$deletionlognumbers; $i++){
$deletionlogitems = explode("\t", $deletionloglines[$i]);
if($deletionlogitems[0]==$_POST['deletionradio'] && $deletionlogitems[3]==$_POST['deletionkey'] || $deletionlogitems[0]==$_POST['deletionradio'] && 'masterpass'==$_POST['deletionkey']){
continue;
}else{
fwrite($deletionfopen,$deletionloglines[$i]);
}
}
flock($deletionfopen,LOCK_UN);
fclose($deletionfopen);
}
0468nobodyさん2008/03/08(土) 11:41:55ID:???
$deletionlogname = ('card-walin.txt');
何これ
04694652008/03/08(土) 11:42:09ID:???
>>467は>>465が書いたものです、アンカー打ち間違えた・・・・・
んでこれは記事の固有IDとパスが一致した行を削除と言う流れで
書いてるんですがどうも訳わからん記事まで削除されてしまいます。
>>465の質問とあわせてアドバイス頂けないでしょうか?
04704652008/03/08(土) 11:43:33ID:???
>>468
ログの名前です、
変数名の英語的意味めちゃくちゃなのは
とりあえず別の変数と重ならなくさせるためなので
ご勘弁を。
0471nobodyさん2008/03/08(土) 11:44:26ID:???
パスワードがどれかすら分からんし
04724652008/03/08(土) 11:44:56ID:???
$number\t$name\t$comment\t$deletionkey\t$time\n

ログの並びはこんな感じです。
04734652008/03/08(土) 11:46:30ID:???
$deletionlogitems[0]がパスワード、
POST['deletionradio']が記事の固有IDになります、
説明不足ですいません。
0474nobodyさん2008/03/08(土) 11:51:30ID:???
なんでログの件数ー1だけforでループしてんの?
04754652008/03/08(土) 11:56:53ID:???
>>474
その部分もしログが0だった場合とか書いてませんね、迂闊でした。
ログの記事数のカウントが0から始まるのでそうやってみたのですが・・・・・
0476nobodyさん2008/03/08(土) 12:01:17ID:???
訳分からん記事ってどういうの?
04774652008/03/08(土) 12:06:56ID:???
関係ない別の固有IDの記事まで消えるんですよね、
例えば記事が3つあって、3つめの記事で固有ID3の記事を削除したら
1つめの記事も同時に消えたりします。
0478nobodyさん2008/03/08(土) 12:08:50ID:???
1つめの記事が消えないこともあんの?
04794652008/03/08(土) 12:17:38ID:???
>>478
今試したら記事3つのログで2つめの記事消したら
3の記事も同時に消えました。
つかその後、削除ボタン押したら全部消えたw
どうも記事固有IDとパスワード一致しなかった場合書き換えしないと言う
処理が抜けてたようです。
ただこれを直しても記事の同時消えが直る気がしない・・・・
ロジック的には大体上にあげたプログラムである程度あってるのでしょうかね。
0480nobodyさん2008/03/08(土) 12:26:00ID:???
データベースにおいて、データは物理的に削除するのではなく、
フラグ変更することをお薦めする。

04814652008/03/08(土) 12:30:46ID:???
>>480
表示するかしないかで処理するということですか。
0482nobodyさん2008/03/08(土) 14:00:31ID:???
>>481
データベースの場合だ
ファイルの場合は消した方がいいよ
速度変わってくるし
0483nobodyさん2008/03/08(土) 14:14:06ID:???
じゃ別に今言うべき話じゃないだろw
0484nobodyさん2008/03/08(土) 14:15:28ID:???
>>483
俺が言ったんじゃないw
0485nobodyさん2008/03/08(土) 14:46:24ID:???
まず
||と&&の使い方を覚えよう
466でも書いたけど(最初のifで要らん部分あるけどw)
ループ中にある
if ($items[0] == $_POST['delradio'] && $items[4] == $_POST['delkey2'] || $items[0] == $_POST['delradio'] && 'masterpass' == $_POST['delkey2']) {
これは変です(処理的には通るけど)
  if ($items[0] == $_POST['delradio'] && ($items[4] == $_POST['delkey2'] || 'masterpass' == $_POST['delkey2'])) {
やりたい事は多分これ
んで、POST内容は意図したものがきてるの?
0486nobodyさん2008/03/08(土) 14:52:21ID:???
>>484
お前に言ってないw
04874652008/03/08(土) 16:30:22ID:???
なにやらすごい間違いをしてました・・・・・・・・・
$items[4]がパス格納部じゃなくて$items[3]でした・・・・・・・・
今から皆さんにご指摘頂いた部分の修正に入ります、
本当にすいませんでした。
0488nobodyさん2008/03/08(土) 16:36:16ID:???
>>486
俺にか?
04894652008/03/08(土) 16:38:20ID:???
なんだか喧嘩させてしまったようで申し訳ない・・・・・
0490nobodyさん2008/03/08(土) 17:05:38ID:???
架空請求の詐欺師が特定されてるよw
http://2ch.pne.jp/img/jpg/w_h/img_cache_d_180941_1_1204957189_jpg.jpg

【ユビキタス銀河】 詐欺師プログラマー 武田洋幸
http://pc11.2ch.net/test/read.cgi/antispam/1204457908/l50
0491nobodyさん2008/03/08(土) 17:42:02ID:???
何度も投稿すいません、掲示板で書き込んだ後ブラウザの更新ボタン押すと
もう一度書き込まれてしまうのですがこれを防止するのは2重書き込み防止処理だけでいいのでしょうか?
これだとたまに別の人が書き込んだ後に更新押した場合
書き込まれちゃいますよね。
皆さん過去ログの内容走査処理したりしてるのでしょうか?
0492nobodyさん2008/03/08(土) 17:53:28ID:???
>>491
書き込んだ後ブラウザを強制的に閉じるようにしたら更新できなくなるよ
0493nobodyさん2008/03/08(土) 18:01:26ID:???
そんな〜、ドラえも〜ん!
0494nobodyさん2008/03/08(土) 18:26:21ID:???
a.html←フォーム
b.php←post先
c.php←投稿完了しました表示

b.phpで投稿完了したら
header('Location : http://example.com/c.php');

これでa.htmlまで戻るとかで戻らない限り2重投稿はある程度防げる

0495nobodyさん2008/03/08(土) 18:29:46ID:???
なるほど、そういうことでしたか、取り乱しました。
html作成せずにphp1つだけで全部やろうとしてもややこしそうですね・・・・・
0496nobodyさん2008/03/08(土) 18:50:31ID:???
>>495
別にhtml作らなくてもできるけど
ファイルは分けたほうが後々良いよ
0497nobodyさん2008/03/08(土) 21:58:57ID:???
>>495
だまされるな!
ドラえもん呼ぶのが正解だ
0498nobodyさん2008/03/08(土) 23:16:31ID:???
htmlってどうやって作るんでしたっけ?
なんかリファレンス読んでも見つからないのですが。
0499nobodyさん2008/03/09(日) 01:35:03ID:BZEq18rG
target.phpをインラインフレームで表示するためのページをget.phpとします
その際にをtarget.phpへ送るリファラを http://example.com とするにはどうしたらいいのでしょうか。
過去ログを探して、
ヘッダに ""Referer: http://example.com\r\n" を追加すればいいと書いてあったのですが、
どのように追加したらいいのかがわかりません
location みたいな書き方が思い浮かんだのでやってみましたができませんでした。
正しいやり方を教えてください。お願いします。
-------------------------------------

【get.php】
<?php
header("Referer: http://example.com\r\n");
?>
<iframe src="target.php">
</iframe>
-------------------------------

【target.php】
<?php
echo $_SERVER["HTTP_REFERER"];
?>
-------------------------------

get.phpの実行結果

http://****.jp/get.php
0500nobodyさん2008/03/09(日) 02:10:54ID:???
>>499
【get.php】
<?php
echo '<iframe src="target.php?referer='.$_SERVER["HTTP_REFERER"].'"></iframe>';
?>

【target.php】
<?php
echo $_GET["referer"];
?>
0501nobodyさん2008/03/09(日) 02:31:20ID:BZEq18rG
>>500
せっかく答えていただいたのに恐縮ですが、
それはget.phpで取得したリファラをtarget.phpへgetメソッドで渡す方法ですよね

私が知りたいのは、
get.phpでtarget.phpを開くけれども、
target.phpで取得されるリファラはget.phpではなく、http://example.com にしたいということなのです
印象の良くない言葉なので使いたくはなかったのですが、つまり、リファラ偽装ということです

書き方悪くてすいません
0502nobodyさん2008/03/09(日) 02:41:06ID:???
>>501
http://example.com
これは固定値かそれともget.phpで取得できる値かどっち?

get.phpで取得するリファラの値なら方法は無いよ?
get,php内でgetのリクエストをtarget.phpに宛てに投げて
その時のヘッダにリファラ偽装して渡すとかなら可能だけど
0503nobodyさん2008/03/09(日) 03:08:23ID:BZEq18rG
>>502
説明不足で本当にすいません
固定値です
0504nobodyさん2008/03/09(日) 04:55:14ID:???
>>503
ファイルに対してアクセスあった場合
強制的に.htaccessとかでSetEnvとかかなぁ・・・

もしiframeのが別のサイトなら
getのリクエスト投げた方が早い
0505nobodyさん2008/03/09(日) 05:16:16ID:???
変数に0入れてその後の分岐にNULLかどうかとか入れたら
0はNULLやfalseと判定されますか?
その変数を変数-1としても-1とはならない?
0506nobodyさん2008/03/09(日) 05:24:57ID:???
===で比較すれば判定されない。
変数=0
変数=変数−1としたら変数の中身は−1になる。
0507nobodyさん2008/03/09(日) 05:29:10ID:???
型の自動変換に頼った比較は避けた方がベター。
0508nobodyさん2008/03/09(日) 05:31:25ID:???
どうもすいません、ありがとうございました。
■ このスレッドは過去ログ倉庫に格納されています