Ściągnąłem sobie skrypt który wykorzystuję do kontaktu użytkowników strony ze mną. Skrypt przeważnie działa bez problemu ale nie zawsze. Po naciśnięciu guzika "wyślij" nie raz nie ma żadnej reakcji choć przeważnie wykonuje się i mail jest wysyłany. Nie wiem czemu czasem nie działa... Skrypt jest wykonywany na serwerze home.pl więc musi być na sztywno wpisany mój mail jako nadawca - takie zabezpieczenie z ich strony. Skrypt wygląda tak. Na głównej stronie jest standardowy. Co może być nie tak? formularz
CODE
<html>
<head>
<meta http-equiv="Content-type" content="text/html; CHARSET="iso-8859-2" />
<link rel="stylesheet" href="css/formularz.css" type="text/css" />
</head>
<?php
/********************************************************************************
*****/
/* Licencja na uĹĽytek prywatny i komercyjny. */
/* Wymaga pozostawiania poniĹĽszych danych o autorze i pochodzeniu skryptu. */
/* Autor: Labsta.com Laboratorium Designu */
/* Skrypt pochodzi ze strony http://websta.pl - Blog o grafice i projektowaniu stron */
/* 03/02/2010 */
/********************************************************************************
*****/
include ('ustawienia.php');
ob_start();
include('formularz.php');
$formularz = ob_get_contents();
ob_end_clean();
function wyswietl_forme($komunikat='') {
global $formularz;
$do_zmiany = array(
'#komunikat#',
'#strona#',
'#nick#',
'#mail#',
'#temat#',
'#tresc#'
);
$zmien_na = array(
$komunikat,
$_SERVER['REQUEST_URI'],
$_POST['nick'],
$_POST['mail'],
$_POST['temat'],
$_POST['tresc']
);
$formularz = str_replace ( $do_zmiany, $zmien_na, $formularz);
return $formularz;
}
function waliduj() {
global $komunikat;
global $valid;
if( $valid['nick'] > 0 ) {
if(strlen($_POST['nick']) < $valid['nick'] ) {
$walidacja['nick'] = $komunikat['nick'];
}
}
if( $valid['mail'] == 1 ) {
if(!filter_var($_POST['mail'],FILTER_VALIDATE_EMAIL)) {
$walidacja['mail'] = $komunikat['mail'];
}
}
if( $valid['temat'] > 0 ) {
if(strlen($_POST['temat']) < $valid['temat'] ) {
$walidacja['temat'] = $komunikat['temat'];
}
}
if( $valid['tresc'] > 0 ) {
if(strlen($_POST['tresc']) < $valid['tresc'] ) {
$walidacja['tresc'] = $komunikat['tresc'];
}
}
if(empty($walidacja)) {
return 'true';
}
else {
return $walidacja;
}
}
// Dziaŋanie
if (($_SERVER['REQUEST_METHOD'] == 'POST')) {
// wejście postem
$walidacja = waliduj();
if ($walidacja == 'true') {
//poprawnie wypeŋniony formularz
if(mail($adres_odbiorcy,"=?iso-8859-2?B?".base64_encode($_POST['temat'])."?=","Od: ".$_POST['nick']." - ".$_POST['mail']."\r\n".$_POST['tresc'],"\r\n wachcio@delphi-archiwum.pl"."\r\nContent-Type: text/html; charset=iso-8859-2")) {
//sukces
print '
<div id="sukces">
<p>'.$komunikat['sukces'].'</p>
</div>
';
}
else {
//blÄ‌d serwera
print '
<div id="blad">
<p>'.$komunikat['fail'].'</p>
</div>
';
print wyswietl_forme();
}
}
else {
//bŋędna walidacja
$blad_walidacji = $walidacja;
$blad_walidacji = '
<div id="blad">
<p>'.$komunikat['blad'].'</p>
<ul>
';
foreach ($walidacja as $wpis) {
$blad_walidacji .= '<li>'.$wpis.'</li>';
}
$blad_walidacji .= '
</ul>
</div>
';
print wyswietl_forme($blad_walidacji);
}
}
else {
// nowe wejście
print wyswietl_forme();
}
?>
</html>
<head>
<meta http-equiv="Content-type" content="text/html; CHARSET="iso-8859-2" />
<link rel="stylesheet" href="css/formularz.css" type="text/css" />
</head>
<?php
/********************************************************************************
*****/
/* Licencja na uĹĽytek prywatny i komercyjny. */
/* Wymaga pozostawiania poniĹĽszych danych o autorze i pochodzeniu skryptu. */
/* Autor: Labsta.com Laboratorium Designu */
/* Skrypt pochodzi ze strony http://websta.pl - Blog o grafice i projektowaniu stron */
/* 03/02/2010 */
/********************************************************************************
*****/
include ('ustawienia.php');
ob_start();
include('formularz.php');
$formularz = ob_get_contents();
ob_end_clean();
function wyswietl_forme($komunikat='') {
global $formularz;
$do_zmiany = array(
'#komunikat#',
'#strona#',
'#nick#',
'#mail#',
'#temat#',
'#tresc#'
);
$zmien_na = array(
$komunikat,
$_SERVER['REQUEST_URI'],
$_POST['nick'],
$_POST['mail'],
$_POST['temat'],
$_POST['tresc']
);
$formularz = str_replace ( $do_zmiany, $zmien_na, $formularz);
return $formularz;
}
function waliduj() {
global $komunikat;
global $valid;
if( $valid['nick'] > 0 ) {
if(strlen($_POST['nick']) < $valid['nick'] ) {
$walidacja['nick'] = $komunikat['nick'];
}
}
if( $valid['mail'] == 1 ) {
if(!filter_var($_POST['mail'],FILTER_VALIDATE_EMAIL)) {
$walidacja['mail'] = $komunikat['mail'];
}
}
if( $valid['temat'] > 0 ) {
if(strlen($_POST['temat']) < $valid['temat'] ) {
$walidacja['temat'] = $komunikat['temat'];
}
}
if( $valid['tresc'] > 0 ) {
if(strlen($_POST['tresc']) < $valid['tresc'] ) {
$walidacja['tresc'] = $komunikat['tresc'];
}
}
if(empty($walidacja)) {
return 'true';
}
else {
return $walidacja;
}
}
// Dziaŋanie
if (($_SERVER['REQUEST_METHOD'] == 'POST')) {
// wejście postem
$walidacja = waliduj();
if ($walidacja == 'true') {
//poprawnie wypeŋniony formularz
if(mail($adres_odbiorcy,"=?iso-8859-2?B?".base64_encode($_POST['temat'])."?=","Od: ".$_POST['nick']." - ".$_POST['mail']."\r\n".$_POST['tresc'],"\r\n wachcio@delphi-archiwum.pl"."\r\nContent-Type: text/html; charset=iso-8859-2")) {
//sukces
print '
<div id="sukces">
<p>'.$komunikat['sukces'].'</p>
</div>
';
}
else {
//blÄ‌d serwera
print '
<div id="blad">
<p>'.$komunikat['fail'].'</p>
</div>
';
print wyswietl_forme();
}
}
else {
//bŋędna walidacja
$blad_walidacji = $walidacja;
$blad_walidacji = '
<div id="blad">
<p>'.$komunikat['blad'].'</p>
<ul>
';
foreach ($walidacja as $wpis) {
$blad_walidacji .= '<li>'.$wpis.'</li>';
}
$blad_walidacji .= '
</ul>
</div>
';
print wyswietl_forme($blad_walidacji);
}
}
else {
// nowe wejście
print wyswietl_forme();
}
?>
</html>