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

  • Автор темы JohnyWest
  • Дата начала
J

JohnyWest

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

1.
Код:
<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

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

sasha465

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

JohnyWest

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

sasha465

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

JohnyWest

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

sasha465

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

JohnyWest

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


Код:
<!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

Код:
<?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 "Ваше сообщение успешно доставленно!";}


?>
 
D

Dock1100

я делал все по видеоурокам
1. Забейте на видео уроки - это ЗЛО(если они не касаются рисования).
2. Научитесь читать и пользоватся гуглом .
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)) со строкой бессмысленно


?>


А откуда твой php скрипт узнает что это за переменная $i? Ты видимо забыл написать в скрипте: $i=$_POST["i"];
+1
 
J

JohnyWest

:D

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

а вот насчет:

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

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

BlackShadow

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!