Beiträge: 4
Themen: 1
Registriert seit: 09.11.2011
Hallo, ich hab folgendes problem.
Ich habe ein Script das MSSQL benutzt, udn wollte es auf einer externen seite haben, habe das Add-on Pagemanager probiert, es kam ein error. Ich hab es manuel probiert, wenn ich HTML und php aufspalte kriege ich zwar kein error, aber das script funktioniert nicht o:
Hat jemand vll eine Idee wie das funktionieren kann ?
Beiträge: 25.762
Themen: 269
Registriert seit: 20.09.2005
Bitte achte auf deine Rechtschreibung und beschreibe das Problem ausführlicher.
Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Beiträge: 1.463
Themen: 18
Registriert seit: 22.03.2009
MyBB nutzt MySQL und kann mit MSSQL nichts anfangen.
Beiträge: 4
Themen: 1
Registriert seit: 09.11.2011
Die MSSQL daten werden in dem Script eingetragen.
Der Error mit dem Plugin pagemanager lautet:
Code: Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\AppServ\www\inc\plugins\pagemanager.php(794) : eval()'d code on line 9
Wenn ich allerdings einstelle, das es ohne das Foren-Design angezeigt werden soll, funktioniert es.
Beiträge: 25.762
Themen: 269
Registriert seit: 20.09.2005
Ohne den dazugehörigen Code, kann man zu der Meldung leider nichts sagen...
Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Beiträge: 4
Themen: 1
Registriert seit: 09.11.2011
Hier ist das SCript, MSSQL daten zensiert.
Code: <?php
$ip = $_SERVER['REMOTE_ADDR'];
$time = date("l dS of F Y h:i:s A");
$script = $_SERVER[PATH_TRANSLATED];
$fp = fopen ("GuildRejoin.txt", "a+");
$sql_inject_1 = array(";","'","%",'"'); #Whoth need replace
$sql_inject_2 = array("", "","","""); #To wont replace
$GET_KEY = array_keys($_GET); #array keys from $_GET
$POST_KEY = array_keys($_POST); #array keys from $_POST
$COOKIE_KEY = array_keys($_COOKIE); #array keys from $_COOKIE
/*begin clear $_GET */
for($i=0;$i<count($GET_KEY);$i++)
{
$real_get[$i] = $_GET[$GET_KEY[$i]];
$_GET[$GET_KEY[$i]] = str_replace($sql_inject_1, $sql_inject_2, HtmlSpecialChars($_GET[$GET_KEY[$i]]));
if($real_get[$i] != $_GET[$GET_KEY[$i]])
{
fwrite ($fp, "IP: $ip\r\n");
fwrite ($fp, "Method: GET\r\n");
fwrite ($fp, "Value: $real_get[$i]\r\n");
fwrite ($fp, "Script: $script\r\n");
fwrite ($fp, "Time: $time\r\n");
fwrite ($fp, "==================================\r\n");
}
}
/*end clear $_GET */
/*begin clear $_POST */
for($i=0;$i<count($POST_KEY);$i++)
{
$real_post[$i] = $_POST[$POST_KEY[$i]];
$_POST[$POST_KEY[$i]] = str_replace($sql_inject_1, $sql_inject_2, HtmlSpecialChars($_POST[$POST_KEY[$i]]));
if($real_post[$i] != $_POST[$POST_KEY[$i]])
{
fwrite ($fp, "IP: $ip\r\n");
fwrite ($fp, "Method: POST\r\n");
fwrite ($fp, "Value: $real_post[$i]\r\n");
fwrite ($fp, "Script: $script\r\n");
fwrite ($fp, "Time: $time\r\n");
fwrite ($fp, "==================================\r\n");
}
}
/*end clear $_POST */
/*begin clear $_COOKIE */
for($i=0;$i<count($COOKIE_KEY);$i++)
{
$real_cookie[$i] = $_COOKIE[$COOKIE_KEY[$i]];
$_COOKIE[$COOKIE_KEY[$i]] = str_replace($sql_inject_1, $sql_inject_2, HtmlSpecialChars($_COOKIE[$COOKIE_KEY[$i]]));
if($real_cookie[$i] != $_COOKIE[$COOKIE_KEY[$i]])
{
fwrite ($fp, "IP: $ip\r\n");
fwrite ($fp, "Method: COOKIE\r\n");
fwrite ($fp, "Value: $real_cookie[$i]\r\n");
fwrite ($fp, "Script: $script\r\n");
fwrite ($fp, "Time: $time\r\n");
fwrite ($fp, "==================================\r\n");
}
}
/*end clear $_COOKIE */
fclose ($fp);
?>
<?php
if(isset($_POST['submit5'])){
$char = $_POST['charname'];
$link = @mssql_connect("MSSQL", "sa", "PW") or die ("Down ?");
$db = @mssql_select_db('CHARACTER_01_DBF') or die ("Down?");
$query = mssql_query("SELECT m_szName FROM CHARACTER_TBL WHERE m_szName = '$char'");
$result = mssql_fetch_row($query);
if($char =='') {$error1 = '<font color="red">Please type in all the description fields.</font>';}
else if ($result[0] != $char) {$error1 = '<font color="red">There is no character called "'.$char.'".</font>';}
else { mssql_query("UPDATE CHARACTER_TBL SET m_tGuildMember = '20110101000000' WHERE m_szName = '$char'");
$error1 = '<font color="green">Your Rejoin Time has been successfully reset</font>';}
mssql_close();}
echo ''.$error1;
?>
<form action="misc.php?page=rejoin" method="post"><br/>
<label style="">Charaktername:</label> <input type="text" name="charname" />
<br>
<input style="" type="submit" name="submit5" value="Reset Character"/></center>
Beiträge: 1.463
Themen: 18
Registriert seit: 22.03.2009
# ist in C(++) vielleicht eine Auskommentierung. In PHP ist das aber // aber auch /* und */ geht.
Beiträge: 25.762
Themen: 269
Registriert seit: 20.09.2005
(09.11.2011, 19:26)Falkenauge Mihawk schrieb: # ist in C(++) vielleicht eine Auskommentierung. In PHP ist das aber // aber auch /* und */ geht. Unsinn, das ist vollkommen korrekt: http://www.php.net/manual/de/language.ba...mments.php
Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Beiträge: 4
Themen: 1
Registriert seit: 09.11.2011
In C++ ist es genauso mit dem Auskommentieren wie in PHP.
Auch wenn ich die Kommentierung ändere, funktioniert es nicht o:
Ich frage mich ja besonders, wieso es funktioniert wernn ich die MYBB-Template funktion im Pagemanager deaktivere, und nicht wenn ich diese funktion aktiv habe oo
Beiträge: 1.463
Themen: 18
Registriert seit: 22.03.2009
09.11.2011, 23:31
(Dieser Beitrag wurde zuletzt bearbeitet: 09.11.2011, 23:44 von Falkenauge Mihawk.)
Meiner Meinung nach ist der Code sowieso Quark. Anstatt array_keys() und for() könntest du das ganze mit foreach() vereinfachen.
edit: Etwas produktives:
PHP-Code: <?php
$ip = $_SERVER['REMOTE_ADDR']; $time = date("l dS of F Y h:i:s A"); $script = $_SERVER['PATH_TRANSLATED']; $sql_inj = array(";" => "", "'" => "", "%" => "", "\"" => """); //Need to be replaced
/*begin clear $_GET */ foreach($_GET as $key => $val) { foreach($sql_inj as $skey => $sval) { $key = str_replace($skey, $sval, $key); }
//if($real_get[$i] != $_GET[$GET_KEY[$i]]) - wäre eigentlich hier, macht aber keinen Sinn, da du immer den selben Inhalt in beiden Variablen haben wirst. So würde es praktisch aussehen: if($key != $key) file_put_contents("IP: ".$ip."\r\nMethod: GET\r\nValue: ".$key."\r\nScript: ".$script."\r\nTime: ".$time."\r\n==================================\r\n", "GuildRejoin.txt", FILE_APPEND); } /*end clear $_GET */
/*begin clear $_POST */ foreach($_POST as $key => $val) { foreach($sql_inj as $skey => $sval) { $key = str_replace($skey, $sval, $key); }
//if($real_post[$i] != $_POST[$POST_KEY[$i]]) - das selbe hier file_put_contents("IP: ".$ip."\r\nMethod: POST\r\nValue: ".$key."\r\nScript: ".$script."\r\nTime: ".$time."\r\n==================================\r\n", "GuildRejoin.txt", FILE_APPEND); } /*end clear $_POST */
/*begin clear $_COOKIE */ foreach($_COOKIE as $key => $val) { foreach($sql_inj as $skey => $sval) { $key = str_replace($skey, $sval, $key); }
//if($real_cookie[$i] != $_COOKIE[$COOKIE_KEY[$i]]) - das selbe hier file_put_contents("IP: ".$ip."\r\nMethod: COOKIE\r\nValue: ".$key."\r\nScript: ".$script."\r\nTime: ".$time."\r\n==================================\r\n", "GuildRejoin.txt", FILE_APPEND); } /*end clear $_COOKIE */
//Der Rest ist ganz okay.
if(isset($_POST['submit5'])){ $char = $_POST['charname']; $link = @mssql_connect("MSSQL", "sa", "PW") or die ("Down ?"); $db = @mssql_select_db('CHARACTER_01_DBF') or die ("Down?"); $query = mssql_query("SELECT m_szName FROM CHARACTER_TBL WHERE m_szName = '$char'"); $result = mssql_fetch_row($query);
if($char =='') {$error1 = '<font color="red">Please type in all the description fields.</font>';} else if ($result[0] != $char) {$error1 = '<font color="red">There is no character called "'.$char.'".</font>';} else { mssql_query("UPDATE CHARACTER_TBL SET m_tGuildMember = '20110101000000' WHERE m_szName = '$char'"); $error1 = '<font color="green">Your Rejoin Time has been successfully reset</font>';} mssql_close();} echo ''.$error1; ?> <form action="misc.php?page=rejoin" method="post"><br/> <label style="">Charaktername:</label> <input type="text" name="charname" /> <br> <input style="" type="submit" name="submit5" value="Reset Character"/></center>
|