Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Нужен скрипт..

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Нужен скрипт..
Sibroy
Отправлено: 17 Октября, 2010 - 20:38:19
Post Id



Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Окт. 2010  
Откуда: Кузбасс


Помог: 0 раз(а)




Нужен скрипт который добавлял бы новое тесктовое сообщение в папку в виде отдельного файла ТХТ.Банально конечно,но не чего подходящего в инете найти не могуНедовольство, огорчение
Что то вроде этого
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. header("Content-type:text/html;charset=windows-1251");
  3. echo'<FORM METHOD="post"  ACTION="add.php" >
  4. <INPUT TYPE="text" SIZE="50" NAME="nazv" VALUE="Название сообщения"><INPUT TYPE="text" SIZE="50" NAME="zag" VALUE="Заголовок"><textarea name="new" rows="15" cols="70">Ваш текст помещается сюда в эту часть скрипта</textarea><br>
  5. <INPUT TYPE="submit" VALUE="Отправить">
  6. </FORM>';
  7. $nazv=($_POST['nazv']);
  8. $zag=($_POST['zag']);
  9. $new=($_POST['new']);
  10. $fp = fopen("book/$nazv.txt","a"); // Открываем файл в режиме записи
  11.  
  12. $mytext = ("$zag<br>$new\r\n"); // Исходная строка
  13. $test = fwrite($fp, $mytext); // Запись в файл
  14. if ($test) echo 'Данные в файл успешно занесены.';
  15. else echo 'Ошибка при записи в файл.';
  16. fclose($fp); //Закрытие файла
  17.  
  18. ?>

(Отредактировано автором: 18 Октября, 2010 - 07:42:09)

 
 Top
Uchkuma
Отправлено: 17 Октября, 2010 - 21:20:12
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


Помог: 6 раз(а)




Оформите код!
И что у вас не получилось в приведенном скрипте?
 
 Top
Sibroy
Отправлено: 18 Октября, 2010 - 07:38:46
Post Id



Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Окт. 2010  
Откуда: Кузбасс


Помог: 0 раз(а)




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

(Отредактировано автором: 18 Октября, 2010 - 07:43:14)

 
 Top
cHameleon
Отправлено: 18 Октября, 2010 - 10:04:16
Post Id



Гость


Покинул форум
Сообщений всего: 107
Дата рег-ции: Янв. 2010  


Помог: 0 раз(а)




так и будет. как только вы запустили скрипт он уже начинает работать, ведь у вас не указано, что файл нужно создавать только после нажатия кнопки submit, соответственно при первой обработке скрипт не знает как назвать файл и поэтому создаёт его без названия..
на счет русских символов, можно при записи переводить в транслит, и при чтении обратно.
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.       header("Content-type:text/html;charset=windows-1251");
  3.       error_reporting(0);
  4.       if(!isset($_POST['submit'])) {
  5.       echo'<FORM METHOD="post"  ACTION="add.php" >
  6.      <INPUT TYPE="text" SIZE="50" NAME="nazv" VALUE="Название сообщения"><INPUT TYPE="text" SIZE="50" NAME="zag" VALUE="Заголовок"><textarea name="new" rows="15" cols="70">Ваш текст помещается сюда в эту часть скрипта</textarea><br>
  7.      <INPUT TYPE="submit" VALUE="Отправить">
  8.      </FORM>';
  9.       } else {
  10.       $nazv=($_POST['nazv']);
  11.       $zag=($_POST['zag']);
  12.       $new=($_POST['new']);
  13.       $fp = fopen("book/$nazv.txt","a"); // Открываем файл в режиме записи
  14.  
  15.       $mytext = ("$zag<br>$new\r\n"); // Исходная строка
  16.       $test = fwrite($fp, $mytext); // Запись в файл
  17.       if ($test) echo 'Данные в файл успешно занесены.';
  18.       else echo 'Ошибка при записи в файл.';
  19.       fclose($fp); //Закрытие файла
  20.       }
  21.       ?>


-----
берём notepad++ и творим пэхэпэ-мир
 
 Top
Sibroy
Отправлено: 18 Октября, 2010 - 13:29:12
Post Id



Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Окт. 2010  
Откуда: Кузбасс


Помог: 0 раз(а)




Спасибо за помощь,но не сработалоНедовольство, огорчение Я немного подправил и теперь работает
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.       header("Content-type:text/html;charset=windows-1251");
  3.       error_reporting(0);
  4.       if(!isset($_POST['sub'])) {
  5.       echo'<FORM METHOD="post"  ACTION="add.php" >
  6.     <INPUT TYPE="text" SIZE="50" NAME="nazv" VALUE="Название сообщения"><INPUT TYPE="text" SIZE="50" NAME="zag" VALUE="Заголовок"><textarea name="new" rows="15" cols="70">Ваш текст помещается сюда в эту часть скрипта</textarea><br>
  7.     <INPUT TYPE="submit" NAME="sub" VALUE="Отправить">
  8.     </FORM>';
  9.       } else {
  10.       $nazv=($_POST['nazv']);
  11.       $zag=($_POST['zag']);
  12.       $new=($_POST['new']);
  13.       $fp = fopen("book/$nazv.txt","a"); // Открываем файл в режиме записи
  14.  
  15.       $mytext = ("$zag<br>$new\r\n"); // Исходная строка
  16.       $test = fwrite($fp, $mytext); // Запись в файл
  17.       if ($test) echo 'Данные в файл успешно занесены.';
  18.       else echo 'Ошибка при записи в файл.';
  19.       fclose($fp); //Закрытие файла
  20.       }
  21.       ?>

(Отредактировано автором: 18 Октября, 2010 - 13:52:39)

 
 Top
cHameleon
Отправлено: 18 Октября, 2010 - 15:08:53
Post Id



Гость


Покинул форум
Сообщений всего: 107
Дата рег-ции: Янв. 2010  


Помог: 0 раз(а)




Да, не заметил, что у Вас имя для input не назначено


-----
берём notepad++ и творим пэхэпэ-мир
 
 Top
Sibroy
Отправлено: 18 Октября, 2010 - 19:40:49
Post Id



Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Окт. 2010  
Откуда: Кузбасс


Помог: 0 раз(а)




Руссские буквы в названии отображаются вот так:нЕДПЧБС ЛХМЙОБТЙС.А перевод при записи в транслит и обратно это сложно сделать?Честно говоря я не очень в рнр разбираюсь
 
 Top
Саныч
Отправлено: 18 Октября, 2010 - 20:13:42
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


Помог: 62 раз(а)




нет, не сложно. Делаете 2 массива, к примеру ru и en, в первый загоняете русские буквы, во второй их транслист, потом скармливаете все это дело функции str_replace()... С анг на рус порядок такой же, только наоборот...


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
OrmaJever
Отправлено: 18 Октября, 2010 - 23:22:26
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Саныч пишет:
Делаете 2 массива, к примеру ru и en

Можно же в один всё положить Улыбка

PHP:
скопировать код в буфер обмена
  1.  
  2. $file_name = 'файл с_текстом.txt';
  3. $array = array('a' => 'a', 'б' => 'b', ... );
  4.  
  5. foreach($array as $find => $replace)
  6. {
  7.        str_replace($find, $replace, $file_name)
  8. }
  9.  


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Sibroy
Отправлено: 20 Октября, 2010 - 19:59:53
Post Id



Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Окт. 2010  
Откуда: Кузбасс


Помог: 0 раз(а)




Если загрузить файл через форму указанную выше,название файла в папке отображается краказябрами.Закидывю файл через фтп,файл с русским названием ,то название выводится на нужную страницу кракозябрамиНедовольство, огорчение этот код выводит название файла на страницу
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. $five = 49998;            // число символов на странице
  4. $dir = './book/';      // папка с текстов. файлами
  5. $tranc = 1;            // поменяйте на 0 если не хотите использовать встроенный перекодировщик
  6. $title = 'библиотека'; // заголовок
  7.  
  8. header("Content-type: text/html;charset=windows-1251");
  9. $ret = '<center><h3>Законодательные акты</h3></center>';
  10.  
  11. $open_dir=opendir($dir);
  12. while (false!==($file=readdir($open_dir)))
  13. {
  14. if (is_file("$dir/$file")) $f[]=$file;
  15. }
  16. closedir($open_dir);
  17.  
  18.  
  19. $count = sizeof($f);
  20.  
  21. if(!isset($_GET['id']))
  22.   {
  23.   for( $i = 0;  $i < $count ; $i++ )
  24.      {
  25.      $ret .= '<a href="book.php?id='.$i.'">'.substr($f[$i],0,-4).'</a><br/><br/>';
  26.      }
  27.   }
  28. else
  29.  
  30. {
  31.  
  32. $id = $_GET['id'];
  33. if(!array_key_exists($id,$f)) header("Location: book.php");
  34.  
  35. if(!isset($_GET['p']))$p=1; else $p = $_GET['p'];
  36. $file_name = $dir.$f[$id];
  37. $file= join('',file($file_name));
  38. $obsum = $p * $five;
  39. $nasum = $obsum - $five;
  40. $end='0';
  41.  
  42. if(!isset($_GET['go']))
  43.   {
  44.  
  45.   for($i=$nasum; $i<$obsum; $i++)
  46.      {
  47.      if(!isset($file[$i])) $end='1'; else $ret .=$file[$i];
  48.      }
  49.  
  50.   $ret .= '<br/><br/><center><hr WIDTH="60%" SIZE="1">';
  51.  
  52.   if($p == '1')  $ret .= ''; else {$ret .= '<a href="book.php?id='.$id.'&p='.($p-1).'">назад | </a>';$ret .= ' '; }
  53.   if($end=='1')  $ret .= ''; else {$ret .= '<a href="book.php?id='.$id.'&p='.($p+1).'">далее</a>';}
  54.  
  55.  
  56.   $ret .= '<br/><a href="book.php">К каталогу статей</a></center>';
  57.   }
  58.   else $ret .='';
  59.  
  60. }
  61.  
  62. $ret .= '';
  63.  
  64. function unicode($string)
  65. {
  66. $rus=array('А','Б','В','Г','Д','Е','Ж','З','И','Й','К','Л','М','Н','О','П','Р','С','Т','У','Ф','Х','Ц','Ч','Ш','Щ','Ъ','Ы','Ь','Э','Ю','Я',
  67.            'а','б','в','г','д','е','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш','щ','ъ','ы','ь','э','ю','я');
  68. $string = str_replace('Ё','Ё',$string);
  69. $string = str_replace('ё','ё',$string);
  70. for($i=0; $i<count($rus); $i++)
  71.    {
  72.    $s=1040;
  73.    $d = '&#'.($s+$i).';';
  74.    $string = str_replace($rus[$i],$d,$string);
  75.    }
  76. return $string;
  77. }
  78.  
  79. if($tranc==0) echo $ret; else echo unicode($ret);
  80.  
  81. ?>
Может здесь что нибудь не так.Этот скрипт автоматически создаёт ссылку на вложенный в папку файл и создаёт страницы,правда режит текст по символамНедовольство, огорчение

(Отредактировано автором: 20 Октября, 2010 - 20:03:07)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB