2013-05-21 51 views
0

我從我的應用程序提交表單時遇到問題。允許以PHP方式發送Javascript代碼發佈於PHP

我需要將一些JavaScript代碼從表單發送到控制器頁面。在HTML代碼如下:

<form method="post" action="controller/mycontroller.php"> 
    <textarea name="code"></textarea> 
    <input type="submit" value="send" /> 
</form> 

如果我送的textarea的「Hello world」例如,控制器工作正常,但如果我嘗試把一些javascript代碼就像alert(1);我從服務器獲取禁止的消息。

任何解決方案發送javascript代碼到服務器作爲字符串像過濾器或允許在.htaccess文件上的東西?

謝謝!

重新編輯: 測試例如:http://pruebas.intelectiva.biz/test/

+0

Apache不關心什麼您是送 – zerkms

+0

你爲什麼試圖客戶端腳本發送到您的服務器在第一位? –

+0

什麼是錯誤日誌? – Robert

回答

2

你必須首先轉換textarea的JavaScript文本到r像brakets代碼放入隨機字母,你永遠不會使用。

<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> 
<script> 
$(document).ready(function() { 
    $("#send").click(function(event) { 
     event.preventDefault(); 

     var code = $("#code").val(); 

     code = code.replace(/\(/g, "^)·("); 
     code = code.replace(/\{/g, "=?¿¡12"); 
     code = code.replace(/\</g, "++ççcsacsa"); 

     $("#code").val(code); 
     alert (code); 

     $("#form").submit(); 
    }); 
}); 
</script> 

,然後在服務器端重新轉換文本到你想要的文字:

<?php 
$code = $_POST['code']; 
$code = str_replace('^)·(', '(', $code); 
$code = str_replace('=?¿¡12', '{', $code); 
$code = str_replace('++ççcsacsa', '<', $code); 
echo '<script>'. $code . '</script>'; 
?> 
+0

這對我很有用!謝謝Meklk90! – Enacefio

0

它不取決於你所發佈什麼,但我認爲這取決於你在哪裏張貼,你確定這action="controller/mycontroller.php"是正確的?

嘗試action="http://www.mysite.com/controller/mycontroller.php"代替

也發表您的.htaccess,如果你有一個

,是的,把你的項目文件夾和文件,以正確的權限,如果從殼:

sudo chmod 755 <filename> 
+0

我現在沒有.htaccess。但路徑是正確的。當我發佈正常的字符串,形成完美的作品。但是,如果我發佈alert(1)這樣的JavaScript代碼,我會收到來自服務器的禁止消息。 – Enacefio

0

如果你得到一個禁止的錯誤,那肯定是一個權限錯誤。 它早就發生在我身上了。只需右鍵單擊您的Web目錄,並確保「其他用途」的文件「controller/mycontroller.php」的權限設置爲「read」,如果您在Ubuntu上

請問您可以告訴我們哪個操作系統你在用嗎?

(順便說一下,當你說行動=「控制器/ mycontroller.php」這意味着該文件夾控制器在同一文件夾中的HTML表單)

也執行JavaScript你的PHP文件應該看起來像這樣:

<?php 
    echo "<script>" . $_POST['code'] . "</script>"; 
?> 

編輯: 嘿朋友! 我想我的服務器上的例子,它的工作,這裏是我的應用程序:

http://106.51.68.115/test/x.html 

,而不是形式提交到另一個PHP文件試圖將其提交到同一個文件中:

<form method="post" action="controller/mycontroller.php"> 
    <textarea name="code"></textarea> 
    <input type="submit" value="send" /> 
</form> 

<?php 
if(isset($_POST['code'])){ 
print "<script>".$_POST['code']."</script>"; 
} 
?> 

編輯XYZ: 試試這個代碼,它不涉及PHP,我認爲它應該工作:

<html> 
<body> 
<form name = "x"> 
<textarea id="code"></textarea></form><button onclick="document.write('<script>'+document.x.code.value+'</script>');">send</button> 
</body> 
</html> 
+0

我正在使用windows。但是服務器是一個共享的網絡服務器,我將它放在Linux下。 – Enacefio

+0

查看我的網址@Enacefio我已經使用了您爲html頁面提供的代碼以及我爲php頁面提供的代碼(順便說一下,IP將僅適用於今天) – user2381080

+0

@okok,shell你提供的代碼只適用於unix環境,Enacefio使用windows – user2381080