2010-12-17 96 views
2

我是一个真正的noob与PHP,所以这里'去。如何在未提交表单时停止运行代码?

我有一个脚本编辑与它形式放什么文件中的文件,但每次我去的网页时,它运行的脚本,并清除文件我把它放在面前。

另外,我该如何将它提交给其他页面,而不仅仅是我所做的页面?

<?php 

$ourFileName = $_GET['page']; 
$ourFileHandle = fopen($ourFileName, 'w') or die("can't open file"); 
$stringData = $_POST['stuff']; 
fwrite($ourFileHandle, $stringData); 
fclose($ourFileHandle); 

?> 

<form action="edit.php?page=index.html" method="post"> 
<textarea name="stuff" rows="10" cols="50" wrap="virtual" maxlength="300"></textarea> 
<input name="submit" type="submit" value="Submit"> 
</form> 

回答

0

把文件管理代码内部的if (isset $_POST['stuff']) {...}

2

你想要a+ flag作为你的第二个参数。

开放阅读和写作;将文件指针放在文件的末尾。如果文件不存在,请尝试创建它。

此外,使用GET参数去打开一个文件,让你对各种漏洞的开放,如directory traversal attacks,并写入到您现有的PHP文件(这反过来又可以让恶意用户做任何PHP可以做)。

你还应该确保在访问它们之前设置这些变量(并因此打开文件并不必要地写入)。

if (isset($_GET['page']) AND isset($_POST['stuff'])) { ... } 

要提交到其他页面,改变你的formaction属性指向新的一页。

+0

它的工作,但堆栈溢出,我等上六分钟,我可以给你正确的答案。与此同时,您如何在尚未工作的情况下获得这些查询?我想不知怎么从那里得到PHP中的变量。我明白你对这些可玩性的看法。它只是受密码保护的更大脚本的一部分。 – IceCat 2010-12-17 00:22:36

+0

@IceCat'你在GET的时候怎么没有这些查询?'你能否详细说明一下,我不确定你的意思。 – alex 2010-12-17 00:28:19

+0

IceCat 2010-12-17 00:30:19