За последние 24 часа нас посетили 87292 программиста и 4639 роботов. Сейчас ищут 2040 программистов ...

Вывод в текстовый файл с помощью текстовго поля HTML

Тема в разделе "PHP для новичков", создана пользователем serega356, 18 окт 2018.

  1. serega356

    serega356 Новичок

    С нами с:
    18 окт 2018
    Сообщения:
    1
    Симпатии:
    0
    Помогите пожалуйста после нажатия кнопки submit должен создаватся текстовый файл config.txt и даные которые были записаны в текстовые поля должны выводиться в текстовый файл. У меня выводит такие ошибки после которых создается текстовый файл сразу же после запуска сайта и туда ничего не записует а после нажатия submit сайт оновляется и выводит The file config.txt exists
    Notice: Undefined index: profile in /storage/ssd5/542/7426542/public_html/index.php on line 13
    Notice: Undefined index: userpic in /storage/ssd5/542/7426542/public_html/index.php on line 14
    Пользуюсь беспланым хостом www.000webhost.com
    Код файла index.php
    PHP:
    1. <?php
    2. require('top_template.inc');
    3.  
    4. $file = 'config.txt';
    5. if (file_exists($file)) {
    6.     echo "The file $file exists";
    7. } else {
    8.     require('form.inc');
    9. }
    10. $tar1=$_POST['profile'];
    11. $tar2=$_POST["userpic"];
    12. $fp = fopen("config.txt","w");
    13. fwrite($fp,"\n $tar1:$tar2 \n");
    14. fclose($fp);
    15.  
    16. require('bottom_template.inc');
    17. ?>
    Код файла form.inc
    HTML:
    1. <form action="index.php" method="post">
    2. <p>Шлях до профіля користувача: <input type="text" name = "profile" ></p>
    3. <p>Шлях до юсерпіку користувача: <input type="text" name = "userpic" ></p>
    4. <p><input type="submit" /></p>
    5. </form>
    Код файла top_template.inc
    HTML:
    1. html>
    2. <title>PHP</title>
    3. </head>
    4. <h1 align='center'>PHP</h1>
    5.  
    Код файла bottom_template.inc
    HTML:
    1. <br/>
    2. <hr size='2'/>
    3. <p align='center'>
    4. <font size='1'> Copyright (c) 2018 Serega356 </font>
    5. </body>
    6. </html>
     
  2. username

    username Новичок

    С нами с:
    6 июл 2017
    Сообщения:
    223
    Симпатии:
    17
    вместо fwrite я использую file_put_contents
     
  3. MRSgiba

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

    С нами с:
    22 дек 2017
    Сообщения:
    200
    Симпатии:
    32
    PHP говорит тебе, что при первом пуске $_POST['profile'] и $_POST["userpic"] неопределены, что впринципе то и логично, так как POST запроса не было. Ты как минимум должен обернуть этот код в isset, тогда в этой части Notice`ов не будет.
    Код (Text):
    1.  
    2. $tar1=$_POST['profile'];
    3. $tar2=$_POST["userpic"];
    4. $fp = fopen("config.txt","w");
    5. fwrite($fp,"\n $tar1:$tar2 \n");
    6. fclose($fp);
     
    #3 MRSgiba, 19 окт 2018
    Последнее редактирование: 19 окт 2018
  4. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.497
    Симпатии:
    1.726
    Лучше не isset($_POST['profile']), а $_SERVER["REQUEST_METHOD"] === "POST"
     
    MRSgiba нравится это.
  5. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    656
    Лучше и то, и др., причем isset обязательно для всех требуемых параметров.
     
    MRSgiba нравится это.