За последние 24 часа нас посетили 20098 программистов и 1651 робот. Сейчас ищут 1795 программистов ...

Сохранить содержимое страницы.

Тема в разделе "PHP для новичков", создана пользователем Solonik, 5 дек 2012.

  1. Solonik

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

    С нами с:
    2 дек 2012
    Сообщения:
    17
    Симпатии:
    0
    Люди добрые помогите пожалуйста где я допустил ошибку Задача такая есть форма где заполняется поля методом POST после открывается окошко с квитанцией мне нужно содержимое квитанции сохранить в файл .htm т.е. содержимое страницы.
    Есть код:
    Код (Text):
    1. <?php
    2. $kl= date("d-m-y", time());
    3. $kuda= $_POST['kuda'];
    4. $summa= $_POST['summa'];
    5. $nomer= $_POST['nomer'];
    6. $pio = $_POST['pio'];
    7. $adr = $_POST['adr'];
    8.  
    9. if (empty($summa) or empty($nomer) or empty($pio)){
    10. echo 'Заполните все поля';
    11. return;
    12. }
    13. else
    14.  
    15. if (empty($kuda)){
    16.  
    17. }
    18. else
    19.  
    20. ?>
    21. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    22. <title>Квитанция - <?=$nomer?></title>
    23. <link rel="stylesheet" type="text/css" href="style.css" />
    24. </head>
    25.  
    26. <body onload="window.print()">
    27. <!-- Квитанция -->
    28.  
    29.  
    30. <!-- Конец квитанции -->
    31.  
    32. <?php
    33. $homepage = file_get_contents('http://сайт.ру/save_kv.php'); file_put_contents('kvitanciya_'.$nomer.'.htm',$homepage);
    34. include_once('kv.php');
    35. ?>
    файл kv.php - это mail функция для отправки письма. На него обращать внимания не надо письмо отправляется проблем нет и запись в txt файл идёт для отслеживания кому отправлено(тоже работает). Но при выполнения кода

    создается htm файл всё нормально, но он либо содержит "Заполните все поля" либо квитанцию без подставленных значений
    $kuda= $_POST['kuda'];
    $summa= $_POST['summa'];
    $nomer= $_POST['nomer'];
    $pio = $_POST['pio'];
    $adr = $_POST['adr'];

    Помогите люди добрые где допустил ошибку всё испробовал уже.
     
  2. demyan1

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

    С нами с:
    17 май 2012
    Сообщения:
    65
    Симпатии:
    0
    форму в студию.
    что возвращает return вот здесь:
    Код (Text):
    1. if (empty($summa) or empty($nomer) or empty($pio)){
    2. echo 'Заполните все поля';
    3. return;
    4. }
    лучше написать exit("Заполните все поля"); вместо echo и return
    вместо or используйте ||
    и что это за условие:
    Код (Text):
    1. if (empty($kuda)){
    2.  
    3. }
    4. else
    что будет выполняться, если пустая переменная $kuda?, а что если не пустая?
    вместо <?=$nomer?> напишите <?php echo $nomer?>
     
  3. Solonik

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

    С нами с:
    2 дек 2012
    Сообщения:
    17
    Симпатии:
    0
    Код (Text):
    1. if (empty($kuda)){
    2.  
    3. }
    4. else
    Это условие если поле $kuda(по сути email) не заполнено письмо не отправляется include внизу не выполняется не выполняется. Пока сценарий для пустого поля $kuda не дописал, но это не проблема, поэтому пока пусто оставил.

    Код формы

    Код (Text):
    1. <form action="save_kv.php" method="POST">
    2. Введите email:<input type="text" name="kuda"><br>
    3. Введите сумму <input type="text" name="summa"><br>
    4. ФИО <input type="text" name="pio"><br>
    5. Адрес: <input type="text" name="adr"><br>
    6. Введите номер<input type="text" name="nomer"><br>
    7. <p><input type="submit"></p>
     
  4. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Почему?
     
  5. Solonik

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

    С нами с:
    2 дек 2012
    Сообщения:
    17
    Симпатии:
    0
    Там я так понимаю просто приоритетами отличаются OR от ||