misha_bondar_2012 написав:include("blocks/bd.php"); /*З'єднання з БД*/
<form action="mail.php" method="post" name="mail_form">
<p><label><input name="adress" type="" maxlength="" size="30"> Моя пошта</label></p>
<p><label><input name="theme" type="" maxlength="" size="30"> Тема</label></p>
<p><label>Повідомлення: <br><textarea name="text" cols="50" rows="8"></textarea></label></p>
<p class="cap">
<label><img src="<?php
$result4 = mysql_query("SELECT img FROM com_set ORDER BY rand()", $db);
$myrow4 = mysql_fetch_array($result4);
$img = $myrow4["img"];
echo $myrow4["img"]; ?>" width="80" height="40">
<input name="pr" type="text" size="5" maxlength="5"></label>
</p>
<input name="img" type="hidden" value="<?php echo $img; ?>">
<p><label><input class="knopka" name="submit" type="submit" value="Відправити"></label></p>
</form>
<?php
include ("blocks/bd.php"); /*З'єднання з БД*/
if (isset($_POST['adress'])) { $adress = $_POST['adress']; }
if (isset($_POST['theme'])) { $theme = $_POST['theme']; }
if (isset($_POST['text'])) { $text = $_POST['text']; }
if (isset($_POST['pr'])) { $pr = $_POST['pr']; }
if (isset($_POST['submit'])) { $submit = $_POST['submit']; }
if (isset($_POST['img'])) { $img = $_POST['img']; }
if (isset($submit)) {
if (isset($adress)) { trim($adress); } else { $adress = ""; }
if (isset($theme)) { trim($theme); } else { $theme = ""; }
if (isset($pr)) { trim($pr); } else { $pr = ""; }
if (isset($text)) { trim($text); } else { $text = ""; }
if (empty($adress) or empty($text) or empty($theme) or empty($pr)) { exit("<p>Ви ввели не всю інформацію! <br> <input name='back' type='button' value='Назад' onclick='javascript:self.back();'></p>"); }
$result = mysql_query("SELECT sum FROM com_set WHERE img='$img'", $db);
$myrow = mysql_fetch_array($result);
if ($pr == $myrow["sum"]) {
$emailTo = ''; /*Електронна пошта*/
$body = "Email: $adress \n\nSubject: $theme \n\nComments:\n $text";
mail($emailTo, $theme, $body);
} else { exit("<p>Ви ввели неправильну інформацію з картинки! <br> <input name='back' type='button' value='Назад' onClick='history.go(-1)'></p>"); }
echo "<html><head><meta http-equiv='Refresh' content='0; URL=contact.php'</head></html>";
exit();
}
?>
В чому проблема?Помилок ніяких не показується, але на пошту лист не приходить?Вже кілька днів парюсь над цією проблемою...
про email-заглушку денвера вам вірно відповіли,,
дивлячись на ваш код - можу вам порадити відокремлювати php-обчислення та звернення до бд від виводу,
як це ще називають - "php від html" - що є не зовсім вірним висловлюванням, проте можливо - більш зрозумілим.
як мінімум у вашого коду буде більш зрозуміла структура,
легше буде орієнтувати у вашому коді іншим програмістам при підтримці певного проекту,
можливо і вам також (для прикладу через пів-року+ після того як ви цей код написали, та й просто при пошуку помилок, зміні дизайну etc)
приклад вашого коду:
<?php
include("blocks/bd.php"); /*З'єднання з БД*/
/*блок php обчислень*/
$result4 = mysql_query("SELECT `img` FROM `com_set` ORDER BY rand()", $db);
$myrow4 = mysql_fetch_array($result4);
$img = $myrow4["img"];
/*далі блок виводу*/
?>
<form action="mail.php" method="post" name="mail_form">
<p><label><input name="adress" type="" maxlength="" size="30"> Моя пошта</label></p>
<p><label><input name="theme" type="" maxlength="" size="30"> Тема</label></p>
<p><label>Повідомлення: <br><textarea name="text" cols="50" rows="8"></textarea></label></p>
<p class="cap">
<label><img src="<?php echo $img; ?>" width="80" height="40">
<input name="pr" type="text" size="5" maxlength="5"></label>
</p>
<input name="img" type="hidden" value="<?php echo $img; ?>">
<p><label><input class="knopka" name="submit" type="submit" value="Відправити"></label></p>
</form>
<?php
include ("blocks/bd.php"); /*З'єднання з БД*/
/*блок обчислень*/
$t1="<p>Ви ввели не всю інформацію! <br> <input name='back' type='button' value='Назад' onclick='javascript:self.back();'></p>";
$t2="<p>Ви ввели неправильну інформацію з картинки! <br> <input name='back' type='button' value='Назад' onClick='history.go(-1)'></p>";
$t3="<html><head><meta http-equiv='Refresh' content='0; URL=contact.php'></head></html>";
$q1=true;
$q2=true;
if (isset($_POST['adress'])) { $adress = $_POST['adress']; }
if (isset($_POST['theme'])) { $theme = $_POST['theme']; }
if (isset($_POST['text'])) { $text = $_POST['text']; }
if (isset($_POST['pr'])) { $pr = $_POST['pr']; }
if (isset($_POST['submit'])) { $submit = $_POST['submit']; }
if (isset($_POST['img'])) { $img = $_POST['img']; }
if (isset($submit)) {
if (isset($adress)) { trim($adress); } else { $adress = ""; }
if (isset($theme)) { trim($theme); } else { $theme = ""; }
if (isset($pr)) { trim($pr); } else { $pr = ""; }
if (isset($text)) { trim($text); } else { $text = ""; }
if (empty($adress) or empty($text) or empty($theme) or empty($pr)) { $q1=false; }else{
$result = mysql_query("SELECT `sum` FROM `com_set` WHERE `img`='$img'", $db);
$myrow = mysql_fetch_array($result);
if ($pr == $myrow["sum"]) {
$emailTo = ''; /*Електронна пошта*/
$body = "Email: $adress \n\nSubject: $theme \n\nComments:\n $text";
mail($emailTo, $theme, $body);
} else { $q2=false; }
/*блок виводу*/
if(!$q1){
exit($t1);
}
if(!$q2){
exit($t2);
}
echo $t3;
exit;
}
}
?>
окрім цього хотів би звернути вашу увагу на те, що ---
1) mysql_query застарів, використовуйте mysqli_query
2) запити до mysql все ж краще писати правильно - використовуючи зворотні лапки - щоб одного чудового дня, коли часу зовсім не буде - не потратити багато часу, виясняючи чому "обвалився" сервіс-додаток-сайт...
3) вивід
можна записати як
за умови що версія php та налаштуання short_open_tag дозволяють ним користуватися
4) переадресацію можна робити не лише на html-meta
<meta http-equiv='Refresh' content='0; URL=contact.php'>
але й на js
<script type="text/javascript">
window.location="http://site.com/page.php"
</script>
і на php - відразу
header("Location: http://site.com/page.php");exit;
header( 'Refresh: 0; url=http://site.com/page.php' );
чи через декілька секунд - наприклад 5 -
header( 'Refresh: 5; url=http://site.com/page.php' );
5) з відправленнями email не все так просто - для різних емейл-скриньок потрібно прописати різні заголовки щоб лист не попадав у спам - тобто може бути таке що на мейл-ру лист приходить добре а на гугл- у спам, чи навпаки
можливо тут можна додати ще багато чого)
запитуйте, відповім-допоможу по мірі можливостей і сил))