За последние 24 часа нас посетили 22759 программистов и 1226 роботов. Сейчас ищут 699 программистов ...

запись в txt через форму

Тема в разделе "PHP для новичков", создана пользователем webmonstor, 8 окт 2013.

  1. webmonstor

    webmonstor Активный пользователь

    С нами с:
    18 фев 2012
    Сообщения:
    49
    Симпатии:
    0
    Адрес:
    г. Иркутск
    Доброго всем времени суток в сети на эту тему много материала но что то не доходит. Помогите записать в фаил строчку.Вот собственно мой старый скрипт переделываю а форму ввода прикрутить не могу,темный лес )))

    Код (Text):
    1. <?php
    2. # Читаем файл построчно.
    3. foreach(file('12345.txt') as $msg)
    4. {
    5. # Разбить строку по двоеточию в массив.
    6. $ex=explode(':',$m);
    7. # отрезал дату
    8. $w=substr("$ex[1]",0,10);
    9. # отрезал икс
    10. $z=substr("$ex[4]",5);
    11. # Выводим из массива.
    12. echo "<font color='teal'><b>$w</b></font>_$z<br>";
    13. }
    14. # удаление нужной строки
    15. $fileName="12345.txt";
    16. $lineToKill=31;
    17. $stringsArray=file($fileName);
    18. if($lineToKill <= count($stringsArray)) {
    19. $fileHandle = fopen($fileName, "w");
    20. $lineToKill--;
    21. foreach($stringsArray as $key => $value) {
    22. if($key != $lineToKill) fwrite($fileHandle, $value);
    23. }
    24. fclose($fileHandle);
    25. }
    26. ?>

    и есть ли необходимость форму и скрипт в разных папках размещать??
     
  2. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    опять эти эфопены(((
    Начните накоц использовать file_put_contents

    А в чем сложность?
     
  3. webmonstor

    webmonstor Активный пользователь

    С нами с:
    18 фев 2012
    Сообщения:
    49
    Симпатии:
    0
    Адрес:
    г. Иркутск
    в формах не разбираюсь надо форму прикрутить к данному скрипту
     
  4. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Какую форму что как должно работать?
    Скрипт рабочий?
     
  5. webmonstor

    webmonstor Активный пользователь

    С нами с:
    18 фев 2012
    Сообщения:
    49
    Симпатии:
    0
    Адрес:
    г. Иркутск
    это второй кусок скрипта в первом file_put_contents всегда им пользовался

    Добавлено спустя 2 минуты 32 секунды:
    да скрипт отличный нареканий не было,сейчас решил переделать а в формах так в свое время и не разобрался надо форму которая будет записывать в фаил тхт строку а скрипт уже выстраивает это фаил как мне надо , форму кароче надо

    Добавлено спустя 2 минуты 39 секунд:
    <?
    $msid = $_GET['s'];
    $date=$_GET['date'];
    $m=$_GET['m'];
    $user_id=$_GET['user_id'];
    $ran=$_GET['ran'];
    $num=$_GET['num'];
    $country_id=$_GET['country_id'];
    #ответ
    echo "s:$s\n";
    echo "status:reply\n";
    echo "\n";
    echo "Administraciya \n";
    #записываю в фаил
    file_put_contents('1EE.txt',"$s.':$date.':$m:$user_id\r\n".file_get_contents('1EE.txt'));
    ?>

    <?php
    # Читаем файл построчно.
    foreach(file('1EE.txt') as $m)
    {
    # Разбить строку по двоеточию в массив.
    $ex=explode(':',$m);
    # отрезал дату
    $w=substr("$ex[1]",0,10);

    # Выводим из массива.
    echo "<font color='teal'><b>$w</b></font>_$z<br>";
    }
    # удаление нужной строки
    $fileName="1EE.txt";
    $lineToKill=31;
    $stringsArray=file($fileName);
    if($lineToKill <= count($stringsArray)) {
    $fileHandle = fopen($fileName, "w");
    $lineToKill--;
    foreach($stringsArray as $key => $value) {
    if($key != $lineToKill) fwrite($fileHandle, $value);
    }
    fclose($fileHandle);
    }
    ?>

    Добавлено спустя 1 минуту 19 секунд:
    смотрел готовые скрипты но так и не понял как отправить текст из формы в фаил,

    Добавлено спустя 33 минуты 38 секунд:
    <!DOCTYPE HTML>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Данные формы</title>
    </head>
    <body>
    <form action="index.php">
    <p><input name="msg"></p>
    <p><input type="submit"></p>
    </form>

    Код (Text):
    1.  
    2. <?
    3. $msg=$_GET['msg'];
    4. #записываю в фаил
    5. file_put_contents('1EE.txt',"$msg\r\n".file_get_contents('1EE.txt'));
    6. # Читаем файл построчно.
    7. foreach(file('1EE.txt') as $msg)
    8. {
    9. # Разбить строку по двоеточию в массив.
    10. $ex=explode(':',$msg);
    11.  
    12. # Выводим из массива.
    13. echo "<font color='teal'><b>$msg</b></font><br>";
    14. }
    15. # удаление нужной строки
    16. $fileName="1EE.txt";
    17. $lineToKill=31;
    18. $stringsArray=file($fileName);
    19. if($lineToKill <= count($stringsArray)) {
    20. $fileHandle = fopen($fileName, "w");
    21. $lineToKill--;
    22. foreach($stringsArray as $key => $value) {
    23. if($key != $lineToKill) fwrite($fileHandle, $value);
    24. }
    25. fclose($fileHandle);
    26. }
    27. ?>
    </body>
    </html>
    получилось это но проблема при обновлении странички предыдущая запись записывается заново

    Добавлено спустя 4 минуты 13 секунд:
    ау народ помогите
     
  6. Slavka

    Slavka Активный пользователь

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    что это за ужас ?
    описание читал ?
    http://php.ru/manual/function.file-put-contents.html
    file_put_contents($file, $person, FILE_APPEND | LOCK_EX);
    т.е.
    file_put_contents('1EE.txt', "$msg\r\n", FILE_APPEND | LOCK_EX);
     
  7. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    http://snipcode.ru/catalog.html?snipid=82
     
  8. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Как же меня достали эти псевдо научные исследования производительности(((

    Код (Text):
    1.  
    2. Откуда потеря?
    3. file_put_contents например сначала определяет файл это или что-то другое(урл итп), далее передают в обертку путь к файлу и контент, обертка открывает файл и устанавливает коретку на 0, далее пишет инфу в файл. + ко всему у меня файл открывается всего 1 раз(за исключением варианта с fputs($f=fopen($c='file.txt',"c+"),($a=file_get_contents($c))+print $a);)
    Во первых еще не известно в какой тестовой среде проводились исследования, может он вообще был бухой?:)
    Лично мое мнение надо смотреть как на низком уровне все реализованно, а не строить предположения исходя из описания функций.

    Ну да предположим эфопен быстрее. Но если допустим надо 10 раз записать в файл, ну будет какой то не значительный прирост который никто не заметит.Кому нах нужен эфопен? С file_put_contents удобней работать.
     
  9. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    я рад за тебя что ты работаешь с ним, правда =)
     
  10. webmonstor

    webmonstor Активный пользователь

    С нами с:
    18 фев 2012
    Сообщения:
    49
    Симпатии:
    0
    Адрес:
    г. Иркутск
    ау ))) народ а мне то как быть ))) пытался редиректить но что то ни чего хорошего не получилось,как победить подскажите??
     
  11. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Так устроен этот жестокий мир.

    В пхп скрипте перенаправляй на другую страницу header или заноси в файл ajax-ом.
     
  12. Php_Yhinik

    Php_Yhinik Новичок

    С нами с:
    1 мар 2015
    Сообщения:
    1
    Симпатии:
    0
    Вот скрипт редактора с паролем
    Для того что бы работало надо создать на сервере файл pasw.pas и записать в него
    пароль закодированный способом base64_EnCode и поставить chmod 770

    Код (Text):
    1. <form action="index.php" name="myform" method="post">
    2.    <input type="text" name="mytext" size="50">
    3. <form action="index.php" name="fail" method="post">
    4.    <input type="text" name="fail" size="50">
    5. <form action="index.php" name="open" method="post">
    6.    <input type="text" name="open" size="50">
    7.     <input name="Submit" type=submit value="Отправить">    
    8. </form>
    9. <?php
    10.   $text =  $_POST['mytext'];// Получаем пароль
    11.   $pas = file_get_contents("pasw.pas");
    12.   $pa = base64_decode( $pas );
    13. //И проверим совпадает ли он.
    14. if($text == $pa){
    15. $tex1 =  $_POST['fail'];//Если да то проверяем поля имя файла и текста
    16. $tex =  $_POST['open'];
    17. $fp = fopen( "$tex1" , "a");
    18. $mytext = "$tex" ;
    19. $test = fwrite($fp, $mytext); //Записываем текст в файл
    20. if ($test) { echo 'Данные в файл успешно занесены';
    21. }else{ echo 'Ошибка при записи в файл';
    22. }
    23. fclose($fp);
    24. }
    25. ?>
     
  13. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    Php_Yhinik,

    Код (PHP):
    1. <!DOCTYPE HTML>
    2. <html>
    3. <head>
    4.     <meta charset="UTF-8">
    5.     <title>Сменить пароль</title>
    6. </head>
    7. <body><?php
    8.  
    9. if ( empty($_POST['password']) == false && empty($_POST['new_password']) == false )
    10. {
    11.     $pwd_file = 'pwd.pas';
    12.     $password = file_get_contents($pwd_file);
    13.     $new_password = base64_encode($_POST['new_password']);
    14.  
    15.     if ( $password && $password == base64_encode($_POST['password']) ) {
    16.         $write = file_put_contents($pwd_file, $new_password);
    17.         if ($write === false) {
    18.             echo "Error writing to file: ".$pwd_file;
    19.         }
    20.         else
    21.         {
    22.             echo "Success.";
    23.             chmod($pwd_file, 0755);
    24.         }
    25.     }
    26.     else
    27.     {
    28.         echo "Password does not match the confirm password.";
    29.     }
    30.  
    31. }
    32.  
    33. ?>
    34.  <form method="post" action="?">
    35.   <p><b>Текущий пароль:</b><br>
    36.    <input type="password" name="password" size="40">
    37.   </p>
    38.   <p><b>Новый пароль:</b><br>
    39.    <input type="password" name="new_password" size="40">
    40.   </p>
    41.   <p><input type="submit" value="Изменить пароль">
    42.    <input type="reset"></p>
    43.  </form>
    44.  </body>
    45. </html>