配布スクリプトの読めない部分を解説しちゃる
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
04/09/11 04:02:39ID:flbBPOWm配布スクリプトの中でよくわからん構文などがあったら解読&解説しちゃる。
0067nobodyさん
2006/04/24(月) 15:55:03ID:???たぶんそう。
mb_stringかJcodeConvertがあるかどうか調べて
いずれかがあったら変換してるみたいだね。
0068nobodyさん
2006/04/24(月) 18:24:23ID:???0070nobodyさん
2006/04/28(金) 21:39:59ID:Na6jyHe3function ssl_encrypt($source,$type,$key){
//Assumes 1024 bit key and encrypts in chunks.
$maxlength=117;
$output='';
while($source){
$input= substr($source,0,$maxlength);
$source=substr($source,$maxlength);
if($type=='private'){
$ok= openssl_private_encrypt($input,$encrypted,$key);
}else{
$ok= openssl_public_encrypt($input,$encrypted,$key);
}
$output.=$encrypted;
}
return $output;
}
0071nobodyさん
2006/04/28(金) 21:41:13ID:Na6jyHe3function ssl_decrypt($source,$type,$key){
// The raw PHP decryption functions appear to work
// on 128 Byte chunks. So this decrypts long text
// encrypted with ssl_encrypt().
$maxlength=128;
$output='';
while($source){
$input= substr($source,0,$maxlength);
$source=substr($source,$maxlength);
if($type=='private'){
$ok= openssl_private_decrypt($input,$out,$key);
}else{
$ok= openssl_public_decrypt($input,$out,$key);
}
$output.=$out;
}
return $output;
}
0072nobodyさん
2006/04/29(土) 23:26:03ID:???OpenSSLモジュールを使ってそれぞれ暗号化(encrypt)と復号化(decrypt)をしている関数に見える。
128バイトごとに分割しながら処理してるね。
OpenSSL関数やOpenSSLそのものについてはマニュアルやgoogle参照ということで。
0073nobodyさん
2006/05/30(火) 08:54:13ID:D128RUeT@log_lines=();
if(!$EST{html}){%Clog=();}
local(@temp_lines,%temp_ref,$line,@kt,$kt,@Slog,$st_no,$end_no,$i=0,$j=0);
$end_no=$EST{hyouji}*$LC_page -1;
$st_no=$end_no - $EST{hyouji} +1;
if(!$EST{html}){
open(IN,"$EST{log_path}$Spre_kt_file.cgi");
while($line=<IN>){
@Slog=split(/<>/,$line);
@kt=split(/&/,$Slog[10]);
foreach $kt(@kt){
if($LC_kt eq $kt){
$temp_ref{$Slog[0]}=$i;
push(@temp_lines,$line);
$i++;
}
$Clog{$kt}++;
}
}
close(IN);
続く↓↓
0074nobodyさん
2006/05/30(火) 08:56:35ID:D128RUeTforeach $line(sort{$b <=> $a}(keys %temp_ref)){
if($st_no<=$j && $j<=$end_no){
push(@log_lines,$temp_lines[$temp_ref{$line}]);
}
$j++;
}
undef(@temp_lines); undef(%temp_ref);
}
よろしくお願いします
0075nobodyさん
2006/05/30(火) 16:45:44ID:???これは何のスクリプト?
ログの中からなんらかの条件($LC_kt)に合ったものを読み込んで
ログの一番最初のパラメータ(たぶん書き込みID?)でソートして、
指定されたページのところから
表示数文取り出して@log_linesに入れて返しているように見える。
けど、ログの形式もわかんないし、
いくつか使われてるグローバル変数の意味もわかんないし
なんともいえない。
実際のログファイルを見ながらなら
読めるんじゃないかな。
0076nobodyさん
2006/06/22(木) 03:53:34ID:4vrB1Nlw$_GET = array_map("_clean", $_GET);
$_POST = array_map("_clean", $_POST);//11/8修正
extract($_GET);
extract($_POST);
extract($_COOKIE);
extract($_SERVER);
$upfile_type=_clean($_FILES['upfile']['type']);
$upfile_size=$_FILES["upfile"]["size"];
$upfile_name=_clean($_FILES["upfile"]["name"]);
$upfile=$_FILES["upfile"]["tmp_name"];
}
を説明していただけませんか?
0078nobodyさん
2006/06/22(木) 08:13:20ID:4vrB1Nlw教えて頂ければ大変嬉しいです!
0079nobodyさん
2006/06/24(土) 09:00:44ID:???恐らくサニタイズしているようだね。
例えば $_POST['foo'] を $foo と使えるようにしている。
ttp://coronado.s8.xrea.com/php/function.extract.php
ttp://coronado.s8.xrea.com/php/function.array-map.php
$_COOKIE や $_SERVER はサニタイズしていないから危険だね。
0080nobodyさん
2006/06/24(土) 09:02:27ID:???そのまま使っていそうだけど
ttp://coronado.s8.xrea.com/php/function.is-uploaded-file.php
ttp://coronado.s8.xrea.com/php/function.move-uploaded-file.php
ttp://coronado.s8.xrea.com/php/features.file-upload.php
でチェックすべき。
0082nobodyさん
2006/06/24(土) 14:18:28ID:???バージョンを比較するなら
version_compare()
ttp://coronado.s8.xrea.com/php/function.version-compare.php
の方が相応しいね。
0083nobodyさん
2006/06/29(木) 22:48:30ID:JkUV3tHw$ref->{q_line} = param("line") ne "" ? param("line") : $ref->{line};
というスクリプトの ? や、 : の使い方が分かりません。
何で検索していいのかも分かりません・・・orz
0084nobodyさん
2006/06/30(金) 01:18:36ID:???「条件演算子」で検索しる
0085nobodyさん
2006/06/30(金) 14:09:16ID:???真ん中が条件とは・・・
0086nobodyさん
2006/07/12(水) 11:38:24ID:???そのサンプルに限ると3項演算子よりも
$ref->{q_line} = param("line") || $ref->{line};
がシンプル。
本7って何よ?
0089nobodyさん
2013/06/15(土) 21:32:22.92ID:jrOK9IM3■ このスレッドは過去ログ倉庫に格納されています