Autor | Zpráva | ||
---|---|---|---|
Pavel Dumbrovský Profil |
#1 · Zasláno: 26. 1. 2010, 12:00:10
Dobrý den,
prosím Vás, tentokrát asi půjde o nějaké nastavení na serveru, protože mám skript pro odeslání formuláře, přesněji tento: http://www.chapadlo.cz/weblog/clanek/ochrana-formularu-proti-spamu-reseni-kontaktniho-formulare a na jednom hostingu šlape, jinde zase ne. Zkoumal jsem proč a zřejmě půjde o nějakou krpu s odesílanými daty, protože $_POST Díky za radu! |
||
Pavel Dumbrovský Profil |
#2 · Zasláno: 26. 1. 2010, 12:23:17 · Upravil/a: Pavel Dumbrovský
Tak jsem na tom druhém serveru dal pryč .htaccess s mod_rewritem a zkusil ten skrip samostatně nenaicludovanej a běží, achjo..
.htaccesem to není, prostě jakmile to naincluduju, tak to nevalí, zřejmě index.php v kterým to je přepisuje nebo jinak mrví společný proměnný, jinak nevím.. |
||
Pavel Dumbrovský Profil |
#3 · Zasláno: 26. 1. 2010, 12:51:14 · Upravil/a: Pavel Dumbrovský
Tak příčinou je tenhle kus kódu na doplnění lomítek:
# automatické doplneni koncoveho lomitka if ( !ereg("/$", $_SERVER['REQUEST_URI']) && !strpos($_SERVER['REQUEST_URI'], "?") && !strpos($_SERVER['REQUEST_URI'], ".") ) { header("Location: ".$_SERVER['REQUEST_URI']."/", 301); return true; } Zatím nechápu proč, ale asi bude muset pryč.. |
||
Kajman_ Profil * |
#4 · Zasláno: 26. 1. 2010, 13:06:51
Pokud je posílaná data přes post, budou při přesměrování ztracena. Proto testujte, zda je o post před každým přesměrováním.
|
||
Majkl578 Profil |
#5 · Zasláno: 26. 1. 2010, 13:20:52 · Upravil/a: Majkl578
A co se kódu týče, ereg* funkce jsou od verze 5.3 deprecated.
Nešlo by to nahradit za toto? if (!preg_match('~(/$|[\?\.])~', $_SERVER['REQUEST_URI'])) { header('Location: ' . $_SERVER['REQUEST_URI'] . '/', 301); exit; } |
||
Pavel Dumbrovský Profil |
#6 · Zasláno: 26. 1. 2010, 15:03:51
Děkuju pánové.
Ještě Vás prosím, jestli byste se nemrkli na jednu věc. Jde o ten výše zmíněný skript na formulář, konkrétné tato pasáž: public function sendMail( ) { $obsah = iconv( "utf-8", "iso-8859-2", $this->text ); if ( mail( "info@domena.cz", "E-mail z webu", $obsah, "From: ". $this->mail."\nContent-Type: text/plain; charset=iso-8859-2\n" ) ) { echo "E-mail byl odeslán."; } else { echo "E-mail se nepodařilo odeslat !"; } } Stále mi to háže "E-mail se nepodařilo odeslat!" - přitom pole vyplněna, jinak bych se ani do tohoto podcyklu nedostal.. Selhává fce mail? Verze php by měla být 5+ , fce mail zapnutá, tak nevím.. |
||
Pavel Dumbrovský Profil |
#7 · Zasláno: 26. 1. 2010, 17:08:12 · Upravil/a: Pavel Dumbrovský
Tak ještě jinak:
<?php if ( mail ("info@domena.cz" , "test" , "test" ) ) {echo "Odeslano";} else {echo "Chyba";} ?> Na jednom serveru se odešle, na jednom chyba. Kde mám hledat krpu? Kdyby byla zakázaná fce mail, tak mi to hodí php chybu ne? |
||
fuckin Profil |
#8 · Zasláno: 26. 1. 2010, 19:52:31
Pavel Dumbrovský:
Zkus phpmailer. |
||
Časová prodleva: 14 let
|
0