Люди, Я Глупый - Помогите!)

Тема в разделе "Общие вопросы", создана пользователем JohnyWest, 16 янв 2012.

  1. JohnyWest

    JohnyWest Гость

    начал учить html, довольно быстро столкнулся с проблемой..)
    ну вообщем, вот:
    установил сервер (denver3), замут такой... должно отправляться письмо, но переменная "i", которую нужно вводить в браузере передается в php пустой, форм было больше, по-убирал чтоб найти ошибку, но
    безрезультатно... помогите, а то у меня уже бошка кипит)

    1.
    Код (Text):
    <form action="mail.php" method="POST" name="forma">

    <p><strong>Введите свое ФИО</strong><br>
    <input type="text" name="i" width="20">
    </p>

    <p>
    <input type="submit" name="button" value="Отправить заказ">
    </p>

    </form>
    2. вот собственно файл mail.php

    Код (Text):
    <?php
    mail("wooden_friend@mail.ru","Заказ с сайта","$i","Content-type:text/plain; charset = windows-1251\r\n");
    ?>
     
  2. sasha465

    sasha465 Well-Known Member

    Регистрация:
    29 мар 2009
    Сообщения:
    69
    Симпатии:
    0
    А откуда твой php скрипт узнает что это за переменная $i? Ты видимо забыл написать в скрипте: $i=$_POST["i"];
     
  3. JohnyWest

    JohnyWest Гость

    Не, так пофиг не работает)
    php должен знать что это за переменная ибо я указал что именно ОН будет обрабатывать ту инфу которую я введу в поле для ввода имени
    <p><strong>Введите свое ФИО</strong><br>
    <input type="text" name="i" width="20">
    </p> , но нифига, переменная пустая, причем mail.php нормально работает, ошибка где-то в html, только вот не могу её найти, пааамааагитеее...))
     
  4. sasha465

    sasha465 Well-Known Member

    Регистрация:
    29 мар 2009
    Сообщения:
    69
    Симпатии:
    0
    как это php будет интересно знать? По-моему так php просто получает либо GET либо POST запросом данные, которые нужно извлечь из массива, в твоем случае $_POST. Или напиши как получилась переменная $i, потому что из кода выше не видно как ты ее инициализировал, я как тоже вижу что она пустая.
     
  5. JohnyWest

    JohnyWest Гость

    Атрибут action — задает серверный обработчик формы. - вот так он будет знать.
    "Для инициализации переменной в PHP вы просто присваиваите ей значение. Для большинства переменных это именно так; для массивов и объектных переменных, однако, может использоваться несколько иной механизм." у меня НЕ массив,
    содержание переменной $i - это какой-либо текст, который я введу со страницы с полем для ввода имени... лалала... не люблю повторяться, чувак, ты меня только сильнее запутываешь, помогите кто-нибудь, кто разбирается нормально и кто понимает о чем я собственно)
     
  6. sasha465

    sasha465 Well-Known Member

    Регистрация:
    29 мар 2009
    Сообщения:
    69
    Симпатии:
    0
    Прости что запутываю. Но у меня mail на сайте работает отлично без каких-либо проблем. Либо ты не весь код выложил, либо я тебя не понимаю, потому что, повторюсь, в твоем коде не видно как инициализируется переменная $i. Если я не понимаю чего-то, то покажи как у тебя работает твой механизм, иначе тебе никто не поможет.
     
  7. JohnyWest

    JohnyWest Гость

    я делал все по видеоурокам, вот полностью код как он был изначально...


    Код (Text):
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>Страница изучения форм</title>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    <meta name="Keywords" content="формы">
    <meta name="Description" content="Формы в HTML">
    </head>
    <body>
    <h1 align="center">Формы!</h1>

    <table border="1" width="400" bgcolor="white" align="center" bordercolor="black" cellpadding="10" cellspacing="5">
    <tr>
    <td>

    <form action="obrabotka.php" method="POST" name="form1">

    <p><strong>Введите свое ФИО</strong><br>
    <input type="text" name="fio" width="20">
    </p>

    <p><strong>Введите свой пароль</strong><br>
    <input type="password" name="pass" width="20">
    </p>

    <p><strong>Введите email</strong><br>
    <input type="text" name="email" width="20">
    </p>


    <p><strong>Выберите формат диска</strong><br>
    <input type="radio" name="format" value="dvd" checked>DVD<br>
    <input type="radio" name="format" value="cd">CD<br>

    </p>


    <p><strong>Выберите курсы для заказа</strong><br>
    <input type="checkbox" name="site" value="1" checked>Курс по созданию сайта<br>
    <input type="checkbox" name="book" value="1" checked>Курс по созданию электронной книги<br>
    </p>

    <p><strong>Выберите тип доставки</strong><br>
    <select name="delivery">
    <option>Срочная</option>
    <option>Обычная</option>
    </select>
    </p>

    <p><strong>Введите адрес доставки</strong><br>
    <textarea name="address" cols="40" rows="5">
    </textarea>
    </p>

    <p>
    <input type="submit" name="button" value="Отправить заказ">
    </p>


    </form>

    </td>
    </tr>
    </table>



    </body>
    </html>
    и вот файл obrabotka.php

    Код (Text):
    <?php

    if (isset($site)) {$site="Да";} else {$site="Нет";}
    if (isset($book)) {$book="Да";} else {$book="Нет";}

    $v = mail("wooden_friend@mail.ru","Заказ с сайта","На сайте был сделан заказ. \n Заказ пришел от: $fio \n Его пароль: $pass \n Его email: $email \n Выбрал формат диска: $format \n Выбрал курсы: \n Курс по созданию сайта: $site \n Курс по созданию электронных книг: $book \n Выбрал тип доставки: $delivery \n Адрес для доставки: $address","Content-type:text/plain; charset = windows-1251\r\n");

    if ($v == "true") {echo "Ваше сообщение успешно доставленно!";}


    ?>
     
  8. Dock1100

    Dock1100 :-]

    Регистрация:
    9 ноя 2009
    Сообщения:
    678
    Симпатии:
    0
    1. Забейте на видео уроки - это ЗЛО(если они не касаются рисования).
    2. Научитесь читать и пользоватся гуглом php форма.
    3. Используйте теги форматирования кода ;) .
    Код (PHP):
    <?php

    if (isset($site)) {$site="Да";} else {$site="Нет";}
    if (isset($book)) {$book="Да";} else {$book="Нет";}//откуда скрипт узнает о переменных $site и $book, для начала их необходимо инициализировать.
    //к примеру так $site=$_POST['site']; $book=$_GET['book'];

    $v = mail("wooden_friend@mail.ru","Заказ с сайта","На сайте был сделан заказ. \n Заказ пришел от: $fio \n Его пароль: $pass \n Его email: $email \n Выбрал формат диска: $format \n Выбрал курсы: \n Курс по созданию сайта: $site \n Курс по созданию электронных книг: $book \n Выбрал тип доставки: $delivery \n Адрес для доставки: $address","Content-type:text/plain; charset = windows-1251\r\n");
    //сначала информацию о письме лучше занести в переменне, а потом передать их в mail

    if ($v == "true") {echo "Ваше сообщение успешно доставленно!";} // вам не кажется что сравнивать результат выполнения функции(который обычно равен 0(false) или 1(true)) со строкой бессмысленно


    ?>

    +1
     
  9. JohnyWest

    JohnyWest Гость

    :D

    Dock1100, спасибос)) оно работаааеееет, наконец-то) видимо насчет видеоуроков ты прав)

    а вот насчет:

    "А откуда твой php скрипт узнает что это за переменная $i? Ты видимо забыл написать в скрипте: $i=$_POST["i"];" - вот не пойму почему, но не работало нифига, щас - все норм.!

    короче, спасибо, мужики ;)
     
  10. BlackShadow

    BlackShadow Well-Known Member

    Регистрация:
    4 фев 2011
    Сообщения:
    111
    Симпатии:
    1
    И кстати, иногда функция mail() отключена на хостинге. а на денвере - письма не дождешься... пользуйся smtp! Это РЕАЛЬНАЯ ВЕЩЬ! даже с денвера письмо отправит на твой ящик
     
Загрузка...

Поделиться этой страницей