[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Запись данных в файл
kolyabis
Доброго дня всем, прошу пояснения у специалистов, где я допустил ошибку.

Дело в том что я на данный момен пишу скрипт к админ панели, для изменения E-mail для различных форм, ну это для того чтоб мой клиент, если ему будет угодно чтоб письма с формы приходили на другой почтовик, так чтоб он не обращался снова ко мне, а мог просто в форме поменять почту и нажать сохранить.

Проблема вот в чем заключается. у меня есть 3-и формы, в админке сделал пункт, при клике на него мне появляются кнопки от каждой из этих форм. Нажимаю на первую, появляется кусок формы с кнопкой изменить, меняю почту нажимаю изменить, потом проверяю файл текстовый, все нормально почта записалась, нажимаю вторую форму, вписываю туда почту, нажимаю изменить, проверяю оба файла, тот в который записывалось и записалось, становится пустым, а во втором все нормально записалось.

Подскажите пожалуйста где я мог допустить ошибку.
Вот код.

<form action="<?php $_SERVER["PHP_SELF"]; ?>" method="post">
<!--
Для изменения почтового адреса для формы ( физ_лиц ) -->
<
input type='submit' name='fiz_lic' id='fiz_lic' value="Форма ФизЛиц">
<?php
if($_SERVER['REQUEST_METHOD']=="POST"){
if(isset($_POST['fiz_lic'])){
echo "<br />Изменение ( E-mail ) в форме (ФизЛиц)<br />";
echo "<input type='text' name='fiz_lic_1' id='fiz_lic_1' size='30'>";
echo " <input type='submit' value='Изменить' align='right'>";
}

if($_SERVER['REQUEST_METHOD']=="POST"){
if(isset($_POST['fiz_lic_1'])){
echo $nawMail = $_POST['fiz_lic_1'];
}
//Присваиваем данные из файла переменной.
$mails = "../mails/fiz_lic.txt";
//Проверяю, есть ли файл.
if(is_writable('../mails/fiz_lic.txt'));
//Открываем переменную и передаем данные с файла, а также открываем для записи
$add_mails = fopen($mails ,"w") or die ("Проблема с файлом\n<br>");
if(fwrite($add_mails, "$nawMail") === FALSE){
echo "<font color=$color_r>Не могу произвести запись в файл ($mails)\n<br></font>";
exit;
}
fclose($add_mails);
}
}

?>
</form>

<
form action="<?php $_SERVER["PHP_SELF"]; ?>" method="post">
<!--
Для изменения почтового адреса для формы ( Каска ) -->
<
input type='submit' name='kaska' id='kaska' value="Форма Каска">
<?php
if($_SERVER['REQUEST_METHOD']=="POST"){
if(isset($_POST['kaska'])){
echo "<br />Изменение ( E-mail ) в форме (Каска)<br />";
echo "<input type='text' name='kaska_1' id='kaska_1' size='30'>";
echo " <input type='submit' value='Изменить' align='right'>";
}

if($_SERVER['REQUEST_METHOD']=="POST"){
if(isset($_POST['kaska_1'])){
echo $nawMail_kaska = $_POST['kaska_1'];
}
//Присваиваем данные из файла переменной.
$mails_kaska = "../mails/kaska.txt";
//Проверяю, есть ли файл.
if(is_writable('../mails/kaska.txt'));
//Открываем переменную и передаем данные с файла, а также открываем для записи
$add_mails_kaska = fopen($mails_kaska ,"w") or die ("Проблема с файлом\n<br>");
if(fwrite($add_mails_kaska, "$nawMail_kaska") === FALSE){
echo "<font color=$color_r>Не могу произвести запись в файл ($mails_kaska)\n<br></font>";
exit;
}
fclose($add_mails_kaska);
}
}

?>
</form>




Спустя 1 час, 34 минуты, 2 секунды (30.08.2011 - 14:52) Mirexzpalich написал(а):
Сам погляди. У тебя оба раза записываются оба файла!

Спустя 15 минут, 4 секунды (30.08.2011 - 15:07) kolyabis написал(а):
Да, но файлы разние, и проверяет, на существование разные файлы.

Вот в этом то я и не могу разобратся. Я понимаю что он его перезаписывает, но почему.

Спустя 1 день, 35 минут, 27 секунд (31.08.2011 - 15:43) soroka написал(а):
Цитата (kolyabis @ 30.08.2011 - 12:07)
Да, но файлы разние, и проверяет, на существование разные файлы.

Вот в этом то я и не могу разобратся.  Я понимаю что он его перезаписывает, но почему.

	if($_SERVER['REQUEST_METHOD']=="POST"){
if(isset($_POST['fiz_lic_1'])){
echo $nawMail = $_POST['fiz_lic_1'];
}
//Присваиваем данные из файла переменной.
$mails = "../mails/fiz_lic.txt";
//Проверяю, есть ли файл.
if(is_writable('../mails/fiz_lic.txt'));
//Открываем переменную и передаем данные с файла, а также открываем для записи
$add_mails = fopen($mails ,"w") or die ("Проблема с файлом\n<br>");
if(fwrite($add_mails, "$nawMail") === FALSE){
echo "<font color=$color_r>Не могу произвести запись в файл ($mails)\n<br></font>";
exit;
}
fclose($add_mails);
}


Заметьте у вас при нажатии на кнопку во второй форме первое условие if выполняется, второе не выполняется но в файл естественно попадает пустое значение. Весь кусок кода после комментария
//Присваиваем данные из файла переменной.
нужно засунуть в тело условия. т.е.
	if($_SERVER['REQUEST_METHOD']=="POST"){
if(isset($_POST['fiz_lic_1'])){
echo $nawMail = $_POST['fiz_lic_1'];
//Присваиваем данные из файла переменной.
$mails = "../mails/fiz_lic.txt";
//Проверяю, есть ли файл.
if(is_writable('../mails/fiz_lic.txt'));
//Открываем переменную и передаем данные с файла, а также открываем для записи
$add_mails = fopen($mails ,"w") or die ("Проблема с файлом\n<br>");
if(fwrite($add_mails, "$nawMail") === FALSE){
echo "<font color=$color_r>Не могу произвести запись в файл ($mails)\n<br></font>";
exit;
}
fclose($add_mails);
}
}


Во второй форме нужно сделать то же самое.

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.