Hello:)
Myslite ze by z toho phpckovyho kodu slo neco zajimavyho vytahnout, neco co byse dalo potencionelne vyuzit...
thx for answer
<?php
//
// "univerzalni" skript pro volani databazovych procedur pomoci PHP3
//
// parametr databaze nutno nastavit dle tnsnames.ora !!!!!!!
//
$db="st2pl.rick.cz";
function chyba($zprava)
{
echo "<HTML>n<HEAD>n";
printf ("%sn", '<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-2">');
echo "</HEAD><BODY>n";
error_log("Error at URL : $PHP_SELF?$QUERY_STRINGn", 0);
echo "<P><CENTER><HR><H2> ;Při zpracování požadavku nastala chyba<BR>n";
echo "<FONT SIZE=-1><i>($zprava)</i>< br></FONT>n";
//
// vytvoreni chybove hlasky pristupne z javascriptu
$g=OCIError();
$mes=str_replace(';',',',$g[message]);
$mes=substr($mes,0,strlen($mes)-1);
echo "Prosim informujte ";
$fp=@fopen("mail","r");
$adresa=@fgets($fp,100);
@fclose($fp);
if (!empty($adresa))
echo "<A OnMouseOut='alert("$mes")' HREF="mailto:$adresa">$adresa</A>" ;
// echo "<A OnMouseOut='alert("xxx")' HREF="mailto:$adresa">$adresa</A>" ;
else
echo "správce systému";
echo "</H2><HR></CENTER>n";
echo "</BODY>n</HTML>n";
die;
}
/* HTTP hlavicka */
header("Content-Type: text/html; charset=iso-8859-2");
header("Cache-Control: no-cache, age=0");
/* ziskani jmena procedury */
$pname = strrchr($PHP_SELF, "/");
$len = strlen($pname) - 1;
$pname = substr($pname, 1, $len);
/* prvni stranka se nastavuje automaticky */
if ($pname=="index")
$pname="pg$_znamky.seznam";
/* Vytvoreni anonymniho PL/SQL bloku s volanim procedury */
$pcall = "begin ".$pname;
$param = 0; // vynulovani citace parametru
/* Zpracovani parametru predavanych metodou GET */
if (sizeof ($HTTP_GET_VARS) > 0) {
while (list($key, $val) = each($HTTP_GET_VARS)) {
if ($param == 0) $pcall = $pcall."(";
if ($param > 0) $pcall = $pcall.", ";
$pcall = $pcall.$key." => ";
if (strlen($val) == 0) {
$pcall = $pcall."NULL";
} else {
$val = str_replace("'", "''", $val);
$val = str_replace("%3A", ":", $val);
$val = str_replace("%24", "$", $val);
$val = str_replace("%20", " ", $val);
$pcall = $pcall."'$val'";
}
$param++;
}
}
/* Zpracovani parametru predavanych metodou POST */
if (sizeof ($HTTP_POST_VARS) > 0) {
while (list($key, $val) = each($HTTP_POST_VARS)) {
if ($param == 0) $pcall = $pcall."(";
if ($param > 0) $pcall = $pcall.", ";
$pcall = $pcall.$key." => ";
if (strlen($val) == 0) {
$pcall = $pcall."NULL";
} else {
$val = str_replace("'", "''", $val);
$val = str_replace("%3A", ":", $val);
$val = str_replace("%24", "$", $val);
$val = str_replace("%20", " ", $val);
$pcall = $pcall."'$val'";
}
$param++;
}
}
if ($param > 0) $pcall = $pcall.")";
$pcall = $pcall."; end;";
// #Kasak konec uprav
if (empty($pcall)) chyba('Taková stránka neexistuje');
//
function autenticate()
{
Header( "WWW-authenticate: basic realm='ZNAMKY'");
Header( "HTTP/1.0 401 Unauthorized");
chyba("Musíte zadat uživatelské jméno a heslo !");
exit;
}
if (!(isset($PHP_AUTH_USER) && isset($PHP_AUTH_PW)))
autenticate();
$conn=@OCIlogon($PHP_AUTH_USER,$PHP_AUTH_PW ,$db);
// #KASAK 1.1
if (OCIError()){
autenticate();
exit;
}
//
// echo "$pcalln"; // pro ladeni
/* Vlastni vyvolani procedurky, ktera vyrabi stranku */
$stat = @OCIParse($conn, $pcall);
$res = @OCIExecute($stat, OCI_DEFAULT);
if ($res != 1) {
chyba("chyba při vyvolání stránky - $pcall");
} else {
/* Get generated HTML code : */
$stmt = @OCIParse($conn, "begin :res := pg$_www.get_line(:line); end;");
@OCIBindByName($stmt, ":res", &$res, 32);
@OCIBindByName($stmt, ":line", &$line, 256);
for (;;) {
@OCIExecute($stmt, OCI_DEFAULT);
if ($res == 0) break;
echo $line;
}
@OCIFreeStatement($stmt);
}
@OCIFreeStatement($stat);
@OCIlogoff($conn);
?>
(odpovědět) |