【PHP】くだらねぇ質問はここに書き込みやがれ
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
04/11/02 00:15:41ID:???0498nobodyさん
04/12/18 02:03:06ID:???0499nobodyさん
04/12/18 02:40:46ID:???レスありがとうございます
すいません、しっかりマヌアルにありましたね
"三項演算子" "php"でぐぐったらいくつか見つかりました
しかも2重カキコしてました スマソ
0500nobodyさん
04/12/18 02:48:34ID:Si5Eecviポストされた値が数値か文字か、
何文字入力されているか、不正な値が入っていた場合はどうするか
等の処理はみなさん、どうされてますか?
すべての項目を1個ずつifで聞いていくのはめんどいですよね・・
自分は、フォームの項目の命名規則を整えて、
xmlに属性(数値・文字)lengthや不正な値の場合の処理
などを記述して、validation用の関数を作ればいいかなーって
おもってるんですが・・・・。
なにかお奨めの方法があったら
教えてください。
0503nobodyさん
04/12/18 04:02:58ID:???libmysql.dllのサイズが糞でかくなってました。
何でこんなにでかくなったんでしょうか?なんか怪しいです。
0505500
04/12/18 09:58:27ID:???どうもありがとうございます。
こんな便利なものがあったとは・・・
ただ、自分の場合、既に
HTMLでフォームを書いちゃったので
今から書き直すのは大変かなァと・・^^;
はぁif文で聞くのはめんどいしなぁ。
0506nobodyさん
04/12/18 18:11:31ID:TLjFNPt9a=rand(0,100);
としたとき、0〜100の中からaで選ばれた数字を除いた範囲で
乱数を発生させるにはどうすればいいんでしょうか?
b=rand() 括弧の中をどうすればいいかわかりません。
よろしくお願いします。
0507nobodyさん
04/12/18 18:43:11ID:R/XzN+iF(セッション変数に代入した値が保持されません)
環境は Windows 2000, Apache 1.3.33 です。
php.ini を書き換えなくてはいけないのでしょうか?
session.use_trans_sid = On
session.save_path = "C:/tmp"
とし、c:/tmp は存在しています。
0508nobodyさん
04/12/18 18:48:24ID:???rand(start,end)である以上、特定の数値を除いた値を
一回のrand呼び出しだけで選出することはできない。
やりたいことが、重複しない値を2つ取り出したい、ということなら、
bを取り出す時にaと一致したなら再度bを取得すればよい。
取り出したい値の個数が2つ以上の場合でも同様のやり方でできる。
全ての数値を対象にするなら、shuffleを使っても良かろう。
>>507
> セッションが正しく動作しません。
どうやって確認したのか教えたくない理由を述べよ
0509nobodyさん
04/12/18 18:51:08ID:???書かなくてもわかると思ったから
簡単なプログラム
http://hoover.ktplan.ne.jp/kaihatsu/php/index.php?type=doc&txt=session1
が動作しない
0510507
04/12/18 18:53:31ID:???Session Support enabled
Registered save handlers files user sqlite
Registered serializer handlers php php_binary wddx
DirectiveLocal ValueMaster Value
session.auto_startOnOn
session.bug_compat_42OffOff
session.bug_compat_warnOnOn
session.cache_expire180180
session.cache_limiternocachenocache
session.cookie_domainno valueno value
session.cookie_lifetime00
session.cookie_path//
session.cookie_secureOffOff
session.entropy_fileno valueno value
session.entropy_length00
session.gc_divisor10001000
session.gc_maxlifetime14401440
session.gc_probability11
session.hash_bits_per_character55
session.hash_function00
session.namePHPSESSIDPHPSESSID
session.referer_checkno valueno value
session.save_handlerfilesfiles
session.save_pathC:/tmpC:/tmp
session.serialize_handlerphpphp
session.use_cookiesOnOn
session.use_only_cookiesOffOff
session.use_trans_sid11
0511507
04/12/18 19:03:34ID:???ってことは、セッション変数の参照方法が間違っているってこと?
<?php
session_start();
session_register("num");
?>
<html>
<body>
<?php
$num++;
print "カウントは $num です。 <a href='$PHP_SELF'>次へ</a>";
?>
</body>
</html>
0514nobodyさん
04/12/18 19:49:50ID:???register_globalsの設定は?
>スクリプトでsession_register()を 使用している場合には、
>それは register_globalsを 不可としている環境下では動作しません。
0515507
04/12/18 20:03:28ID:???register_globals = Off
になってました。
register_globals = On
にしたら、ちゃんと動作しました。
ほんとにありがとうございました(深謝) >514様
0516nobodyさん
04/12/18 20:13:57ID:???register_globalsはOffが推奨だから$_SESSION使った方がいい
マニュアルのセッションの項目読めば分かると思う
ttp://www.php.net/manual/ja/ref.session.php
0517nobodyさん
04/12/18 20:54:31ID:???ところが、register_globalsはOffで、以下のソースだと動作しないんですよ。
<?php
session_start();
session_register("num");
?>
<html>
<body>
<?php
$num = $_SESSION["num"];
$num++;
print "カウントは $num です。 <a href='$PHP_SELF'>次へ</a>";
?>
</body>
</html>
0519nobodyさん
04/12/19 04:03:05ID:pAwYOVm0例:
$a = abc
文字列:defで $b=abcdefとしたい
0520519
04/12/19 04:05:25ID:pAwYOVm0abc.defとしたいです。
0521nobodyさん
04/12/19 04:55:15ID:???使う関数おしえてくり
0522nobodyさん
04/12/19 05:00:23ID:???0523nobodyさん
04/12/19 15:40:06ID:???0525nobodyさん
04/12/19 17:28:23ID:???以前に、IPの範囲判定について質問したんだけど
さっぱりわからんですたい。
>>140氏が
サブネットマスクでANDとってネットワークアドレスとXOR 結果が0か否か
って教えてくれたケド意味がわかんなくて…
この140氏のをもう少し具体的に教えてくれないでしょーか?
0526nobodyさん
04/12/19 19:26:14ID:???例: 192.168.1.55 が 192.168.1.0 〜 192.168.1.255 に含まれているかどうか
192.168.1.55 11000000 10101000 00000001 00110111
AND
255.255.255.0 11111111 11111111 11111111 00000000 サブネット
↓
11000000 10101000 00000001 00000000
XOR
192.168.1.0 11000000 10101000 00000001 00000000 ネットワークアドレス
↓
00000000 00000000 00000000 00000000
結果が 0 なので含まれていることになる
0527140
04/12/19 20:59:06ID:???0528nobodyさん
04/12/19 21:32:11ID:o3WuAXTl10進数を16進数に変換するプログラムを作成したいんですが、どうなりますか?
0529525
04/12/19 21:39:36ID:???ありがとうございます!
やっと140氏の言ってた意味がわかりますた!
140氏、改めてサンキューでした!
で、こねたら↓な感じになりますた。
もっとこないせい!ってなトコあればヨロシクです。
if( Check( '192.168.1.50' ) ){ echo('範囲内です'); }
else{ echo('範囲外です'); }
function Check( $ip )
{
$hani= '11000000101010000000000100000000';//192.168.1.0
$mask= 24;
$ips= split("\.",$ip);
$my_ip= sprintf("%08d",decbin($ips[0])) . sprintf("%08d",decbin($ips[1])) . sprintf("%08d",decbin($ips[2])) . sprintf("%08d",decbin($ips[3]));
for( $i=0; $i<$mask; $i++ )
{
if( $my_ip[$i] != $hani[$i] ){ return( false ); }
}
return( true );
}
0532140
04/12/19 23:56:43ID:???* function chkIP($ip, $net, $mask=0xffffff)
* 機能: $ipが$netのネットワーク内にあるかをチェックする
* 引数: $ip = チェックするIPアドレス
* $net = 期待されるネットワークアドレス
* $mask= サブネットマスク(デフォルト255.255.255.255)
* ※それぞれビット列orドット記法どちらでも良い
* 返値: boolean 入っていればtrue
*********************************************************/
function chkIP($ip, $net, $mask=0xffffffff){
//
is_int($ip) or ($ip = ip2long($ip));
is_int($net) or ($net = ip2long($net));
is_int($mask) or ($mask = ip2long($mask));
return (($ip^$net)&$mask)^0;
}
突っ込まれる前に行っておくとis_longは意図的ね。
0533140
04/12/19 23:57:19ID:???0534nobodyさん
04/12/20 00:42:46ID:???どのように実装できるんでしょうか。
0536nobodyさん
04/12/20 05:26:34ID:zyDWy5kg$arr=array(1,1,2,1,2,3) という配列があったとして、それぞれの
値の数を足したものを表示したいのですが、どうすれば良いでしょうか・・・
1 3個
2 2個
3 1個
といった感じです。宜しくお願い致します。
0538536
04/12/20 13:01:02ID:???ありがとうございました。
マニュアル読み直したら、array_count_values()というのがありました。
これで出来そうです!
0539nobodyさん
04/12/20 22:29:47ID:???static $$tmp = new $tmp;
動的にインスタンスしたオブジェクトを保持しておきたいんだが…
parse errorで止まっちまう
0541nobodyさん
04/12/21 08:09:10ID:???用語とかの使い方も間違ってるかもしれませんが・・・
class s_class{
function sample($date){
echo $date[0];
echo $date[1];
}
}
?>
このようなクラスファイルを作り
$test[] ="一番目";
$test[] ="二番目"; //配列データを作ってます
$test1 = new s_class;
$test1->sample("$test");
と、インスタンスを生成し、クラス内の配列の中身をechoで表示させるメソッドを呼び出しているのですが
「A」と「r」の文字が表示されるだけなんです
メソッドに配列データを引数にする事は可能なんでしょうか?
もし可能でしたらやり方を教えてください
0542nobodyさん
04/12/21 11:38:26ID:???$data = "$test" = "Array"
だから
$data[0] = 'A'
$data[1] = 'r'
$data[2] = 'r'
$data[3] = 'a'
$data[4] = 'y'
になる
答え
$test1->sample($test);
0543nobodyさん
04/12/21 13:47:42ID:???0544nobodyさん
04/12/21 14:57:36ID:???差分日数を算出したいんですが、
phpのシステム関数で可能ですか?
0548nobodyさん
04/12/21 16:33:12ID:???select count(*) from 条件
select * from 条件 limit ほにゃ
でやった場合、条件が複雑だったり、
textフィールドのlikeだったりすると、
重いクエリーが2回発行されることになってしまいます。
そこでlimitを使わずmysql_data_seek()と、
mysql_num_rows()でやると1回のクエリーで済み、
効率的!と思ったのですが、
全件fetchと同じぐらいの大量のメモリーを使うようです。
はてさて皆さんはどうしているのでしょうか?
0549nobodyさん
04/12/21 16:47:12ID:???一般論としてコネクションがボトルネックになるならサブクエリ+ストアド。
0550nobodyさん
04/12/21 17:02:20ID:AvesOqOiボーダフォンにのみメールが送れません。
サーバの設定なんでしょうか?
誰か類似の問題で悩んだ人いませんか?
以下、ソースです。
<?php
mb_language('ja');
mb_internal_encoding("SJIS");
$rcd = mb_send_mail("[email protected]","メール登録","登録フォーム送信" , "From: ". "[email protected]");
if($rcd){
print " メール送信成功";
}
else{
print " メール送信失敗";
}
?>
神降臨キボン
0551nobodyさん
04/12/21 17:04:34ID:???mysqlでtextにlike検索かけることもありえないし
0553nobodyさん
04/12/21 17:44:55ID:???MySQL4.0以降で、FOUND_ROWS()を使う。
http://dev.mysql.com/doc/mysql/ja/Miscellaneous_functions.html
つかこういう質問はくだ質でやらずに、MySQL関連スレでやるべき
0555nobodyさん
04/12/21 18:15:54ID:AvesOqOi0556nobodyさん
04/12/21 18:20:37ID:???0557nobodyさん
04/12/21 18:33:37ID:AvesOqOi別のレンタルサーバからは同じスクリプトで
メール送れてます。
0559nobodyさん
04/12/21 18:54:17ID:???0560nobodyさん
04/12/21 19:10:55ID:AvesOqOi解決しました。
お騒がせしました。
0561500
04/12/21 23:38:53ID:wgtiEewbやはりHTML_QuickFormは使用できないみたいなので
自前で関数を作ることにしました。
連想配列でフィールド名をkeyにして
それにたいしてさらに配列で
データの属性や最大入力値をセットしておいて
検証していこうとかなーと思いました。
↓こんな感じで。
$fields = array( "year"=>array("type"=>"int","length"=>4)・・・)
この場合だと年のフィールドには数値が4桁入るみたいな感じです。
もっと効率のよい方法があればぜひ知恵を拝借したいです。
よろしくお願いします。
0563nobodyさん
04/12/22 14:18:19ID:PAkfsMlB0564nobodyさん
04/12/22 14:36:09ID:0NGp8KFP0569nobodyさん
04/12/22 20:04:50ID:???0571nobodyさん
04/12/22 21:06:12ID:???exec($command,$result,$boolean);
で実行できるのですが、コマンドがエラーを吐いた時にエラー内容を出力
させたいのですが、できるのでしょうか?
マニュアルを見て、googleで検索しましたが出てきませんでした。
よろしくお願いします。
0575nobodyさん
04/12/23 01:41:00ID:???0577571
04/12/23 05:03:15ID:???リダイレクトは、
exec("$command > $redirect");
とかで$redirectに入ってくれるのでしょうか…(今環境なくて試せなくてすみません。)
できないというのと、できるというのはどちらが正しいのでしょうか。
0578nobodyさん
04/12/23 13:26:41ID:???よろしくお願いします
0583nobodyさん
04/12/23 13:36:45ID:???0585nobodyさん
04/12/24 03:29:30ID:???"$command > $redirect"が文字列と解析されてexecに渡されるんだから、
$redirect の値は変化しないよ。プログラミング言語の構文解析を理解しよう。
0586nobodyさん
04/12/24 07:25:48ID:???0587nobodyさん
04/12/24 09:14:28ID:???<?php
$test=1;
include 'sample2.php';
sample($test);
?>
sample2.php
<?php
function sample($data){
global $sample;
$sample = $data;
//echo $sample; ←これは表示される
}
?>
<?php
echo $sample;
?>
sample1.phpで$testの値をsample2.phpに送り
sample2.phpのfunction sample(){}の外から
送られてきたデータを表示させたいのですが、上手く行きません
function内部でグローバル関数にはしているのですが・・・
そもそもこのようなことは可能なのでしょうか?
もし可能でしたらやり方を教えてください
0588nobodyさん
04/12/24 12:44:13ID:???その書き方だと
$test=1;
↓
echo $sample; ←この時点では$sampleに何も入ってない
↓
sample($test); ←ここで$sampleに代入が行われる
って処理順になるから無理
やりたいことが分からんけど、sample()で$sampleをreturnしてそれ拾ったらダメなのか?
0589nobodyさん
04/12/24 12:52:00ID:???globalを勘違いしてるな。
<?php
$hoge = 'fuga';
$hogehoge = 'fugafuga';
function sample($data)
{
global $hoge;
echo $hoge;
echo "\n";
echo $data;
}
sample($hogehoge);
?>
//実行結果
fuga
fugafuga
//ココまで
functionの外で定義されている変数を引数として渡さずに関数に渡す方法としてglobalがある、ということ。
だから、必要もないのにglobalを使うのは控えた方が良い。
ついでに言うとincludeの解釈も何かおかしい。これ以上は面倒くさいので他の人に任せるわ。
0591nobodyさん
04/12/24 13:37:53ID:???アドレスを変数に代入しまくっておいてそれをナビゲーションバーなどの部分にincludeさせるとかでしょうか?
PHPでサイトを管理するってのは良い事(=ラク)なのでしょうか。。。
0592nobodyさん
04/12/24 14:04:44ID:???0593591
04/12/24 14:49:54ID:???すみません。(汗
具体的には全ページにリンクを貼ったり、最新の記事を表示させたり…などのことです。
「サイト構築」の方が正しい言い方でした。。。
0594nobodyさん
04/12/24 15:38:44ID:???出来合いのものではxoopsやphpnukeがそんな機能を持ってるけど、
一からそれらを作ろうとしたり、モジュール(機能クラス)を作るとなるとメンドクサイ。
ソースを公開しているものが多いので「CMS php」で検索してみるといいかも。
■ このスレッドは過去ログ倉庫に格納されています