Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Kapryśny skrypt wysyłający mail
Forum PHP.pl > Forum > Przedszkole
wachcio
Witam

Ś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>
Beniooo
Fuj, lepiej sobie naklep wysyłanie maila korzystając z serwera smpt przez jakąś klasę PHP.
http://stackoverflow.com/a/14456761
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.