Autor Zpráva
milbr
Profil *
Přeji pěkný den,
chtěl bych vás poprosit o radu, mám čtyři domény na jednom serveru na všech mám stejný script na odeílání formulářů ze stránek. Ze dvou domén je odesílání bez problémů a na dvou doménách mi script hlásí již první nesplněnou podmínku při kontrole tvaru emailové adresy.
if ((ereg("^.+@.+\..{2,4}$", $_POST['formemail'])))  
Adresa je zadána správně a scripty fungovaly normálně.

Když odmažu první podmínku hlásí mi to nesplněnou druhou podmínku (spam kontrola) atd..

Nevíte prosím k jakým změnám mohlo dojít na serveru, že scripty přestaly fungovat jen u některých domén?

Děkuji moc za radu
AM_
Profil
funkce ereg() je zastaralá, doporučuji nahradit preg_match (má trochu jinou notaci reg. výrazu):
preg_match("/^.+@.+\..*$/", $_POST['formemail'])

velikost doménového jména 1. řádu bych neomezoval na 2-4 znaky, není žádné pravidlo, proč by nemohlo někdy existovat delší.

V tom ale stejně problém nebude, ačkoli ereg() je zastaralá, stále funguje. Výraz je také správně napsaný, takže pokud se tahle podmínka vyhodnocuje jako false, je problém jinde.
Přes var_dump ověř, že:
- před vykonáním podmínky je v $_POST['formemail'] to, co má
- funkce skutečně vrací false (a nedochází k selhání jinde)
milbr
Profil *
AM:
Děkuji za odpověď, když si vypíšu $_POST['formemail'] do výstupu, tak na serveru není vypsána zadaná hodnota.

Vypadá to tedy, že u některých domén selhává odesílání POST DATA.

Děkuji Milan
AM_
Profil
milbr:
Vypadá to tedy, že u některých domén selhává odesílání POST DATA.
to jsem ještě neviděl, problém bude jinde. to by na těch serverech neběhalo skoro nic. Nedávno se tady řešilo něco podobného a příčina byla v tom, že zpracující skript se za jistých podmínkek přesměrovával přes header("location: ..."), konkrétně myslím kvůli odstranění koncového lomítka z adresy. A při tom se pochopitelně POST data ztratila.
milbr
Profil *
AM:
Díky, je ale divné že pomalu půl roku vše běhalo bez problémů, a na locale mi ta také vše funguje.

do indexu vkládám formulář php scriptem
<form action="index.php?sekce=2" method="post" class="kontakty_form">..............</form>


V indexu mám podmínku
if($_GET['sekce'] == "2")  {
                                                  include "obsah/send.php"; }


Díky všem za radu, Milan
milbr
Profil *
AM:
Děkuji za radu, vše vyřešeno, chyba byla v .htaccess a zadané cestě ke zpracujícímu scriptu.

Přeji všem pěkný večer.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0