|
|
|
|
|
для: cheops
(28.07.2011 в 11:02)
| | Ребята, огромное ВАМ спасибо за помощь.
Я так и не понял если честно,что случилось и почему не работало, но каким то чудесным образом не изменив после этого абсолютно ничего все заработал)
Наверное либо я с ума сошел, либо mysql) | |
|
|
|
|
|
|
|
для: Ruler
(28.07.2011 в 10:54)
| | Вряд ли конечно, что-то изменится, но все-таки попробуйте поменять строку
$res=mysql_query($sql) or die(mysql_error());
| на
if(!mysql_query($sql)) die(mysql_error();
|
| |
|
|
|
|
|
|
|
для: cheops
(28.07.2011 в 10:44)
| | Соединяемся с базой данных, файл конекта находиться в админке
<?
require_once "admin/config.php";
$config_php = "already_include";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
<head>
.........
<?
$action = "";
$action = $_POST["action"];
if (!empty($action))
{
// Проверяем правильность ввода
$_POST["name_massege"] = trim($_POST["name_massege"]); //имя
if (empty($_POST["name_massege"])) links("Отсутствует имя");
$_POST["email_massege"]=trim($_POST["email_massege"]); //e-mail
if(empty($_POST['email_massege'])) links("Не введён e-mail");
if (!preg_match("/[0-9a-z_]+@[0-9a-z-_^\.]+\.[a-z]{2,3}/i", $_POST['email_massege'])) links("Введите e-mail в виде <i>name@domen.com</i>");
$_POST["tema_massege"] = trim($_POST["tema_massege"]); //тема сообщения
if (empty($_POST["tema_massege"])) links("Отсутствует тема сообщения");
$_POST["massege"] = trim($_POST["massege"]); //сообщение
if (empty($_POST["massege"])) links("Текст сообщения отсутствует.");
// Обрабатываем HTML-тэги
$name_massege = substr($_POST["name_massege"],0,52);
$name_massege = htmlspecialchars(stripslashes($name_massege));
$email_massege = substr($_POST["email_massege"],0,52);
$email_massege = htmlspecialchars(stripslashes($email_massege));
$tema_massege = substr($_POST["tema_massege"],0,52);
$tema_massege = htmlspecialchars(stripslashes($tema_massege));
$massege = substr($_POST["massege"],0,1024);
$massege = htmlspecialchars(stripslashes($massege));
// Даем переменной $hide отображать сообщение
$hide = "hide";
$sql = "INSERT INTO `massege` VALUES (NULL,
'$name_massege',
'$email_massege',
'$tema_massege',
'$massege',
NOW(),
'$hide');";
$res=mysql_query($sql) or die(mysql_error());
// запрос к другой таблице для вывода email для отправки на почту сообщения с формы
$query = "SELECT email FROM mailer";
$mal = mysql_query($query);
$row = mysql_fetch_array($mal);
$body="<body>
<h2>Сообщение с сайта</h2>
<strong>Контактные данные:</strong><br />
Имя - $name_massege,<br />
E-mail: $email_massege,<br />
<p><strong>Тема сообщения:</strong><br />
$tema_massege<br />
<p><strong>Содержание письма:</strong><br />
$massege</p>
</body>";
$email = $row['email'];
$header="Content-type: text/html; charset=\"UTF-8\"";
$header.="From: $mail\r\n";
$header.= "Cc: vova@mail.ru\r\n";
//$headers.= "Bcc: vladimir@mail.ru\r\n";
$header.="Content-type: text/html; charset=\"UTF-8\"";
$sucess = mail($email,"Сообщение с сайта www.test.ru от $name_massege", $body, $header);
if ($sucess){
echo '<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
............
</body>
</html>';
exit();
}
}
// это та функция которая выводит сообщение о ошибке при проверке данный links
function links($msge)
{
echo '<body>
<p><b>'.$msge.'</b><br>Поля отмеченые <span>*</span>обязательны для заполнения!</p>
<p><a href=contact.html onClick="history.back()" class=link1>Вернуться к заполнению формы</a></p>
<p><a href=/ class="link">На главную</a></p>
..............................
</body>
</html>';
exit();
}
?>
|
Вот фактически вся страница.
Причем на электронный адрес спокойно выводит и отправляет почту с теми же переменными | |
|
|
|
|
|
|
|
для: Ruler
(28.07.2011 в 10:37)
| | А приведите несколько строк до и после mysql_query()? Не может быть там каких-то условных операторов или логики, которые не дают выполниться запросу? Других вариантов вроде как не осталось... Если у вас успешно работает phpMyAdmin, значит проблем с связке PHP+MySQL нет - там обычный скрипт, вроде того, который создаете вы. | |
|
|
|
|
|
|
|
для: Valick
(28.07.2011 в 10:31)
| | Да код присутствует. и ничего не выдает.
Конект к базе есть, по скольку на других страницах сайта все работает.
По поводу того что конект отличный, в подтверждение могу сказать следующее. На этой же странице выводиться из другой таблицы email адрес на который должно отправляться сообщение и оно нормально приходит, спокойно отправляться.
Самое интересное, если ввести через веб интрефейс базы данных запрос который вывелся при включение echo $sql; все отлично вставляется.
INSERT INTO `massege` VALUES (NULL, 'Владимир', 'vova@mail.ru', 'Привет', 'Сообщение', NOW(), 'hide');
|
| |
|
|
|
|
|
|
|
для: Ruler
(28.07.2011 в 10:28)
| | строка
$res=mysql_query($sql) or die(mysql_error());
|
присутствует в коде?
к базе конект происходит нормально? | |
|
|
|
|
|
|
|
для: cheops
(28.07.2011 в 10:25)
| | нет никаких ошибок не возвращает. Чета не совсем понимаю. Вроде как все должно вставляться. | |
|
|
|
|
|
|
|
для: Ruler
(28.07.2011 в 10:21)
| | с датой все нормально, она подставляется уже в самой базе при выполнении запроса | |
|
|
|
|
|
|
|
для: Ruler
(28.07.2011 в 10:21)
| | Этот запрос в Web-интерфейсе тоже выполняется без ошибок?
PS А как вы выполняете запрос в вашем PHP-скрипте? | |
|
|
|
|
|
|
|
для: ruler
(28.07.2011 в 08:50)
| | >Не понимаю почему он не вставляет в базу данных запись.
Функция mysql_error() возвращает какое-нибудь сообщение об ошибке? | |
|
|
|
|