Взимане на променливи от url и записването им

Soul_Stealler

Registered
Правя един скрипт, който взима автоматично всички променливи от url-a.
Не искам още да го пускам като урок.
Искам да му направя още опции и да изчистя бъговете (ако има такива де ...)
Ето демо:
http://soul-design.org/search/get_vars.php?aa=sef&ajsdf=412341234&afd=21&hn4=1
Можете да сложите колкото си искате променливи :wink:
Ето къде се записват:
http://soul-design.org/search/get_vars.txt


А ето и кода:
Код:
<?php
$full_url=$_SERVER['PHP_SELF'];
$get_vars = $_SERVER['REQUEST_URI']; // НЕ ПИПАЙ !
$get_vars_original = $get_vars; // НЕ ПИПАЙ !
$get_vars = str_replace($full_url."?", null, $get_vars); // НЕ ПИПАЙ !
$full_url = explode("?", $get_vars_original);
///////////////////////////// CONFIG START /////////////////////////////
$b="0"; 
$show = true; // Ако искаш да се показва какво се записва остави true. Ако не - промени го на false
$write= true; // Ако искаш да се записват променливите остави true. Ако не - промени го на false
$hour= true; // Ако искаш да се показва часа остави true. Ако не - промени го на false
$ip= true; // Ако искаш да се показва IP остави true. Ако не - промени го на false
$write_add0ns= true; // Ако искаш да се записва IP и дата остави true. Ако не - промени го на false
$hours_df= "0"; // Разликата м/у зонално време и времето на сървъра
$time_type= "M d Y H:i"; // date()
if($write && ($full_url[1] != null)){ // НЕ ПИПАЙ
$ff = fopen("get_vars.txt","a"); // Файла в който се записват
///////////////////////////// CONFIG END /////////////////////////////
}

$get_vars = explode("&", $get_vars);
if ($ip && $show){
echo "IP: <b>".$_SERVER['REMOTE_ADDR']."</b><br /> \n";
}
if ($hour && $show){
echo "Date: <b>".date($time_type, time() + 3600*$hours_df)."</b><br /> \n";
}

if(($get_vars_original != null) && ($full_url[1] != null)){
if($write && $write_add0ns){
				fwrite($ff, $_SERVER['REMOTE_ADDR']."(".date($time_type, time() + 3600*$hours_df)."), "); 
				}
for($i=0;$i<=(count($get_vars));$i++){
$new_vars = explode("=", $get_vars[$i]);
	for($a=0;$a<=(count($new_vars));$a++){
		if($new_vars[$a] != null){
		$b++;
		   if ($b == "1"){
			$new_vars[$a] = ucfirst($new_vars[$a]);
			}
			if($show){
	   	echo $new_vars[$a];
	   	}
	   	if($write){
	   	fwrite($ff, $new_vars[$a]); 
	   	}
			if ($b == "2"){
			$b="0";
				if($write){
				fwrite($ff, ", "); 
				}
			if($show){
			echo "<br /> \n";
			}
			} elseif ($b == "1"){
			$new_vars[$a] = ucfirst($new_vars[$a]);
			if($write){
			fwrite($ff, ":");
			}
			if($show){ 
			echo ": ";
			}
			}
		}
	}
}
}
if($write && ($full_url[1] != null)){
fwrite($ff, "\n");
fclose($ff); 
} 
?>

Чакам коментари, препоръки, идеи :)
 
http://soul-design.org/search/get_vars.php?Zdravete=be&ko=pravite&tova=e&qko

Харесва ми идеята ти, но не мога да схвана аз какво може да се ползва :)
 
Ами, може да се ползва да се гледа кой какви гет заявки се опитва да пробута на сървъра.
Т.е. ако видя някой да се опитва да слага неща от сорта на:
zaqvka=<?php truncate table ... ала бала
Мога веднага да го банна и т.н. :wink:
 
Soul_Stealler за това не се бях сетил :-) ще го поразгледам и може да пусна отговор с MySQL :-)
 
Ако искаш ти го направи с MySQL аз ще го донаправя това с файловете :)
Само че засега има много малко опции...
Ако някой му хрумне още какво може да се сложи нека каже :)
 
А как може да се преработи, за да може според променливата в url-а автоматично да се избира някой от option-ите на <select> (за пример давам това http://cs-bg.awardspace.com/contact.php - ако url-а е http://cs-bg.awardspace.com/contact.php?k=question да се избира от падащото меню "Въпрос")
 

Back
Горе