Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Запись в файл типа: $name\$mail\$data\$msg
 
 автор: newcold   (01.04.2008 в 15:46)   письмо автору
 
 

Подскажите пожалуйста как сделать запись в файл такого рода:
$name\$mail\$data\$msg
есть 3 текстовых файла для записи ($name),($data),($coment) - как их совместить в один?

   
 
 автор: Max Vasin   (01.04.2008 в 15:54)   письмо автору
 
   для: newcold   (01.04.2008 в 15:46)
 

хм... если правильно понял то последовательно:)))
file($name);
file($data);
file($coment);
а потом цикл с записью.
работы минут на 10(+20 на кофе;))

----
Regards, Max Vasin.

   
 
 автор: newcold   (01.04.2008 в 16:18)   письмо автору
 
   для: Max Vasin   (01.04.2008 в 15:54)
 

вобщем всё выглядит так:

<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
<form method="post" action="anons1_print.php">
Название :</td>
<td><input type="Text" name="name" value=""></td>
</tr>
<tr>
<td>Дата :</td>
<td><input type="Text" name="data" value=""></td>
</tr>
<tr>
<td>Коментарий:</td>
<td></td>
</tr>
<tr><td colspan="2"><textarea name=coment cols=60 rows=15></textarea></td></tr>
<tr><td colspan="2" align="right"><input type="submit" name="submit" value="Сохранить"></form></td></tr>
</table>

потом перекидывает на anons1_print.php и там идет код:

(я не знаю как правильно в однокоде сделать 3-ю запись, поэтому сделал 3 подряд)

<?
Error_Reporting(E_ALL & ~E_NOTICE);
$file = fopen ("../name.txt","w");
$str = "$name";
if ( !$file )
{
echo("Ошибка открытия файла");
}
else
{
fputs ( $file, $str);
}
fclose ($file);



$file = fopen ("../data.txt","w");
$str = "$data";
if ( !$file )
{
echo("Ошибка открытия файла");
}
else
{
fputs ( $file, $str);
}
fclose ($file);


$file = fopen ("../coment.txt","w");
$str = "$coment";
if ( !$file )
{
echo("Ошибка открытия файла");
}
else
{
fputs ( $file, $str);
}
fclose ($file);
?>

вот поэтому я и спрашиваю как сделать 3 записи в один файл, а не в 3?

   
 
 автор: Max Vasin   (01.04.2008 в 16:35)   письмо автору
 
   для: newcold   (01.04.2008 в 16:18)
 

$file = fopen ("name.txt","w");
$str = $name."/".$coment;
if (!$file)
{
echo("Ошибка открытия файла");
}
else
{
fputs ( $file, $str);
}
fclose ($file);

а так если?
и почему "w"?
либо это так и надо, либо не знаете о "a"

----
Regards, Max Vasin.

   
 
 автор: newcold   (01.04.2008 в 16:36)   письмо автору
 
   для: Max Vasin   (01.04.2008 в 16:35)
 

Так надо, просто при повторном заполнении формы, данные переваписываются поверх...

   
 
 автор: Max Vasin   (01.04.2008 в 16:43)   письмо автору
 
   для: newcold   (01.04.2008 в 16:36)
 

упс), поправка небольшая
$str = $name."\\".$coment;

----
Regards, Max Vasin.

   
 
 автор: newcold   (01.04.2008 в 16:56)   письмо автору
 
   для: Max Vasin   (01.04.2008 в 16:43)
 

Спасибо, работает, а как теперь из файла вытащить и поместить в таблицу???

   
 
 автор: Max Vasin   (01.04.2008 в 17:15)   письмо автору
 
   для: newcold   (01.04.2008 в 16:56)
 

поместить в таблицу БД? или таблицу <table></table>?
для второго (подкорректите самостоятельно):
<?php
$f
=file("name.txt");
$fff=explode("\\",$f[0]);
for (
$i=0;$i<count($fff);$i++)
    echo 
$fff[$i]."<br>";
?>

а для первого вместо
for ($i=0;$i<count($fff);$i++) echo $fff[$i]."<br>"; написать запрос:)

----
Regards, Max Vasin.

   
 
 автор: Atheist_?   (01.04.2008 в 17:33)   письмо автору
 
   для: Max Vasin   (01.04.2008 в 17:15)
 

Бекслеш в качестве разделителя не применяют.

   
 
 автор: newcold   (01.04.2008 в 17:36)   письмо автору
 
   для: Atheist_?   (01.04.2008 в 17:33)
 

А как правильно?

   
 
 автор: Atheist_?   (01.04.2008 в 19:17)   письмо автору
 
   для: newcold   (01.04.2008 в 17:36)
 

Любой другой символ. Бекслеш как раз обычно используют для эскейпирования спец. символов, т.е. в данном случае разделителя.
А что будет если значение одной из переменных содержит разделитель? Это ты не учел.

   
 
 автор: Max Vasin   (01.04.2008 в 19:44)   письмо автору
 
   для: Atheist_?   (01.04.2008 в 19:17)
 

добавлю
+ работаешь с register_global=on - выключать, имхо, надобно
++ не зависимо в какую таки таблицу будешь записывать - проверяй что пишешь, бо можно же и код какой передать;)
+++ (доп. к ++) проверяй "на разделитель"

----
Regards, Max Vasin.

   
 
 автор: Atheist_?   (01.04.2008 в 19:49)   письмо автору
 
   для: Max Vasin   (01.04.2008 в 19:44)
 

Не проверять! Эскейпировать!

   
 
 автор: newcold   (02.04.2008 в 09:32)   письмо автору
 
   для: Atheist_?   (01.04.2008 в 19:49)
 

Не понял...
Нужно из файла вытащить в обычную <table></table> как это сделать?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования