nem fut le az email küldő php
Helló!
Már a végén járok a weboldalnak, de az istennek se bírok rájönni, miért nem fut le php-m, amikor az emailnél a küldés gombra kattintok. Biztos tök egyszerű, de nem szúrja ki a szemem.
Az oldal így jelenik meg: xy.hu/?p=kapcsolat
Az elérési újta pedig, xy.hu/static/kapcsolat.php
Mi lesz akkor a küld.php elérési útja, amit meg kell adnom a htmlben?
<form name="Formular" method="POST" action="http://xy.hu/?p=kuld"> Hát így nem jön be
De a másik verzióval sem...
Vagy a phpben rossz valami?
Beírom ide:
<?php
ini_set('default_charset', 'utf-8');
ini_set('default_mimetype', 'text/html');
ini_set('display_errors', '0');
ini_set('display_startup_errors', '0');
ini_set('error_reporting', 'E_ALL');
ini_set('ignore_user_abort', '0');
ini_set('magic_quotes_runtime', '0');
ini_set('magic_quotes_sybase', '0');
ini_set('max_execution_time', '0');
ini_set('mbstring.detect_order', 'utf-8, iso-8859-2');
ini_set('mbstring.http_input', 'utf-8');
ini_set('mbstring.http_output', 'utf-8');
ini_set('mbstring.internal_encoding', 'utf-8');
ini_set('memory_limit', '536870912');
ini_set('mysql.connect_timeout', '20');
ini_set('session.auto_start', '0');
ini_set('session.cache_expire', '180');
ini_set('session.cache_limiter', 'nocache');
ini_set('session.save_handler', 'files');
ini_set('session.use_cookies', '1');
ini_set('session.use_only_cookies', '0');
ini_set('session.use_trans_sid', '0');
mb_language('uni');
ob_start('ob_gzhandler');
header('accept-charset: utf-8;q=1');
header('cache-control: max-age=0, s-maxage=0, no-cache, no-store, must-revalidate, post-check=0, pre-check=0');
header('content-type: text/html; charset=utf-8');
header('expires: sat, 1 jan 2000 01:00:00 gmt+1');
header('last-modified: sat, 1 jan 2000 01:00:00 gmt+1');
header('pragma: no-cache');
require_once('phpmailer/class.phpmailer.php');
if(empty($_POST['Neve']) === FALSE && empty($_POST['cime']) === FALSE) {
$mail = new PHPMailer();
$mail->SMTPAuth = TRUE;
$mail->Username = 'webshop';
$mail->Password = 'valami';
$mail->CharSet = 'UTF-8';
$mail->IsHTML(TRUE);
$mail->From = $_POST['cime'];
$mail->FromName = $_POST['Neve'];
$mail->AddReplyTo($_POST['cime'], $_POST['Neve']);
$mail->AddAddress('info##kukac##xy.hu', 'xy');
$mail->Subject = 'Árajánlat kérés';
$message = $_POST['Neve'] . ' [ ' . $_POST['cime'] . ' ] írta:<br />';
$message .= $_POST['tel'] . '<br />';
$message .= $_POST['targy'] . '<br />';
$message .= $_POST['szoveg'];
$mail->MsgHTML($message);
$mail->Send();
$mail->ClearAllRecipients();
$mail->ClearAttachments();
}
header('Location: http://xy.hu/static/kapcsolat2.php');
exit;
■ Már a végén járok a weboldalnak, de az istennek se bírok rájönni, miért nem fut le php-m, amikor az emailnél a küldés gombra kattintok. Biztos tök egyszerű, de nem szúrja ki a szemem.
Az oldal így jelenik meg: xy.hu/?p=kapcsolat
Az elérési újta pedig, xy.hu/static/kapcsolat.php
Mi lesz akkor a küld.php elérési útja, amit meg kell adnom a htmlben?
<form name="Formular" method="POST" action="http://xy.hu/?p=kuld"> Hát így nem jön be
De a másik verzióval sem...
Vagy a phpben rossz valami?
Beírom ide:
<?php
ini_set('default_charset', 'utf-8');
ini_set('default_mimetype', 'text/html');
ini_set('display_errors', '0');
ini_set('display_startup_errors', '0');
ini_set('error_reporting', 'E_ALL');
ini_set('ignore_user_abort', '0');
ini_set('magic_quotes_runtime', '0');
ini_set('magic_quotes_sybase', '0');
ini_set('max_execution_time', '0');
ini_set('mbstring.detect_order', 'utf-8, iso-8859-2');
ini_set('mbstring.http_input', 'utf-8');
ini_set('mbstring.http_output', 'utf-8');
ini_set('mbstring.internal_encoding', 'utf-8');
ini_set('memory_limit', '536870912');
ini_set('mysql.connect_timeout', '20');
ini_set('session.auto_start', '0');
ini_set('session.cache_expire', '180');
ini_set('session.cache_limiter', 'nocache');
ini_set('session.save_handler', 'files');
ini_set('session.use_cookies', '1');
ini_set('session.use_only_cookies', '0');
ini_set('session.use_trans_sid', '0');
mb_language('uni');
ob_start('ob_gzhandler');
header('accept-charset: utf-8;q=1');
header('cache-control: max-age=0, s-maxage=0, no-cache, no-store, must-revalidate, post-check=0, pre-check=0');
header('content-type: text/html; charset=utf-8');
header('expires: sat, 1 jan 2000 01:00:00 gmt+1');
header('last-modified: sat, 1 jan 2000 01:00:00 gmt+1');
header('pragma: no-cache');
require_once('phpmailer/class.phpmailer.php');
if(empty($_POST['Neve']) === FALSE && empty($_POST['cime']) === FALSE) {
$mail = new PHPMailer();
$mail->SMTPAuth = TRUE;
$mail->Username = 'webshop';
$mail->Password = 'valami';
$mail->CharSet = 'UTF-8';
$mail->IsHTML(TRUE);
$mail->From = $_POST['cime'];
$mail->FromName = $_POST['Neve'];
$mail->AddReplyTo($_POST['cime'], $_POST['Neve']);
$mail->AddAddress('info##kukac##xy.hu', 'xy');
$mail->Subject = 'Árajánlat kérés';
$message = $_POST['Neve'] . ' [ ' . $_POST['cime'] . ' ] írta:<br />';
$message .= $_POST['tel'] . '<br />';
$message .= $_POST['targy'] . '<br />';
$message .= $_POST['szoveg'];
$mail->MsgHTML($message);
$mail->Send();
$mail->ClearAllRecipients();
$mail->ClearAttachments();
}
header('Location: http://xy.hu/static/kapcsolat2.php');
exit;
...
Van valami oka, hogy a rendszerbeállításokat így adod meg, nem pedig magában a php.ini-ben?
Ha jól veszem ki a szavaidból, a kiszolgálótokon rewrite-ot alkalmaznak. Az átírási szabály szerint a p nevű GET változó alapján keresi meg a xy.hu/static/ mappában található php fájlt, amit végrehajt. Tehát neked a fentebb lévő kódot a
xy.hu/static/kuld.php
helyén található fájlba kell mentened. Ugyanebben a mappában kell lennie a phpmailer mappának, amelyben megtalálható a class.phpmailer.php
Pár tanács a kódolási stílus javítására:
$_GET["p"]
) meglétét ne empty-vel ellenőrizd, hanem azisset()
nyelvi kifejezésselexit;
-tel lezárni a PHP fájlt, mert a program mindenféleképpen be fog záródni.Kérlek, legközelebb használj kódszínezőt kódod megjelenítéséhez!
Köszönöm! Átnézem ezek
Hibakeresés