Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> Сохранение данных у файл 
:(
    Опции темы
Muna
Дата 20.8.2008, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 13.7.2008

Репутация: нет
Всего: нет



Значит так, есть програма обработчик html формы, нужно что бы она сохраняла даные в файл. Сохранять должна такие значение, в той же последовательности:  дата   ,  $_POST['name']   ,   $_POST['imja']   ,   $_POST['batk'] ,  $result . Подскажите пожалуйста как написать эту функцию на php.

Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0//EN">
<HTML>
<HEAD>
      <TITLE>Протокол</TITLE>
<script language="JavaScript">
<!--
dayarray=new Array("неділя","понеділок","вівторок","середа","четвер","п'ятниця","субота")
montharray=new Array ("січня","лютого","березня","квітня","травня","червня","липня","серпня","вересня", "жовтня","листопада","грудня")
ndata=new Date();
day=dayarray[ndata.getDay()];
month=montharray[ndata.getMonth()];
date=ndata.getDate();
year=ndata.getYear();
hours = ndata.getHours();
mins = ndata.getMinutes();
secs = ndata.getSeconds();
if (hours < 10) {hours = "0" + hours }
if (mins < 10) {mins = "0" + mins }
if (secs < 10) {secs = "0" + secs }
datastr=(date +" "+ month +" "+ year +" року ")
-->
</script>
</HEAD>
<BODY>

<h2 ALIGN="CENTER"> Долинське ЛВУМГ</h2>
<p><h2 ALIGN="CENTER">Протокол № ______</h2></p>
<p><h2 ALIGN="CENTER">засідання комісії з перевірки знань з питань охорони праці</h2></p>
<font face="verdana,arial" size="4" color="#000000">
<script language="JavaScript">
<!--
document.write(datastr);
-->

</script>
<script LANGUAGE="JavaScript">

function varitext(text){
text=document
print(text)
}
</SCRIPT>



<?
    if($_SERVER['REQUEST_METHOD'] == "POST")
    {
        $result = 0;
        
        if($_POST['GRS'] == "Voynyliv1")
    {

        if($_POST['tes1'] == "test1_1")
            $result++;
        if($_POST['tes2'] == "test2_2")
            $result++;
        if($_POST['tes3'] == "test3_2")
            $result++;
        if($_POST['tes4'] == "test4_1")
            $result++;
        if($_POST['tes5'] == "test5_3")
            $result++;
    }


        
    }
?>


<p>Комісія у складі:</p>
<p>Голови: інженера з ОП Лабанціва М. Т.</p>
<p>і членів комісії: начальника ЛЕС Туревича Р. А.</p>
<p>створена на підставі наказу від "____" ____________ р. № __________</p>
<p>перевірила знання __________________________________________________________________</p>
<p><H5 ALIGN="CENTER">(найменування нормативних актів про охорону праці,</H5></p>
<p>____________________________________________________________________________________</p>
<p><H5 ALIGN="CENTER">за якими проводиться перевірка знань)</H5></p>

<TABLE BORDER=2 COLS=2 align=center bordercolor=black>
<TR>
<TH>№ п/п</TH>
<TH>№ Прізвище, ім'я, по - батькові працівника</TH>
<TH>Посада, професія, розряд</TH>
<TH>Цех, дільниця, виробництво</TH>
<TH>Знає/не знає</TH>
<TH>Примітки</TH>
</TR>
<TR>
<TD>
1.
</TD>
<TD>
<?
if($_SERVER['REQUEST_METHOD'] == "POST")
{
        
        print $_POST['name'].'<br/>';
    print $_POST['imja'].'<br/>';
        print $_POST['batk'].'<br/>';



}
?>


</TD>


<TD>

<?
if($_SERVER['REQUEST_METHOD'] == "POST")
{
            if($_POST['vyb'] == "operator_4rozrjad")
            print 'оператор 4-го розряду';

    if($_POST['vyb'] == "operator_5rozrjad")
    {print 'оператор 5-го розряду';}

}
?>




</TD>
<TD>
ЛЕС
</TD>
<TD>
<?
if($_SERVER['REQUEST_METHOD'] == "POST")
{
    if($result>=3)
        {
            print 'знає';
        
        }
        
        if($result<3)
        {
            print 'не знає';
           
        }       



}
?>



</TD>
<TD>
</TD>
</TR>
</Table>
<p>Голова комісії:       ____________           інженер з ОП Лабанців М. Т.</p>
<p>Члени комісії:        ____________           начальник ЛЕС Туревич Р. А.</p>

<INPUT NAME="print" TYPE="button" VALUE="Роздрукувати" ONCLICK="varitext()">

<?
        if($result== 0)
        {
            print "<script>alert('На жаль, ви не справились з тестом! Ви не відповіли правильно на жодне запитання');</script>";
        }
        

        if($result== 1)
        {
            print "<script>alert('На жаль, ви не справились з тестом! Ви відповіли правильно на одне запитання');</script>";
        }

        if($result==2)
        {
            print "<script>alert('На жаль, ви не справились з тестом! Ви відповіли правильно на два запитання');</script>";
        }

        if($result==3)
        {
            print "<script>alert('Вітаємо ви пройшли тест! Ви відповіли правильно на 3 запитання');</script>";
        }
        if($result==4)
        {
            print "<script>alert('Вітаємо ви пройшли тест! Ви відповіли правильно на 4 запитання');</script>";
        }

        if($result==5)
        {
            print "<script>alert('Вітаємо ви пройшли тест! Ви відповіли правильно на усі запитання');</script>";
        }
   
?>


</BODY>
</HTML>

  


Не могу разобраться в синтаксе этой функции, помогите пожалуйста, только если можна с даным примером, не понимаю если данных много как их запихивать в файл. Буду ооочень благодарна!
PM MAIL   Вверх
Feldmarschall
Дата 20.8.2008, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



Может, лучше сначала разобраться с небольшим примером?
PM   Вверх
Muna
Дата 20.8.2008, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 13.7.2008

Репутация: нет
Всего: нет



Я бы с радостью, только и с ним не совсем получается! 

PM MAIL   Вверх
Feldmarschall
Дата 20.8.2008, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



а что именно не получается? какой пример, в чем проявляется "не получается"?

PM   Вверх
awers
Дата 20.8.2008, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

Репутация: 21
Всего: 31



смотря какая версия пхп, с какой целью сохранять ... начиная с банального file_put_contents
PM MAIL WWW ICQ Skype   Вверх
Muna
Дата 20.8.2008, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 13.7.2008

Репутация: нет
Всего: нет



Нужно просто сохранить эти данные в той тоследовательности. 
мне кажется что должно быть что вроде этого
Код

$today = date("Y-m-d");
$fh = fopen ( " file. txt ", "a");
fwrite($fh, $today,  $_POST['name'],   $_POST['imja'],   $_POST['batk'], $result);
fclose($fh);


Это правильно? Просто здесь у меня не работает апач! Посоветуйде если что не правильно! Я буду очень благодарна
PM MAIL   Вверх
bars80080
Дата 20.8.2008, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Код

$today = date("Y-m-d");
$fh = fopen ( "file.txt", "w");
$text = $today.';',$_POST['name'].';'.$_POST['imja'].';'.$_POST['batk'].';'.$result;
fwrite($fh, $text);
fclose($fh);


точно

Это сообщение отредактировал(а) bars80080 - 20.8.2008, 23:15
PM MAIL WWW   Вверх
Feldmarschall
Дата 20.8.2008, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



как минимум, у тебя врядли на диске есть файл, имя которого начинается и оканчивается пробелом.
но вообще, писать программы теоретически - занятие малоосмысленное.
PM   Вверх
Muna
Дата 20.8.2008, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 13.7.2008

Репутация: нет
Всего: нет



Спасибо большое! Завтра обезательно испробую!

PM MAIL   Вверх
theworldcreator
Дата 20.8.2008, 23:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 362
Регистрация: 25.8.2007
Где: Москва

Репутация: 10
Всего: 13



Обратите внимание на то, что bars80080 написал код, который ПЕРЕПИСЫВАЕТ файл. То есть в файле будут не добавляться строки, а писаться поверх. Разница вот в этой строке:
Код

$fh = fopen ( "file.txt", "w");

А точнее в режиме открытия файла. Вот мануал: http://ru2.php.net/fopen
Там есть таблица с режимами.
>> 'w'   Открывает файл только для записи; помещает указатель в начало файла и обрезает файл до нулевой длинны. Если файл не существует - пробует его создать. 
>> 'a' Открывает файл только для записи; помещает указатель в конец файла. Если файл не существует - пытается его создать. 

Если используешь 'a', советую ставить в конце символ перевода строки("\n").
P.S. в коде Барса есть опечатка - вместо точки стоит запятая, и вместо разделителя ',' используется ';'   , но это мелочи
PM MAIL WWW ICQ   Вверх
Muna
Дата 21.8.2008, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 13.7.2008

Репутация: нет
Всего: нет



 Вот опробывала всё работает, но когда добавила "\n" показівает такую ошибку :
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\apache\rozrobka\www\obrobka.php on line 200

Вот код
Код

$today = date("Y-m-d/H:i:s");
$fh = fopen ( "file.txt", "a");
$text = $today.';'.$_POST['name'].';'.$_POST['imja'].';'.$_POST['batk'].';'.$result;
fwrite($fh, $text"\n");
fclose($fh);


 подскажите в чём дело? Пожалуйста!!!
PM MAIL   Вверх
theworldcreator
Дата 21.8.2008, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 362
Регистрация: 25.8.2007
Где: Москва

Репутация: 10
Всего: 13



>> syntax error
Следующий код будет работать нормально:
Код

$text = $start."finish";

Следующий код вызовет ошибку:
Код

$text = $start"finish";

Разница в наличие точки.
PM MAIL WWW ICQ   Вверх
Muna
Дата 21.8.2008, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 13.7.2008

Репутация: нет
Всего: нет



Ой, я что то не понимаю а где мне нужно то точку поставить вроди все есть?
без "\n" работает а с ним не хочет. 
PM MAIL   Вверх
bars80080
Дата 21.8.2008, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



в строке четвёртой твоего примера у тебя $text"\n" - не хватает точки. 

а почему собственно ты не пришила енту "\n" в конец третьей строки? там ведь как раз и собирается строка под запись
PM MAIL WWW   Вверх
Muna
Дата 21.8.2008, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 13.7.2008

Репутация: нет
Всего: нет



всё исправила! только в текстовом файле новая запись не начинается с новой строки а раздеяется кубиком!
 Это так и должно быть?

PM MAIL   Вверх
Закрытая темаСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0991 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.