Problém s odesláním formuláře emailem – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Problém s odesláním formuláře emailem – PHP – Fórum – Programujte.comProblém s odesláním formuláře emailem – PHP – Fórum – Programujte.com

 

Vojta
~ Anonymní uživatel
73 příspěvků
19. 5. 2015   #1
-
0
-

Zdravím všechny,


mám formulář s níže uvedeným kódem, ale formulář se neodešle. Žádnou chybu tam nevidím. Poradíte někdo? Aktuální adresa stránky s kódem níže je www.kosmetika-bures.prodejce.cz/objednavka.php Předem děkuji






<?php

if ($ok==true)
{
if ($doprava==cp) 
{$zasilka=ceska_posta;};

if ($doprava==cpd) $zasilka = Česká_pošta_dobírka;
if ($doprava==ppl) $zasilka = PPL;
if ($doprava==uh) $zasilka = Osobně_v_UH;




$to = "vojtechbures@tiscali.cz";

$subject = "Potvrzení objednávky";
$mess = "Jméno: ".$jmeno."\nPrijmeni:".$prijmeni."\nEmail:".$email." \nTelefon: ".$telefon."\nUlice: ".$ulice."\nMěsto: ".$mesto."\nPSČ: ".$psc."\n
Poznámky: ".$poznamky."\n\n
kod: ".$kod1."  pocet:".$pocet1."/n
kod: ".$kod2."  pocet:".$pocet2."/n
kod: ".$kod3."  pocet:".$pocet3."/n
kod: ".$kod4."  pocet:".$pocet4."/n
kod: ".$kod5."  pocet:".$pocet5."/n
kod: ".$kod6."  pocet:".$pocet6."/n
kod: ".$kod7."  pocet:".$pocet7."/n
kod: ".$kod8."  pocet:".$pocet8."/n
kod: ".$kod9."  pocet:".$pocet9."/n
kod: ".$kod10."  pocet:".$pocet10."/n
kod: ".$kod11."  pocet:".$pocet11."/n
kod: ".$kod12."  pocet:".$pocet12."/n
kod: ".$kod13."  pocet:".$pocet13."/n
kod: ".$kod14."  pocet:".$pocet14."/n
kod: ".$kod15."  pocet:".$pocet15."/nDoprava:".$zasilka;






;

mail ($to, $subject, $mess);
echo "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=katalog.html'>";};

?>



<HTML>
<HEAD> 
<TITLE>Objednávka</TITLE>

</HEAD>

<BODY>



<form action='objednavka.php' method='post'>

  
  <TABLE BORDER=0>
<TR><TH>Jméno<TD><INPUT NAME='jmeno' TYPE='TEXT'><TD>
<TR><TH>Přijmení<TD><INPUT NAME='prijmeni' TYPE='TEXT'><TD>
<TR><TH>E-mail<TD><INPUT NAME='email' TYPE='TEXT'><TD>
<TR><TH>Telefon<TD><INPUT NAME='telefon' TYPE='TEXT'><TD>
<TR><TH>Ulice a číslo domu<TD><INPUT NAME='ulice' TYPE='TEXT'><TD>
<TR><TH>Město<TD><INPUT NAME='mesto' TYPE='TEXT'><TD>
<TR><TH>PSČ<TD><INPUT NAME='psc' TYPE='TEXT'><TD>
<TR><TH>Poznámky<TD><TEXTAREA ROWS=5 COLS=25 NAME='poznamky'></TEXTAREA><TD><TD>
 </table> 
    <BR>
  <TABLE BORDER=0>
<TR><TH>Objednávací číslo<TD>Počet<TD>
<TR><TH><INPUT NAME='kod1' TYPE='TEXT'><TD><INPUT NAME='pocet1' TYPE='TEXT'><TD>
<TR><TH><INPUT NAME='kod2' TYPE='TEXT'><TD><INPUT NAME='pocet2' TYPE='TEXT'><TD>
<TR><TH><INPUT NAME='kod3' TYPE='TEXT'><TD><INPUT NAME='pocet3' TYPE='TEXT'><TD>
<TR><TH><INPUT NAME='kod4' TYPE='TEXT'><TD><INPUT NAME='pocet4' TYPE='TEXT'><TD>
<TR><TH><INPUT NAME='kod5' TYPE='TEXT'><TD><INPUT NAME='pocet5' TYPE='TEXT'><TD>
<TR><TH><INPUT NAME='kod6' TYPE='TEXT'><TD><INPUT NAME='pocet6' TYPE='TEXT'><TD>
<TR><TH><INPUT NAME='kod7' TYPE='TEXT'><TD><INPUT NAME='pocet7' TYPE='TEXT'><TD>
<TR><TH><INPUT NAME='kod8' TYPE='TEXT'><TD><INPUT NAME='pocet8' TYPE='TEXT'><TD>
<TR><TH><INPUT NAME='kod9' TYPE='TEXT'><TD><INPUT NAME='pocet9' TYPE='TEXT'><TD>
<TR><TH><INPUT NAME='kod10' TYPE='TEXT'><TD><INPUT NAME='pocet10' TYPE='TEXT'><TD>
<TR><TH><INPUT NAME='kod11' TYPE='TEXT'><TD><INPUT NAME='pocet11' TYPE='TEXT'><TD>
<TR><TH><INPUT NAME='kod12' TYPE='TEXT'><TD><INPUT NAME='pocet12' TYPE='TEXT'><TD>
<TR><TH><INPUT NAME='kod13' TYPE='TEXT'><TD><INPUT NAME='pocet13' TYPE='TEXT'><TD>
<TR><TH><INPUT NAME='kod14' TYPE='TEXT'><TD><INPUT NAME='pocet14' TYPE='TEXT'><TD>
<TR><TH><INPUT NAME='kod15' TYPE='TEXT'><TD><INPUT NAME='pocet15' TYPE='TEXT'><TD>
<br>
 </table>
   <TABLE BORDER=0>
<TR><TH>Doprava a platba:<TD><INPUT NAME='doprava' TYPE='RADIO' VALUE='cp'><TD>Česká pošta (45 Kč, při nákupu nad 500 Kč zdarma)
<TR><TH><TD><INPUT NAME='doprava' TYPE='RADIO' VALUE='cpd'><TD>Česká pošta - dobírka (80 Kč, při nákupu nad 500 Kč zdarma)
<TR><TH><TD><INPUT NAME='doprava' TYPE='RADIO' VALUE='ppl'><TD>PPL (150 Kč, při nákupu nad 750 Kč zdarma)
<TR><TH><TD><INPUT NAME='doprava' TYPE='RADIO' VALUE='uh'><TD>Osobní převzetí v Uherském Hradišti (zdarma)


<br>
 </table>
V případě volby PPL nebo České pošty Vám bude do 24 hodin zaslána na email faktura.
    
    
    <br>
    
  
    
      <INPUT TYPE='SUBMIT' NAME='ok' VALUE='Odeslat'>    <input type='reset' value='Vymazat'>
    
 
</form>

</BODY>
</HTML>

Nahlásit jako SPAM
IP: 2a00:1028:919e:353a:1c42:...–
amertak0
Návštěvník
21. 5. 2015   #2
-
0
-

Ahoj, ke všem těm proměnným by se mělo přistupovat přes $_POST

Např.  

$_POST["ok"]

Na kontrolu jestli je formulář odeslaný např. 

if (isset($_POST["ok"])) { 

Nebo

if ($_SERVER["REQUEST_METHOD"] == "POST") {

Celkově se doporučuji podívat třeba sem: http://www.w3schools.com/php/php_forms.asp

Nahlásit jako SPAM
IP: 89.103.130.–
peter
~ Anonymní uživatel
3981 příspěvků
21. 5. 2015   #3
-
0
-

"Žádnou chybu tam nevidím"
Jo, clovece, tam je tech chyb fura. Zkus si tam pridat na zacatek tohle: 

@ini_set('error_reporting', E_ALL);
@ini_set("display_errors", "on"); 
error_reporting(E_ALL);


Ty promenne muzes vytahnout i s REQUEST a nebo GET (je pokud formular neposilas pres post). Hromadne do promennych je mozne to treba nacpat pres A nebo B
A: foreach ($_POST as $key=> $value) {$$key = trim($value);}
B: foreach (array('jmeno','prijmeni','vek') as $value) {$$value = isset($_POST[$value]) ? trim($_POST[$value]) : '';}

Pak si muzes vsimnout, ze porovnavas $promenou s KONSTANTOU
if ($ok==true) { true / false je definovana konstanta, ok
if ($doprava==cp) ale cp neni definovana konstanta, spis tam mel byt string 'cp'

A jiste tam najdes pomoci error_reportingu spoust dalsich zajimavych chyb. To mas kod z php4 nebo jeste neceho prehistorickeho, ne? To se uz nepouziva tak 10-20 let

 

Nahlásit jako SPAM
IP: 2001:718:2601:1f7:14e0:f0...–
peter
~ Anonymní uživatel
3981 příspěvků
21. 5. 2015   #4
-
0
-

Nemas tam treba ani podminky, aby se mail neodeslal, kdyz bude neco prazdne. takze je mozne na pradny formular klikat nebo simulovat post request a tobe to bude zasilat prazdne maily :)
A taky dalsi furu dalsich bezpecnostnich chyb, ktere maji hackeri radi. Nekontrolujes si treba vstupni promenne. Ono php rado dela eval stringu.

Nahlásit jako SPAM
IP: 2001:718:2601:1f7:14e0:f0...–
Vojta
~ Anonymní uživatel
73 příspěvků
24. 5. 2015   #5
-
0
-

amertak: To jsem doplnil, jinak odešel email bez proměnných z formuláře. Díky

peter: Úkolem bylo jen odeslat email, samozřejmě že formulář dostal "profesionálnější" podobu hned po té, co emaily opravdu začali odcházet.

Jak jsem vyřešil problém?

Na wz.cz mi podpora řekla, že emaily odcházejí a problém je u mého emailového poskytovatele nebo někde na síti (možná se emaily hlásí jako spam). Zkusil jsem proto zaregistrovat se na konkurenčním web hostingu a tam všechny kódy fungují. Takže jsem na své původní stránky vložil okno se stránkou na novém hosingu. 

Nahlásit jako SPAM
IP: 2a00:1028:919e:353a:d55b:...–
peter
~ Anonymní uživatel
3981 příspěvků
25. 5. 2015   #6
-
0
-

Tak, wz.cz je free hosting. tam muzes pozitat s tim, ze nejaky zaporok to pouziva pro rozesilani spamu. Nasledne to pak ma nekdo maily z tama blokovane uplne nebo je jen hazi do spamu. Kdyz si to uzivatel nezkontroluje nebo ma dokonce sam takovy filtr...
Kdyz zadas zpatecni adresu, tam ti nedosla zadna chybova hlaska? Pokud ne, bud to mail prijal a hodil tedy do spamu (prijeti byva mezi do 5-15 min, nekdy se stava, ze i 30) a nebo to hned smazal a nereagoval na spam server. Obvykle ale chodi hlaska o nedoruceni, kdyz to php odesle.

U wz.cz bacha na propojovani s cizimi strankami. Maji tam neco v pravidlech. Ja osobne tam mam treba stranku taky a jeji klon na volny.cz (ted mujweb.cz tusim). Zatim mi to nesmazali.

Nahlásit jako SPAM
IP: 2001:718:2601:1f7:4553:37...–
remmidemmi0
Věrný člen
25. 5. 2015   #7
-
0
-

Můžu ti naprogramovat formulář. Dělal jsem formulář na tomto webu:

http://www.remmidemmi.co.uk/

a funguje. Dokonce je spojený s databází a kontroluje, jestli odesílatel je v databázi a ověřuje informace o odesilateli.

Kdyžtak dej vědět.

Nahlásit jako SPAM
IP: 109.81.210.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 15 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý