Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.40 veröffentlicht (28.05.26)


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, 20: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