2015-02-10 64 views
-1

我創建了兩個php文件。第一個是encrypt.php,它將textareas發送到handleData.php。目前這只是將輸入保存到文本文件中,但即使這樣也行不通。文本文件保持原來的狀態,並且後期似乎沒有傳遞任何數據。我也嘗試過顯式回顯數據,但它仍然是空白的。爲什麼帖子不發送任何數據?我所做的一切都是正確的,據我所看到並命名文字區域,但它拒絕工作

encrypt.php

<form method="POST" action="handleData.php">                                 
    <p><textarea name="plaintext" placeholder="Enter text to encrypt" rows="10" cols="50"><?php echo exec("cat input.txt")?></textarea></p>          
    <p><textarea name="ciphertext" placeholder="Enter text to decrypt" rows="10" cols="50"><?php echo exec("cat output.txt")?></textarea></p>          
    <p><input type="submit" value="Encrypt/Decrypt" onClick="location.reload()"></p>                        
</form> 

handleData.php

<?php                                             
    $num = "3128342308234";                                       

    $plain = (isset($_POST['plaintext'])) ? htmlspecialchars($_POST['plaintext']) : 'test';                       
    $cipher = (isset($_POST['ciphertext'])) ? $_POST['ciphertext'] : '';                            
    echo $_POST['plaintext'];                                       
    exec("$plain >> input.txt");                                      
    $command = "encryptPoly ".$num." ".$plain;                                   
    exec("rm output.txt");                                        
    exec($command." >> output.txt");                                     
?> 
+0

我試圖讓這個使用PHP工作,但我結束了使用Python的網絡模塊,能夠做到這一點更容易。儘管謝謝你的幫助。 – zlittrell 2015-02-12 04:36:35

回答

0

你重新加載頁面,因此不提交,

<p><input type="submit" value="Encrypt/Decrypt" onClick="location.reload()"></p> 

只需刪除onClick:

<p><input type="submit" value="Encrypt/Decrypt"></p> 

並確保此操作與當前文件名稱相同。

<form method="POST" action="handleData.php"> 
+0

問題是,您正試圖在重新加載當前數據時將數據發送到單獨的頁面,請嘗試刪除onclick事件。 – 2015-02-10 01:55:18

+0

我正在使用單獨的頁面更新文本文件,然後通過php代碼「exec(」cat output.txt)「顯示在原始文本文件中。」onClick是否會導致POST不發送? – zlittrell 2015-02-10 04:53:48

+0

正如我所說在回答'你正在重新加載頁面,因此不提交',通過添加你自己的'onClick'事件,你正在刪除默認動作。 – 2015-02-10 11:16:22

0

你可以試試這個:

<?php                                             
$num = "3128342308234";                                       

$plain = (isset($_POST['plaintext'])) ? htmlspecialchars($_POST['plaintext']) : 'test';                       
$cipher = (isset($_POST['ciphertext'])) ? $_POST['ciphertext'] : '';                            
echo $_POST['plaintext'];                                       
exec("$plain >> input.txt");                                      
$command = "encryptPoly ".$num." ".$plain;                                   
exec("rm output.txt");                                        
exec($command." >> output.txt");                                     
?> 

到:

<?php                                             
$num = "3128342308234";                                       

$plain = (isset($_POST['plaintext'])) ? htmlspecialchars($_POST['plaintext']) : 'test';                       
$cipher = (isset($_POST['ciphertext'])) ? $_POST['ciphertext'] : '';                            
echo $_POST['plaintext'];                                       
exec("$plain >> input.txt");                                      
$command = "encryptPoly ".$num." ".$plain;                                   
exec("rm output.txt");                                        
exec($command." >> output.txt"); 

header('Location: ' . $_SERVER['HTTP_REFERER']);// Go back to previous page. 

?> 
+0

我試過這個,它什麼都沒做。還刪除onClick只是讓頁面不刷新現在,POST仍然不起作用 – zlittrell 2015-02-11 02:05:15