За последние 24 часа нас посетили 61432 программиста и 1743 робота. Сейчас ищут 1258 программистов ...

Не отправляет письмо на Email

Тема в разделе "Прочие вопросы по PHP", создана пользователем Encoder, 1 ноя 2012.

  1. Encoder

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

    С нами с:
    1 ноя 2012
    Сообщения:
    32
    Симпатии:
    0
    Доброго времени суток.

    Такой вопрос, написал функцию отправки данных на email, на Denwer'e все работает а вот когда закачал на хостинг письмо на емайл не приходит. Хостинги 500mb и timeweb пробный период.

    Такой вопрос: на хостинге не работает отправка писем, или в коде ошибка?
    Если и за хостинга посоветуйте пожалуйста бесплатный хостинг для тестирования PHP, MySQL и отправка писем.

    Вот код:

    Код (Text):
    1. <!DOCTYPE HTML PUBLIC "-//W3C/DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    2. <html>
    3. <head>
    4.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    5.     <link rel="stylesheet" type="text/css" href="../css/style.css">
    6.     <title>Космические пришельцы похищали меня - сообщение о похищении</title>
    7. </head>
    8. <body>
    9.     <h4 id="Successeful">Сообщение успешно отправленно.</h4>    
    10. <?php
    11.     $name = $_POST['firstName'] . ' ' . $_POST['lastName'];
    12.     $email = $_POST['eMail'];
    13.     $whan_it_happened = $_POST['whanItHappened'];
    14.     $how_long = $_POST['howLong'];
    15.     $how_many = $_POST['howMany'];
    16.     $alien_description = $_POST['alienDescription'];
    17.     $what_the_did = $_POST['whatTheyDid'];
    18.     $fang_spotted = $_POST['fangSpotted'];
    19.     $other = $_POST['other'];
    20.    
    21.     $to = 'EncoderG@yandex.ru';
    22.     $subject = 'Космические пришельцы похищяли меня - сообщение о похищении.';
    23.     $msg = "$name был похищен $whan_it_happened, и отсуствовал $how_long.\n" .
    24.     "Количество космических пришельцев: $how_many.\n" .
    25.     "Описание космических пришельцов: $alien_description.\n" .
    26.     "Что они делали? $what_the_did.\n" .
    27.     "Фэнг замечен? $fang_spotted.\n" .
    28.     "Дополнительная информация: $other";
    29.     mail ($to, $subject, $msg, 'From: ' . $email);
    30.    
    31.     echo 'Спасибо за заполнение формы. <br>';
    32.     echo 'Вы были похищены ' . $whan_it_happened . ', и отсуствовали ' . $how_long . '.<br>';
    33.     echo 'Количество космических пришельцев: ' . $how_many . '<br>';
    34.     echo 'Опишите их: ' . $alien_description . '<br>';
    35.     echo 'Что они делали: ' . $what_the_did . '<br>';
    36.     echo 'Видели ли вы мою собаку Фэнга: ' . $fang_spotted . '<br>';
    37.     echo 'Дополнительная информация: ' . $other . '<br>';
    38.     echo 'Ваш адресс электронной почты: ' .$email .'<br><br>';
    39.    
    40. ?>
    41. </body>
    42. </html>
    И сразу вторая проблема.
    Написал функцию по примеру из учебника, но при выполнение пишет "Ошибка при выполнении запроса к базе данных." посмотрел все внимательно но не нашел ошибку.

    Вот код:

    Код (Text):
    1. <!DOCTYPE HTML PUBLIC "-//W3C/DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    2. <html>
    3. <head>
    4.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    5.     <link rel="stylesheet" type="text/css" href="../css/style.css">
    6.     <title>Космические пришельцы похищали меня - сообщение о похищении</title>
    7. </head>
    8. <body>
    9.     <h4 id="Successeful">Сообщение успешно отправленно.</h4>    
    10. <?php
    11.     $name = $_POST['firstName'] . ' ' . $_POST['lastName'];
    12.     $email = $_POST['eMail'];
    13.     $whan_it_happened = $_POST['whanItHappened'];
    14.     $how_long = $_POST['howLong'];
    15.     $how_many = $_POST['howMany'];
    16.     $alien_description = $_POST['alienDescription'];
    17.     $what_the_did = $_POST['whatTheyDid'];
    18.     $fang_spotted = $_POST['fangSpotted'];
    19.     $other = $_POST['other'];
    20.    
    21.   $dbc = mysqli_connect('localhost', 'Encoder', '31502', 'aliensdatabase')
    22.         or die ('Ошибка соединения с MySQL-Сервером');
    23.     $query = "INSERT INTO aliens_abduction (first_name, last_name, ".
    24.         "when_it_happened, how_long, how_many, alien_description, " .
    25.         "what_the_did, fang_spotted, other, email) " .
    26.         "VALUES ('Салли', 'Джонс', '3 дня назад', '1 день', 'четыре', " .
    27.         "'зеленые с шестью щупальцами', 'мы просто разговоривали и играли с собакой', 'sally@gregs-lest.net')";
    28.     $result = mysqli_query($dbc, $query)
    29.         or die ('Ошибка при выполнении запроса к базе данных.');
    30.     mysqli_close($dbc);
    31.    
    32. ?>
    33. </body>
    34. </html>
    Заранее благодарен.
     
  2. demyan1

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

    С нами с:
    17 май 2012
    Сообщения:
    65
    Симпатии:
    0
    это точно, у большинства (если не у всех?) хостингов во время тестового периода отключена отправка писем.
    пробуй использовать функции mysql_connect, mysql_query вместо mysqli_connect и mysqli_query.
    почитай в мануале чем отличаются, потому что придётся немного переделать запрос $query.
    ...ах да, совсем забыл, ещё не забудь выполнить mysql_select_db
     
  3. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Переходить с mysqli_ на mysql_ - ни к чему, обычно советуют наоборот. mysql_ всё-таки уже очень старая штука. А вот чтобы понять, в чём ошибка в запросе - замени своё
    Код (PHP):
    1. $result = mysqli_query($dbc, $query)
    2.         or die ('Ошибка при выполнении запроса к базе данных.'); 
    на
    Код (PHP):
    1. $result = mysqli_query($dbc, $query)
    2.         or die ('Ошибка при выполнении запроса к базе данных:<br>' . $query . '<br>' . mysqli_error($dbc)); 
     
  4. demyan1

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

    С нами с:
    17 май 2012
    Сообщения:
    65
    Симпатии:
    0
    но начинать лучше с неё...
    тогда либо в БД aliensdatabase не создана таблица aliens_abduction с полями first_name, last_name, when_it_happened, how_long, how_many, alien_description, what_the_did, fang_spotted, other, email.
    либо так:
    Код (PHP):
    1. $query = "INSERT INTO aliens_abduction (first_name, last_name, when_it_happened, how_long, how_many, alien_description, what_the_did, fang_spotted, other, email) VALUES ('Салли', 'Джонс', '3 дня назад', '1 день', 'четыре', 'зеленые с шестью щупальцами', 'мы просто разговоривали и играли с собакой', 'sally@gregs-lest.net')"; 
    и ещё: полей 10, а значений 8... так нельзя
     
  5. Encoder

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

    С нами с:
    1 ноя 2012
    Сообщения:
    32
    Симпатии:
    0
    Всем спасибо! Проблема была в именах переменных, а точнее опечатки.