私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ【PHP】下らねぇ質問はID出して書き込みやがれ 95
php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
【OS名】WindowsXP SP3
【PHPのバージョン】5.3.1
【連携ソフトウェア】XAMPP for Windows 1.7.3
【質問内容】
セッションの有効期限についての質問です
セッションを一定時間後にサーバーから破棄したいと思います
以下のように記述し、ブラウザからファイルを閲覧しているのですが
1秒以上経ってページを更新しても、数値が「1」に戻らずカウントアップされていきます
期待通りの動作をさせるにはどうすれば良いのでしょうか
<?php
ini_set('session.gc_probability', 1);
ini_set('session.gc_divisor', 1);
ini_set('session.gc_maxlifetime', 1);
session_start();
if(!$_SESSION['hogehoge']){$_SESSION['hogehoge'] = 1;}
else{$_SESSION['hogehoge']++;}
$hogehoge = $_SESSION['hogehoge'];
session_write_close();
header('Mime-Version: 1.0');
header('Content-Type: text/plain; charset=UTF-8');
echo $hogehoge;
?>
【PHPのバージョン】5.3.1
【連携ソフトウェア】XAMPP for Windows 1.7.3
【質問内容】
セッションの有効期限についての質問です
セッションを一定時間後にサーバーから破棄したいと思います
以下のように記述し、ブラウザからファイルを閲覧しているのですが
1秒以上経ってページを更新しても、数値が「1」に戻らずカウントアップされていきます
期待通りの動作をさせるにはどうすれば良いのでしょうか
<?php
ini_set('session.gc_probability', 1);
ini_set('session.gc_divisor', 1);
ini_set('session.gc_maxlifetime', 1);
session_start();
if(!$_SESSION['hogehoge']){$_SESSION['hogehoge'] = 1;}
else{$_SESSION['hogehoge']++;}
$hogehoge = $_SESSION['hogehoge'];
session_write_close();
header('Mime-Version: 1.0');
header('Content-Type: text/plain; charset=UTF-8');
echo $hogehoge;
?>
PHPのPearフレームワークについて詳しい人にご質問なのですが、
SQL インジェクション対策として下手にエスケープシーケンスなんかを
やる位ならPearを使用しプレースホルダー経由でDBにアクセスをする様にした方が
簡単で安全なのでしょうか?
また、Pearフレームワークの驚きの機能、便利な機能等があればお教え下さい。
SQL インジェクション対策として下手にエスケープシーケンスなんかを
やる位ならPearを使用しプレースホルダー経由でDBにアクセスをする様にした方が
簡単で安全なのでしょうか?
また、Pearフレームワークの驚きの機能、便利な機能等があればお教え下さい。
コーディング規約はZendのやつが一番使われてるんですかね?
メソッドの命名規則が小文字スタートのキャメルケースになってますが、PHPのビルトインは全部小文字のハイフン繋ぎですよね
これってどうなんでしょう?
メソッドの命名規則が小文字スタートのキャメルケースになってますが、PHPのビルトインは全部小文字のハイフン繋ぎですよね
これってどうなんでしょう?
あ出来ました
html#だと出来きなかったんですが出来ないと思い込んだのですが
単体だと出来ました
なんでだ?
html#だと出来きなかったんですが出来ないと思い込んだのですが
単体だと出来ました
なんでだ?
>>68
他人のサイトからパクって覚えるの繰り返しだと思う
時間が経つにつれて一通りできるようになったら中の動きとか気になるようになって
専門的知識を深めていくって感じだと思います。
あと、Linuxは基本かと。パッケージ管理ソフトウェアが動かせて
ミドルウェアのインストール、設定ができれば最初はいいんじゃないのかな。
他人のサイトからパクって覚えるの繰り返しだと思う
時間が経つにつれて一通りできるようになったら中の動きとか気になるようになって
専門的知識を深めていくって感じだと思います。
あと、Linuxは基本かと。パッケージ管理ソフトウェアが動かせて
ミドルウェアのインストール、設定ができれば最初はいいんじゃないのかな。
1つの設定ファイルをincludeで参照して使ってますが、includeファイル自体に参照ファイルがあったりした場合は別階層から参照したりするとファイルがないと言われます。
設定をひとつにまとめることで色々と便利なのですが、階層が違うと読めないので
なにか回避方法か参照の仕方はこうしたほうがいいというのがあれば教えていただけないでしょうか。
設定をひとつにまとめることで色々と便利なのですが、階層が違うと読めないので
なにか回避方法か参照の仕方はこうしたほうがいいというのがあれば教えていただけないでしょうか。
inc1.php
<?
$test = "hoge";
include('inc2.php');
?>
inc2.php
<? $test2 = "pgr"; ?>
のときに
text.php
<? include('inc1.php'); ?>
ならOKだけど
/hoge/text.php
<? include('../inc1.php'); ?>
だとinc2.phpが読めないってことだよな?
<?
$test = "hoge";
include('inc2.php');
?>
inc2.php
<? $test2 = "pgr"; ?>
のときに
text.php
<? include('inc1.php'); ?>
ならOKだけど
/hoge/text.php
<? include('../inc1.php'); ?>
だとinc2.phpが読めないってことだよな?
111が言うように、絶対パスで指定するか、
include_once realpath(dirname(__FILE__)).'/../includeFile.php';
と相対パスを作るか。
include_once realpath(dirname(__FILE__)).'/../includeFile.php';
と相対パスを作るか。
確かに言われてみればそうですね。
こんな初歩的な事に気づかないなんて・・・。
疲れてんのか・・・
こんな初歩的な事に気づかないなんて・・・。
疲れてんのか・・・
ま、初歩的を初心とするならば、
elseは書いておくほうがいいよ。
予想外のifを、すりぬける場合が
あるから。
elseは書いておくほうがいいよ。
予想外のifを、すりぬける場合が
あるから。
phpのメールフォームの確認画面で
記載内容のテーブルのいちばん外側の枠は表示されるんですが
trやtdの枠が表示されず困っています。
現在は下記のような内容です。
どこがいけないのでしょうか、教えて頂ければとても助かります。
<form action="<? echo $script; ?>" method="POST" >
<table border="1" cellspacing="20" cellpadding="5" width="538">
<? echo $err_message; ?>
<?php
foreach($_POST as $key=>$var) {
$key = strtr($key, $string_from, $string_to);
if(get_magic_quotes_gpc()) $var = stripslashes($var);
$var = htmlspecialchars($var);
print("<tr><td width=\"140\">".$key."</td><td>".$var."</td></tr>");
?>
<input type="hidden" name="<?= $key ?>" value="<?= $var ?>" />
<?php
print("\n");
}
?>
</table>
記載内容のテーブルのいちばん外側の枠は表示されるんですが
trやtdの枠が表示されず困っています。
現在は下記のような内容です。
どこがいけないのでしょうか、教えて頂ければとても助かります。
<form action="<? echo $script; ?>" method="POST" >
<table border="1" cellspacing="20" cellpadding="5" width="538">
<? echo $err_message; ?>
<?php
foreach($_POST as $key=>$var) {
$key = strtr($key, $string_from, $string_to);
if(get_magic_quotes_gpc()) $var = stripslashes($var);
$var = htmlspecialchars($var);
print("<tr><td width=\"140\">".$key."</td><td>".$var."</td></tr>");
?>
<input type="hidden" name="<?= $key ?>" value="<?= $var ?>" />
<?php
print("\n");
}
?>
</table>
PHPでリダイレクトを実現するには一般的にはどういう手段を使いますか?
PearライブラリのHTTP::redirectという関数を見つけましたが、自分の環境にはPearをインストール出来ません。
生でやろうとすると、headerを設定する方法があるようですが、
この方法だと既にheaderが設定されてるページではエラーが出てしまいリダイレクトできませんでした。
何か良い方法は無いでしょうか?
PearライブラリのHTTP::redirectという関数を見つけましたが、自分の環境にはPearをインストール出来ません。
生でやろうとすると、headerを設定する方法があるようですが、
この方法だと既にheaderが設定されてるページではエラーが出てしまいリダイレクトできませんでした。
何か良い方法は無いでしょうか?
各行のlengthが同じなら区切れるけど、そうじゃなければfileで引っこ抜いて
$test[5]
$test[6]
$test[10]
$test[800]
でいいんじゃないかな
$test[5]
$test[6]
$test[10]
$test[800]
でいいんじゃないかな
【OS名】Windows
【PHPのバージョン】5.2
UTF-8(BOMつき)のHTMLを読み込み、加工して出力を行っているのですが
どうやらBOMもしっかり文字として読み込んでしまっているようで、SJISなどに変換して出力した際'?'に化けてしまいます。
ファイルからテキストを読み込んだが時に、自動的にBOMを削除してくれる機能はないのでしょうか?
ざっとUTF-8 BOM PHP で探しまわったところ、先頭3バイトを調査してsubstrで削除しているところばかりだったのですが…。
(つまり無さそう?)
【PHPのバージョン】5.2
UTF-8(BOMつき)のHTMLを読み込み、加工して出力を行っているのですが
どうやらBOMもしっかり文字として読み込んでしまっているようで、SJISなどに変換して出力した際'?'に化けてしまいます。
ファイルからテキストを読み込んだが時に、自動的にBOMを削除してくれる機能はないのでしょうか?
ざっとUTF-8 BOM PHP で探しまわったところ、先頭3バイトを調査してsubstrで削除しているところばかりだったのですが…。
(つまり無さそう?)
IDを出し忘れましたので即レスです
すみません、phpで符号なし右シフト「>>>」と同じ結果を得るには
どうすると良いでしょうか?
どうすると良いでしょうか?
【サーバーOS】Windows2003
【Webページ接続OS】Windows7、vista、XP
【phpバージョン】5.2
phpのセッション管理に関する質問です
ログイン管理にセッションを用いていて、認証フォーム→ログイン処理→ログイン後トップページという風に処理しています。
認証フォームで入力したIDとパスワードを、ログイン処理ページで処理してセッション変数を格納し、トップページへと繋げて、以降セッション変数で管理しているのですが、ログイン処理の時点でセッション変数に値が格納出来ていません。
もう一つ別のページでもセッション変数の格納を行っているのですが、そちらは特に問題なく動作しています。
そしてもう一つ、これらの問題はWindowsVISTA、XPのPCで接続した場合に発生し、7で接続した場合は発生しておりません。
まず、問題が発見されたほうのソースコードです。
<?php
$old_session_name=session_name('kaiin');
session_start();
//mysql接続クラス呼び出し
require_once "../php/dbh.php";
$dbh=new db();
$con=$dbh->db_connect();
if(!$result=mysql_query("select ~~~~~~ ")){
header("Location:http://");
}
【Webページ接続OS】Windows7、vista、XP
【phpバージョン】5.2
phpのセッション管理に関する質問です
ログイン管理にセッションを用いていて、認証フォーム→ログイン処理→ログイン後トップページという風に処理しています。
認証フォームで入力したIDとパスワードを、ログイン処理ページで処理してセッション変数を格納し、トップページへと繋げて、以降セッション変数で管理しているのですが、ログイン処理の時点でセッション変数に値が格納出来ていません。
もう一つ別のページでもセッション変数の格納を行っているのですが、そちらは特に問題なく動作しています。
そしてもう一つ、これらの問題はWindowsVISTA、XPのPCで接続した場合に発生し、7で接続した場合は発生しておりません。
まず、問題が発見されたほうのソースコードです。
<?php
$old_session_name=session_name('kaiin');
session_start();
//mysql接続クラス呼び出し
require_once "../php/dbh.php";
$dbh=new db();
$con=$dbh->db_connect();
if(!$result=mysql_query("select ~~~~~~ ")){
header("Location:http://");
}
$row=mysql_fetch_array($result,MYSQL_ASSOC);
$ent=hash_hmac(sha256,$_POST[post],2channel);
if($row[]===$_2ch){
$_SESSION[]='';
$_SESSION[]="$row[]";
$_SESSION[]="$row[]";
header("Location:http://");
}else{
header("Location:http://");
}
mysql_close($con);
?>
次に、問題が出なかった方のソースコードです
<?php
$old_session_name=session_name("php_exam");
session_start();
foreach($_POST as $key => $value){
$_SESSION[$key]=$value;
}
print <<< EOD
以下HTMLが続く
EOD;
?>
何故接続するPCの違い、ページの違いによって問題が発生するのかまるで分かりません。
ブラウザはIE、火狐、クロームを試しましたがどれも同じ結果でした。
ご教授お願い致します。
$ent=hash_hmac(sha256,$_POST[post],2channel);
if($row[]===$_2ch){
$_SESSION[]='';
$_SESSION[]="$row[]";
$_SESSION[]="$row[]";
header("Location:http://");
}else{
header("Location:http://");
}
mysql_close($con);
?>
次に、問題が出なかった方のソースコードです
<?php
$old_session_name=session_name("php_exam");
session_start();
foreach($_POST as $key => $value){
$_SESSION[$key]=$value;
}
print <<< EOD
以下HTMLが続く
EOD;
?>
何故接続するPCの違い、ページの違いによって問題が発生するのかまるで分かりません。
ブラウザはIE、火狐、クロームを試しましたがどれも同じ結果でした。
ご教授お願い致します。
失礼、ID出し忘れたので即レスです
>>141
if($row[]===$_2ch){
これは何してるかわかる?
$row[]なので、$row配列の最後尾に追加される。
たとえば、
$row[0],$row[1]
がある状態で$row[]とやると、$row[2]になる。
ので
$row[]===$_2ch
というのは
$_2chが「値無し」じゃないと当てはまらないはず。
結果的に$_SESSION[]="$row[]";
にはいらず、elseのほうに入ってしまっている。
if($row[]===$_2ch){
これは何してるかわかる?
$row[]なので、$row配列の最後尾に追加される。
たとえば、
$row[0],$row[1]
がある状態で$row[]とやると、$row[2]になる。
ので
$row[]===$_2ch
というのは
$_2chが「値無し」じゃないと当てはまらないはず。
結果的に$_SESSION[]="$row[]";
にはいらず、elseのほうに入ってしまっている。
>>145
失礼しました、説明が足りませんでしたね
$_SESSION[]はや$row[]は2chに書く用に中の連想文字を消したもので、実際には
$_SESSION[2ch]や$row[2ch]のように、中に連想文字が入っている状態です。
分かりにくくて申し訳ないです;;
失礼しました、説明が足りませんでしたね
$_SESSION[]はや$row[]は2chに書く用に中の連想文字を消したもので、実際には
$_SESSION[2ch]や$row[2ch]のように、中に連想文字が入っている状態です。
分かりにくくて申し訳ないです;;
>>146
通常なんのブラウザを使おうがPHPの動作には影響しない。
ブラウザで動作が変わると言うことは、既にセッションを噛んでいるか、ブラウザの設定による問題かと思う。
いったん、検証に使ったブラウザを再起動して、セキュリティレベルを合わせる。
で、その後に
if($row[]===$_2ch){
の中に入っているか確認する。
入ってるのなら
header("Location:http://");
の直前で
var_dump($_SESSION);
exit;
値がきちんと格納されているか確認。
次にheaderで飛ばした先で
var_dump($_SESSION);
で、先ほどと中身が同じか確認。
セッションを発行させるのは
www.example.com
headerで飛ばした先は
sub.example.com
など、飛ばす先のドメインが違ったりすると、同じサーバーでもサードパーティ製のクッキーということで、セッションを引き継げないことがある。
IEのセキュリティレベルが高いときとか。
提示された条件ではこれくらいしか言えない。
通常なんのブラウザを使おうがPHPの動作には影響しない。
ブラウザで動作が変わると言うことは、既にセッションを噛んでいるか、ブラウザの設定による問題かと思う。
いったん、検証に使ったブラウザを再起動して、セキュリティレベルを合わせる。
で、その後に
if($row[]===$_2ch){
の中に入っているか確認する。
入ってるのなら
header("Location:http://");
の直前で
var_dump($_SESSION);
exit;
値がきちんと格納されているか確認。
次にheaderで飛ばした先で
var_dump($_SESSION);
で、先ほどと中身が同じか確認。
セッションを発行させるのは
www.example.com
headerで飛ばした先は
sub.example.com
など、飛ばす先のドメインが違ったりすると、同じサーバーでもサードパーティ製のクッキーということで、セッションを引き継げないことがある。
IEのセキュリティレベルが高いときとか。
提示された条件ではこれくらいしか言えない。
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
みんなの評価 : 類似してるかもしれないスレッド
- 【PHP】下らねぇ質問はID出して書き込みやがれ 91 (1001) - [98%] - 2010/1/9 4:06 ○
- 【PHP】下らねぇ質問はID出して書き込みやがれ 98 (1001) - [98%] - 2010/10/12 18:16
- 【PHP】下らねぇ質問はID出して書き込みやがれ 99 (1001) - [98%] - 2010/10/27 4:51
- 【PHP】下らねぇ質問はID出して書き込みやがれ 85 (1001) - [98%] - 2009/7/31 4:07 ○
- 【PHP】下らねぇ質問はID出して書き込みやがれ 75 (1001) - [98%] - 2008/11/13 21:31 ○
- 【PHP】下らねぇ質問はID出して書き込みやがれ 93 (1001) - [98%] - 2010/3/16 4:25
- 【PHP】下らねぇ質問はID出して書き込みやがれ 92 (1001) - [98%] - 2010/2/15 17:01 ○
- 【PHP】下らねぇ質問はID出して書き込みやがれ 97 (1001) - [98%] - 2010/9/18 2:01
- 【PHP】下らねぇ質問はID出して書き込みやがれ 96 (1001) - [98%] - 2010/7/22 7:47
- 【PHP】下らねぇ質問はID出して書き込みやがれ 90 (1001) - [98%] - 2009/12/7 18:47
- 【PHP】下らねぇ質問はID出して書き込みやがれ 94 (1001) - [98%] - 2010/4/20 19:31
- 【PHP】下らねぇ質問はID出して書き込みやがれ 105 (1001) - [96%] - 2011/4/28 23:01
- 【PHP】下らねぇ質問はID出して書き込みやがれ 135 (984) - [96%] - 2014/8/7 1:00
- 【PHP】下らねぇ質問はID出して書き込みやがれ 125 (1001) - [96%] - 2013/2/4 13:30
- 【PHP】下らねぇ質問はID出して書き込みやがれ 115 (1001) - [96%] - 2012/2/25 18:31
- 【PHP】下らねぇ質問はID出して書き込みやがれ 82 (1001) - [96%] - 2009/4/6 19:33
- 【PHP】下らねぇ質問はID出して書き込みやがれ 81 (1001) - [96%] - 2009/3/7 14:17 ○
トップメニューへ / →のくす牧場書庫について