ugrás a tartalomhoz

nem fut le az email küldő php

Andyka · 2016. Aug. 15. (H), 17.40
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;
 
1

...

visuall · 2016. Aug. 16. (K), 00.23
Szia!

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:
  • Próbáld meg az elágazások, ciklusok, stb. kódblokkjait megfelelően behúzni:
    
    function mail(cimzett, targy, tartalom)
    {
          if(empty(cimzett))
          {
                //....
          }
    }
    
  • A bejövő adatok (pl. $_GET["p"]) meglétét ne empty-vel ellenőrizd, hanem az isset() nyelvi kifejezéssel
  • Ha mégis empty-t használsz, nem szükséges a típusellenőrző operátor sem, mivel csak igaz/hamis értéket tud visszaadni.
  • Felesleges exit;-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!
2

Köszönöm! Átnézem ezek

Andyka · 2016. Aug. 16. (K), 11.11
Köszönöm! Átnézem ezek szerint! :)