Hallo, Gast! (Registrieren)

Wir wünschen allen Besuchern frohe und besinnliche Weihnachten!

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
MSSQL
#1
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 ?
Zitieren
#2
Bitte achte auf deine Rechtschreibung und beschreibe das Problem ausführlicher.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#3
MyBB nutzt MySQL und kann mit MSSQL nichts anfangen.
Zitieren
#4
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.
Zitieren
#5
Ohne den dazugehörigen Code, kann man zu der Meldung leider nichts sagen...
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#6
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("", "","","&quot;"); #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>
Zitieren
#7
# ist in C(++) vielleicht eine Auskommentierung. In PHP ist das aber // aber auch /* und */ geht.
Zitieren
#8
(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
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#9
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
Zitieren
#10
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(";" => """'" => """%" => """\"" => "&quot;"); //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> 
Zitieren