Witam
Mam problem z konfiguracją skryptu odpowiedzialnego za przesyłanie formularzy opartego na phpmailer
Skrypt generuje błąd mimo, ze według instrukcji na stronie twórcy jest wszystko prawidłowo.
Warning: Cannot modify header information - headers already sent by (output started at /home/.../domains/.../public_html/test/send.php:1) in /home/.../domains/.../public_html/test/send.php on line 3
wysyła do przeglądarki w linii 1 tekst przed wysłaniem nagłówków w linii 3. Może ktoś miał podobny problem z takim skryptem?
<?php
header('Content-Type: text/html; charset=UTF-8');
if(phpversion() <= '5.0.0')
die('Twój server musi obsługiwać PHP w wersji 5.0.0 lub większej!');
if(get_magic_quotes_gpc() == true)
ini_set('magic_quotes_gpc', 'off');
error_reporting(0); // wyświetlanie błędów jest wyłączone. Aby włączyć wyświetlanie błędów zamiast 0 wpis E_ALL
ini_set('display_error', "0"); // 0 -> wyświetlanie błędów jest wyłączone, 1 -> wyświetlanie błędów jest włączone.
define('SCRIPT', '1');
if(SCRIPT == 0)
die('Skrypt zablokowany. Stała SCRIPT ma wartość 0');
$imie = strip_tags($_POST['imie']); // Filtracja danych za pomocą strip_tags() - usuwa znaki HTML
$nazwisko = strip_tags($_POST['nazwisko']);
$nazwa_firmy = strip_tags($_POST['nazwa_firmy']);
$telefon = strip_tags($_POST['telefon']);
$nadawca = strip_tags($_POST['nadawca']);
$miejscowosc = strip_tags($_POST['miejscowosc']);
$firma = strip_tags($_POST['firma']);
if(empty($_POST))
return 'Formularz nie został wysłany.';
elseif(!is_array($_POST))
return '$_POST nie jest tablicą. Możliwy atak!';
elseif(!is_string($imie) || !is_string($nazwisko) || !is_string($nazwa_firmy) || !is_string($telefon) || !is_string($nadawca)|| !is_string($miejscowosc)|| !is_string($firma))
return 'Zmienna $imie, $nazwisko, $nazwa_firmy, $telefon, $nadawca, $miejscowosc lub $firma nie są typu string. Możliwy atak!';
elseif(empty($imie) || empty($nazwisko) || empty($nazwa_firmy) || empty($telefon) || empty($miejscowosc) || empty($firma))
return 'Wypełnij wszystkie pola.';
elseif(!filter_var($nadawca, FILTER_VALIDATE_EMAIL))
return 'Wpisz poprawny adres E-mail.';
elseif(strlen($nadawca) < 5)
return 'Wiadomość nie może być krótsza niż 5 znaków.';
elseif($_SERVER['HTTP_HOST'] !== 'MOJSERWER.COM')
return 'Wiadomość próbuje zostać wysłana z strony innej niż rynko.pl. Możliwy atak!';
elseif($_SERVER['REQUEST_METHOD'] !== 'POST')
return 'Wiadomość musi zostać przesłana metodą POST. Możliwy atak!';
else
{
$address_ip = $_SERVER['REMOTE_ADDR'];
$user_data = $_SERVER['HTTP_USER_AGENT'];
require_once('PHPMailer/class.phpmailer.php');
$mail = new PHPMailer(); // jeśli w argumentach wpiszemy true zostaną wyświetlone błędy.
$mail->IsSMTP();
$mail->Host = "EMAIL";
$mail->SMTPDebug = 0;
$mail->AddAddress($nadawca, "IMIE_NAZWISKO");
$mail->SMTPAuth = true;
$mail->SMTPSecure = "tls";
$mail->Host = "HOST";
$mail->Port = 587;
$mail->Username = "ADRES E_MAIL";
$mail->Password = "MOJE HASŁO";
$mail->MsgHTML("
<p>Imię: <strong>$imie</strong> </p>
<p>Naziwsko: <strong>$nazwisko</strong> </p>
<p>Nazwa firmy: <strong>$nazwa_firmy</strong> </p>
<p>Telefon: <strong>$telefon</strong> </p>
<p>E-mail: <strong>$nadawca</strong></p>
<p>Miejscowość: <strong>$miejscowosc</strong> </p>
<p>Firma: <strong>$firma</strong> </p>
<br><br>
<p>Adres IP: <strong>$address_ip</strong></p>
<p>USER_AGENT: <strong>$user_data</strong></p>
");
$mail -> Send();
if($mail)
echo 'Pomyślnie wysłano wiadomość.';
}
?>
dodanie znacznika <code>
- @furious programming