То, чего я хочу достичь, это в основном установка переменных из данных, введенных через мою форму (эти переменные затем используются на моем веб-сайте). Я не беспокоюсь о безопасности, поскольку я единственный, кто имеет доступ к форме.
Итак, на данный момент я использую fwrite
для сохранения данных в отдельных файлах, а затем использую file_get_contents
для каждой переменной. Данные из формы маленькие, одно или два слова для каждого поля.
Я не могу использовать базу данных, поэтому ниже приведен пример того, чем я сейчас занимаюсь, можно ли ее улучшить или есть ли другие способы добиться этого?
<?php
if(isset($_REQUEST['sub']))
{
$myFile = "first.php";
$fh = fopen($myFile, 'w') or die("can't open file");
$stringData = $_REQUEST['first'];
$string = preg_replace("/[^a-zA-Z0-9.:,=?%\/\\s]/", "", $stringData);
fwrite($fh, $string);
fclose($fh);
$myFile_second = "second.php";
$fh2 = fopen($myFile_second, 'w') or die("can't open file2");
$stringData2 = $_REQUEST['second'];
$string2 = preg_replace("/[^a-zA-Z0-9.:,=?%\/\\s]/", "", $stringData2);
fwrite($fh2, $string2);
fclose($fh2);
$myFile_third = "third.php";
$fh3 = fopen($myFile_third, 'w') or die("can't open file3");
$stringData3 = $_REQUEST['third'];
$string3 = preg_replace("/[^a-zA-Z0-9.:,=?%\/\\s]/", "", $stringData3);
fwrite($fh3, $string3);
fclose($fh3);
}
$first = file_get_contents ("first.php");
$second = file_get_contents ("second.php");
$third = file_get_contents ("third.php");
?>
<form method="post" name="installer">
<div id="field">
<label>First</label>
<input type="text" name="first" value="<?php echo $first; ?>" />
</div>
<div id="field">
<label>Second</label>
<input type="text" name="second" value="<?php echo $second; ?>" />
</div>
<div id="field">
<label>Third</label>
<input type="text" name="third" value="<?php echo $third; ?>" />
</div>
<div id="submit">
<input type="submit" value="Save" name="sub" />
</div>
</form>
Любые предложения будут высоко оценены, спасибо:)
Обновление
Ну, спасибо всем за вашу помощь и предложения. Теперь я реализовал нечто похожее на приведенное ниже, и я должен сказать, что это прекрасно работает!
<?
if (isset($_REQUEST['sub'])) {
$files_data = array(
'first' => &$_REQUEST['first'],
'second' => &$_REQUEST['second'],
'third' => &$_REQUEST['third']
);
$files_data = preg_replace("/[^a-zA-Z0-9.:,=?%\/\\s]+/", "", $files_data);
file_put_contents('data.txt', serialize($files_data)) !== FALSE or die("Can't write to file!" . PHP_EOL);
}
$files_data = unserialize(file_get_contents('data.txt'));
$first = $files_data[first];
$second = $files_data[second];
$third = $files_data[third];
?>
<form method="post" name="installer">
<div id="field">
<label>First</label>
<input type="text" name="first" value="<?php echo $first; ?>" />
</div>
<div id="field">
<label>Second</label>
<input type="text" name="second" value="<?php echo $second; ?>" />
</div>
<div id="field">
<label>Third</label>
<input type="text" name="third" value="<?php echo $third; ?>" />
</div>
<div id="submit">
<input type="submit" value="Save" name="sub" />
</div>
</form>