|
Confirmed User
Join Date: May 2005
Posts: 2,737
|
Quote:
Originally Posted by salsbury
This could generate extraneous warnings if the error reporting level is high enough. Additionally, unless underlying OS code is updated and PHP incorporates some changes, the time will wrap at about 2038. Fixed:
Code:
<?php // Beginning of PHP code
set_locale('LC_TIME', 'en_US'); // US time
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
$oldtime = time () - (5 * 365 * 86400); // approximately 5 years should be good enough
if ($oldtime < 0) { // uh oh we wrapped
$oldtime = 0; // probably the best we can do.
}
$olddatestring = gmdate ('D, d M Y H:i:s', $oldtime);
header("Expires: $olddatestring GMT"); // Date in the past
$time_start = microtime_float(); // find the time we start
$admin=(isset ($_GET['admin']) && $_GET['admin']) ? TRUE : FALSE); // we're only an administrator if we are.
$safedate = sprintf("%2d", date("d")); // Make sure the string is safe and padded.
$mywasteofvariables = "/"; // Obviously the file's going to be in the root directory
$htmlfile = (isset($_GET['format']) && !empty($_GET['format'])) ? $_GET['format'] : "html"; // HTML is .html.
$htmlfile = preg_replace("/[^a-z0-9\\040\\.\\-\\_\\\\]/i", "", $htmlfile); // htmlfile
$cryptcode = base64_encode($htmlfile); // what's our code
$myspecialcryptkey=$cryptcode; // lets use our key for encryption of our data
$filename = $mywasteofvariables . $safedate . '.' . $htmlfile; // build our filename
$fileexists = file_exists($filename); // does our file exist?
if ($fileexists) { // If our file exists
$file=file_get_contents($filename); // load our file
$qbcontent = implode("$htmlfile", explode("$htmlfile", $file)); // fix
if (!$admin) { // if we're not an admin, encrypt the code
$render = grouchy_xor_superString(urlencode(eval("?>".stripslashes($qbcontent)."<? ")), $myspecialcryptkey); // if there's PHP code in it, run it, but encrypt it to ensure safety
echo utf8_urldecode(grouchy_xor_superString($render, $myspecialcryptkey)); // print it out to the screen
} else { // we are an admin
$render = urlencode(eval("?>".stripslashes($qbcontent)."<? ")); // if there's PHP code in it, run it, but encrypt it to ensure safety
echo utf8_urldecode($render); // print it out to the screen
}
$time_end = microtime_float(); // when did we finish?
$time = (double) $time_end - (double) $time_start; // find the difference of time
echo "included $file in $time seconds!!!"; //killer stats
echo "IT IS NOW " . strftime("%H:%M:%S") . "!!!\n";
} // end of function
exit; // quit PHP
// copied from PHP.net or something I dont really know what it does
if (!function_exists('file_get_contents')) {
function file_get_contents($filename, $incpath = false, $resource_context = null)
{
if (false === $fh = fopen($filename, 'rb', $incpath)) {
trigger_error('file_get_contents() failed to open stream: No such file or directory', E_USER_WARNING);
return false;
}
clearstatcache();
if ($fsize = @filesize($filename)) {
$data = fread($fh, $fsize);
} else {
$data = '';
while (!feof($fh)) {
$data .= fread($fh, 8192);
}
}
fclose($fh);
return $data;
}
}
// something else i found on php.net - we can now time this function!!!!
function microtime_float()
{
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
// php.met is neat - what's all these squiggly things tho
function utf8_urldecode($str) {
$str = preg_replace("/%u([0-9a-f]{3,4})/i","&#x\\1;",urldecode($str));
return html_entity_decode($str,null,'UTF-8');;
}
// This is mine. Donot steel.
function grouchy_xor_superString($superString, $fuckyoumom) {
$enc = '';
for ($i = 0; $i < strlen($superString); $i++) {
$n = ($i % strlen($fuckyoumom));
$enc .= substr($fuckyoumom, $n, 1) ^ substr($superString, $i, 1);
}
return $enc;
}
?>
|
Thankyou for submitting a code patch. Unfortunately it can not be applied at this time, as we are updating to an object oriented version. Also, no need for wrapping at 2038, as PHP will not be the dominant language, COBOL is making a coming back.
Regards,
Staff - LearnToCodeGooder.com
__________________
PHP-MySQL-Rails | ICQ: 342500546
|