[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Почтовая форма
Jimmbo
Цитата
<?php
$id = $userArray['id'];
$my = $userArray['my'];
$em = $userArray['em'];
$wmr = ($_POST['wmr']);
$subject = "Тотализатор" ;
//Проверка наличия ТЕКСТА сообщения
  if(trim($_POST['name']) == '') {
  $hasError = true;
  } else {
  if(function_exists('stripslashes')) {
  $name = stripslashes(trim($_POST['name']));
  } else {
  $name = trim($_POST['name']);
  }
  }
//Если ошибок нет, отправить email
if(!isset($hasError)) {
//Если форма отправлена
if(isset($_POST['submit']))
$URL="/games/send.php";
header ("Location: $URL");
//Проверка поля ТЕМА
//Если ошибок нет, отправить email
$emailTo = "maxim.duman@yandex.ru"; //Сюда введите Ваш email
$body = iconv("UTF-8", "KOI8-U", "ID: $id \nE-MAIL: $em \nИмя: $name \nКошелек: $wmr");
$headers = 'From: Вывод средств <'.$em.'>' . "\r\n" . 'Reply-To: ' . $em;
mail($emailTo, $subject, $body, $headers);
$emailSent = true;
}

?>

<h2>Вывод средств:</h2>
<form action="msend.php" method="post">
<p>
<label>Ваше имя и фамилия:<br></label>
<input name="name" id="name" type="text" size="25" maxlength="25">
</p>
<p>
<p>
<label>Ваш WMR кошелек (проверьте правильность написания):<br></label>
<input name="wmr" id="wmr" type="text" size="25" maxlength="25">
</p>
<input type="submit" name="submit" value="Отправить запрос">
</p></form>


Собственно выше мой код. Не понимаю, почему мне приходит на почту только следующее:
ID: 1
E-MAIL: demo@(скрыто).ru

На сайте 4 формы, все нормально работаю, что я упустил?



Спустя 37 минут, 44 секунды (7.10.2011 - 13:50) m4a1fox написал(а):
А как вы узнаете, что оно не приходит?

И еще... Вот тут
Цитата
  if(function_exists('stripslashes')) {
  $name = stripslashes(trim($_POST['name']));
  } else {
  $name = trim($_POST['name']);
  }

Вы как бы сомневаетесь в существовании функции stripslashes в php?

Спустя 2 минуты, 30 секунд (7.10.2011 - 13:53) Jimmbo написал(а):
В смысле? Оно приходит, но только там вот это:
ID: 1
E-MAIL: demo@(скрыто).ru

А требуется:
ID: 1
E-MAIL: demo@(скрыто).ru
Имя: $name
Кошелек: $wmr

Спустя 2 минуты, 6 секунд (7.10.2011 - 13:55) m4a1fox написал(а):
Извините, меня конечно! Но... вы php как давно знаете (изучаете?)

Спустя 6 минут, 33 секунды (7.10.2011 - 14:01) Jimmbo написал(а):
Изучаю два дня. m4a1fox, там без stripslashes было, я уже несколько вариантов перепробовал. Я не претендую на звание программиста, я прошу помощи.

Спустя 3 минуты, 46 секунд (7.10.2011 - 14:05) m4a1fox написал(а):
Итак, попытаюсь разобрать. Так сказать, устроить разбор полетов :) Не серчайте если что
$id = $userArray['id'];
$my = $userArray['my'];
$em = $userArray['em'];
$wmr = ($_POST['wmr']);
$subject = "Тотализатор" ;
//Проверка наличия ТЕКСТА сообщения
if(trim($_POST['name']) == '') {
$hasError = true;
} else {
if(function_exists('stripslashes')) {
$name = stripslashes(trim($_POST['name']));
} else {
$name = trim($_POST['name']);
}
}

//Если ошибок нет, отправить email
if(!isset($hasError)) {
//Если форма отправлена
if(isset($_POST['submit']))
$URL="/games/send.php";
header ("Location: $URL");
//Проверка поля ТЕМА
//Если ошибок нет, отправить email

$emailTo = "maxim.duman@yandex.ru"; //Сюда введите Ваш email
$body = iconv("UTF-8", "KOI8-U", "ID: $id \nE-MAIL: $em \nИмя: $name \nКошелек: $wmr");
$headers = 'From: Вывод средств <'.$em.'>' . "\r\n" . 'Reply-To: ' . $em;
mail($emailTo, $subject, $body, $headers);
$emailSent = true;
}


Вот это
$id = $userArray['id'];
$my = $userArray['my'];
$em = $userArray['em'];

Мне не понятно! Видимо это как-то у вас отдельно делается.

Дальше. Вот это

$wmr = ($_POST['wmr']);

Как по мне - бред! Нет проверки на пустоту на сущ. (но лучше пустота), на правильность - не выйдет так. Надо проверять!


Дальше
  
if(trim($_POST['name']) == '') {
$hasError = true;
} else {
if(function_exists('stripslashes')) {
$name = stripslashes(trim($_POST['name']));
} else {
$name = trim($_POST['name']);
}
}

Аналогично - бред!
Не легче ли так сделать?

$name = !empty($_POST['name'])?trim(stripslashes($_POST['name'])):NULL;


Дальше, присвоение имен переменным, должно происходить, после нажатия на кнопку. То есть вот этот кусок

if(isset($_POST['submit']))

вынести на самый вверх.
Пока что на этом остановимся. Если у вас есть желание изучать php, то мой совет, исправьте ошибки, а потом снова сюда, с уже исправленным текстом. Тогда будем говорить дальше. Извините, меня конечно, но тут проще заново написать скрипт, чем переделывать.

P.S. Это конечно все ИМХО. Так что если где не прав, покажите!

Спустя 2 минуты, 34 секунды (7.10.2011 - 14:08) m4a1fox написал(а):
Jimmbo
Цитата
Изучаю два дня. m4a1fox, там без stripslashes было, я уже несколько вариантов перепробовал. Я не претендую на звание программиста, я прошу помощи.

Ладно, тогда извините за острую критику - не знал! Ладно! Тогда так... что такое stripslashes

Спустя 26 минут, 28 секунд (7.10.2011 - 14:34) Jimmbo написал(а):
Цитата
<?php
if(isset($_POST['submit']))
// Если POST запрос отправили, то выполняем все, что ниже.
if ($_POST['name'] == '') {echo "Вы не заполнили первое поле. Пожалуйста попробуйте еще раз."; exit;}
$name = ($_POST['name']);
if ($_POST['wmr'] == '') {echo "Вы не заполнили второе поле. Пожалуйста попробуйте еще раз."; exit;}
$wmr = ($_POST['wmr']);
$id = $userArray['id'];
$my = $userArray['my'];
$em = $userArray['em'];
$subject = "Тотализатор" ;

$emailTo = "maxim.duman@yandex.ru";
$body = iconv("UTF-8", "KOI8-U", "Name: $name \ntoWMR: $wmr \nID: $id \nCoins: $my \nE-mail: $em");
$headers = 'From: Требование выплаты <'.$em.'>' . "\r\n" . 'Reply-To: ' . $em;
mail($emailTo, $subject, $body, $headers);
$emailSent = true;

$URL="/games/gosend.php";
header ("Location: $URL");
?>


НО теперь сообщение приходит только с одним полем Name, оно пустое почему-то. Блин ...

Цитата
$id = $userArray['id'];
$my = $userArray['my'];
$em = $userArray['em'];


Это обращение к БД. Каждая переменная несет нужное мне значение, тоесть тут все верно.

Если употребить переменные с информацией из БД первыми, то они отображаются, а если перед ними употребить переменные с информацией из формы, то не отображается ничего. Сообщение приходит пустым.

А вот предыдущая моя работа. Она работает.
Цитата
<?php
  $byname = ($_POST['contactname']);
  $subject = "Сервисы веб-мастера" ;
  $wmr = ($_POST['wmr']);
  //Если форма отправлена
  if(isset($_POST['submit']))
  $URL="/outmess.php";
  header ("Location: $URL");
//Проверка поля ТЕМА
//Проверка правильности ввода EMAIL
  if(trim($_POST['email']) == '')  {
  $hasError = true;
  } else if (!eregi("^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}$", trim($_POST['email']))) {
  $hasError = true;
  } else {
  $email = trim($_POST['email']);
  }
//Проверка наличия ТЕКСТА сообщения
  if(trim($_POST['message']) == '') {
  $hasError = true;
  } else {
  if(function_exists('stripslashes')) {
  $comments = stripslashes(trim($_POST['message']));
  } else {
  $comments = trim($_POST['message']);
  }
  }
//Если ошибок нет, отправить email
  if(!isset($hasError)) {
  $emailTo = "maxim.duman@yandex.ru"; //Сюда введите Ваш email
  $body = iconv("UTF-8", "KOI8-U", "Я хочу заказать тарифный план: $byname \nЕмайл отправителя: $email \nWMR: $wmr \nURL и около ссылочный текст: $comments");
  $headers = 'From: Новая заявка <'.$email.'>' . "\r\n" . 'Reply-To: ' . $email;
mail($emailTo, $subject, $body, $headers);
  $emailSent = true;
  }
  ?>


Цитата
что такое stripslashes

Вроде как она блокирует скрипты в переменной.

Спустя 4 минуты, 35 секунд (7.10.2011 - 14:39) m4a1fox написал(а):
Jimmbo
Цитата
Это обращение к БД. Каждая переменная несет нужное мне значение, тоесть тут все верно.

Правда? ;) Я бы не был так уверен! Но дело твое!

Итак, говоришь
Цитата
НО теперь сообщение приходит только с одним полем Name, оно пустое почему-то. Блин ...

а если так сделать перед if(isset($_POST['submit'])) вот так
var_dump($_POST)
?

Спустя 5 минут, 20 секунд (7.10.2011 - 14:44) Jimmbo написал(а):
Цитата
Правда? wink.gif Я бы не был так уверен! Но дело твое!

Ну, как. Обращение выше находится, а они несут в себе информацию БД.
А ниже они передают информацию в $id и пр.

Цитата
var_dump($_POST)

Что это и как его использовать? В других формах этого нету... ph34r.gif

Спустя 4 минуты, 28 секунд (7.10.2011 - 14:49) m4a1fox написал(а):
Это покажет все что есть в $_POST. Можно еще и так сделать, После if(isset($_POST['submit'])) написать так print_r($_POST);

Спустя 2 минуты, 39 секунд (7.10.2011 - 14:51) Jimmbo написал(а):
Цитата
array(0) { } Вы не заполнили второе поле. Пожалуйста попробуйте еще раз.


Вот это вывело.

Спустя 3 минуты, 4 секунды (7.10.2011 - 14:54) m4a1fox написал(а):
Это ты print_r($_POST) использовал?

Спустя 2 минуты, 26 секунд (7.10.2011 - 14:57) Jimmbo написал(а):
var_dump($_POST) - я это использовал.
print_r($_POST) - ничего не происходит на странице.

Спустя 3 минуты, 15 секунд (7.10.2011 - 15:00) m4a1fox написал(а):
Давай весь код!

Спустя 14 минут, 45 секунд (7.10.2011 - 15:15) Jimmbo написал(а):
Цитата
<html>
<head>
</head>
<body>

<?php
$login = $_COOKIE["log"];
$password = $_COOKIE["pas"];
// подключаемся к базе
include ("bd.php");// файл bd.php должен быть в той же папке, что и все остальные, если это не так, то просто измените путь
$result = mysql_query("SELECT * FROM `users` WHERE `em` = '".mysql_real_escape_string($login)."' AND `pw` = '".mysql_real_escape_string($password)."'") or die(mysql_error()); //извлекаем из базы все данные о пользователе с введенным логином

if(mysql_num_rows($result) == 0){
    echo 'Такого пользователя нет.';
exit;
}else{
  $userArray = mysql_fetch_assoc($result);
  $_SESSION['user_id'] = $userArray['id'];
  }
?>

<h2>Вывод средств:</h2>
<form action="msend.php" method="post">
<p>
<label>Ваше имя и фамилия:<br></label>
<input name="name" id="name" type="text" size="25" maxlength="25">
</p>
<p>
<p>
<label>Ваш WMR кошелек (проверьте правильность написания):<br></label>
<input name="wmr" id="wmr" type="text" size="25" maxlength="25">
</p>
<input type="submit" name="submit" value="Отправить запрос">
</p></form>

<?php
var_dump($_POST);
if(isset($_POST['submit']))
print_r($_POST);
// Если POST запрос отправили, то выполняем все, что ниже.
if ($_POST['name'] == '') {echo "Вы не заполнили первое поле. Пожалуйста попробуйте еще раз."; exit;}
$name = $_POST['name'];
if ($_POST['wmr'] == '') {echo "Вы не заполнили второе поле. Пожалуйста попробуйте еще раз."; exit;}
$wmr = $_POST['wmr'];
$id = $userArray['id'];
$my = $userArray['my'];
$em = $userArray['em'];
$subject = "Тотализатор" ;

$emailTo = "maxim.duman@yandex.ru";
$body = iconv("UTF-8", "KOI8-U", "Name: $name \ntoWMR: $wmr \nID: $id \nCoins: $my \nE-mail: $em");
$headers = 'From: Требование выплаты <'.$em.'>' . "\r\n" . 'Reply-To: ' . $em;
mail($emailTo, $subject, $body, $headers);
$emailSent = true;

$URL="/games/gosend.php";
header ("Location: $URL");
?>

</body>
</html>

Спустя 16 минут, 6 секунд (7.10.2011 - 15:31) m4a1fox написал(а):
А можно вот так было сделать?

<html>
<
head>
</
head>
<
body>

<?php
$login = $_COOKIE["log"];
$password = $_COOKIE["pas"];
// подключаемся к базе
include ("bd.php");// файл bd.php должен быть в той же папке, что и все остальные, если это не так, то просто измените путь
$result = mysql_query("SELECT * FROM `users` WHERE `em` = '".mysql_real_escape_string($login)."' AND `pw` = '".mysql_real_escape_string($password)."'") or die(mysql_error()); //извлекаем из базы все данные о пользователе с введенным логином

if(mysql_num_rows($result) == 0){
echo 'Такого пользователя нет.';
exit;
}else{
$userArray = mysql_fetch_assoc($result);
$_SESSION['user_id'] = $userArray['id'];
}
?>

<h2>Вывод средств:</h2>
<
form action="msend.php" method="post">
<
p>
<
label>Ваше имя и фамилия:<br></label>
<
input name="name" id="name" type="text" size="25" maxlength="25">
</
p>
<
p>
<
p>
<
label>Ваш WMR кошелек (проверьте правильность написания):<br></label>
<
input name="wmr" id="wmr" type="text" size="25" maxlength="25">
</
p>
<
input type="submit" name="submit" value="Отправить запрос">
</
p></form>

<?php
var_dump($_POST);
if(isset($_POST['submit']))
print_r($_POST);
// Если POST запрос отправили, то выполняем все, что ниже.
if ($_POST['name'] == '') {echo "Вы не заполнили первое поле. Пожалуйста попробуйте еще раз."; exit;}
$name = $_POST['name'];
if ($_POST['wmr'] == '') {echo "Вы не заполнили второе поле. Пожалуйста попробуйте еще раз."; exit;}
$wmr = $_POST['wmr'];
$id = $userArray['id'];
$my = $userArray['my'];
$em = $userArray['em'];
$subject = "Тотализатор" ;

$emailTo = "maxim.duman@yandex.ru";
$body = iconv("UTF-8", "KOI8-U", "Name: $name \ntoWMR: $wmr \nID: $id \nCoins: $my \nE-mail: $em");
$headers = 'From: Требование выплаты <'.$em.'>' . "\r\n" . 'Reply-To: ' . $em;
mail($emailTo, $subject, $body, $headers);
$emailSent = true;

$URL="/games/gosend.php";
header ("Location: $URL");
?>

</body>
</
html>

Спустя 56 секунд (7.10.2011 - 15:32) m4a1fox написал(а):
Jimmbo
Цитата
include ("bd.php");

У Попова научились?

Спустя 2 минуты, 17 секунд (7.10.2011 - 15:34) m4a1fox написал(а):
А если так

<?php
if(isset($_POST['submit']))
print_r($_POST);
// Если POST запрос отправили, то выполняем все, что ниже.
if ($_POST['name'] == '') {echo "Вы не заполнили первое поле. Пожалуйста попробуйте еще раз."; exit;}
$name = $_POST['name'];
if ($_POST['wmr'] == '') {echo "Вы не заполнили второе поле. Пожалуйста попробуйте еще раз."; exit;}
$wmr = $_POST['wmr'];
$id = $userArray['id'];
$my = $userArray['my'];
$em = $userArray['em'];
$subject = "Тотализатор" ;

$emailTo = "maxim.duman@yandex.ru";
$body = iconv("UTF-8", "KOI8-U", "Name: $name \ntoWMR: $wmr \nID: $id \nCoins: $my \nE-mail: $em");
$headers = 'From: Требование выплаты <'.$em.'>' . "\r\n" . 'Reply-To: ' . $em;
mail($emailTo, $subject, $body, $headers);
$emailSent = true;

$URL="/games/gosend.php";
header ("Location: $URL");
?>


И что показывает при отправки давай сюда!

Спустя 5 минут, 48 секунд (7.10.2011 - 15:40) Jimmbo написал(а):
Цитата
У Попова научились?

Да! Уже тысячу раз пожалел, что его набор для создания авторизации пользователей использовал.

Цитата
И что показывает при отправки давай сюда!

Когда ты смотришь на форму, только это - Вы не заполнили первое поле. Пожалуйста попробуйте еще раз.
Перенаправляет на /games/gosend.php
Приходит письмо, все как обычно ... sad.gif

Спустя 5 часов, 57 минут, 6 секунд (7.10.2011 - 21:37) Jimmbo написал(а):
Со всем разобрался. благодарю за попытку помочь. smile.gif


_____________
Оскорбления — это обычные доводы тех, кто неправ @ Жан-Жак Руссо
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.