Autor | Zpráva | ||
---|---|---|---|
Tomy Profil |
#1 · Zasláno: 3. 10. 2015, 15:02:07
Ahoj, mám takový problém. Mám vytvořenou stránku kde se mají posílat emaily, ale ono mi to nějak nefunguje. Poradíte mi rosím, kde mám chybu?
Přikládám kód. Děkuju moc :) <?php $to = "xolycz@gmail.com"; $subject = "this came from your mother"; $name = $_POST["name"]; $email = $_POST["email"]; $topic = $_POST["topic"]; $message = $_POST["message"]; $body = <<<EMAIL Hi! My name is $name. and my topic is $topic $message From $name Oh ya, my email is $email EMAIL; $header = "From: $email"; if($_POST){ if($name == "" || $email = ""|| $message = ""){ $feedback = "fill out all the fields"; } else{ } mail($to, $subject, $body, $header) $feedback = "Thanks for the worthless email"; } mail($to, $subject, $message, $header) ?> <!DOCTYPE html> <html> <head> <link rel="stylesheet" type="text/css" href="main.css"> <style type="text/css"> form { width: 400px; } form ul { list-style-type: none; } form ul li{ margin: 15px 0; } form labels { display: block; font-size: 2em; } form input, textarea, select{ font-size: 2em; padding: 5px; border: #ccc 3px solid; width: 100%; } </style> </head> <body> <p id="feedback"><?php echo $feedback; ?></p> <form action="?" method="post"> <ul> <li> <label for="name">Name:</label> <input type="text" name="name" id="name" /> </li> <li> <label for="name">Email:</label> <input type="text" name="email" id="email" /> </li> <li> <label for="topic">Topic:</label> <select id="topic"> <option value="Ponies">Ponies</option> <option value="Mexicans">Mexicans</option> <option value="Weiner">Weiner</option> </select> </li> <li> <label for="message">tell me about your shitty day:</label> <textarea id="message" name="message" cols="42" rows="9"></textarea> </li> <li><input type="submit" value="Submit" ></li> </ul> </form> </body> </html> |
||
mimochodec Profil |
#2 · Zasláno: 3. 10. 2015, 15:18:47
Co znamená "nefunguje"? Co to dělá? Hodnoty v tom POSTu jsou?
Proč máš to mail mimo ten if? A proč ho máš pod tím ještě jednou? if($name == "" || $email = ""|| $message = ""){ $feedback = "fill out all the fields"; } else{ } mail($to, $subject, $body, $header) |
||
Tomy Profil |
#3 · Zasláno: 3. 10. 2015, 15:25:49
No neposílá to ty emaily, ani to nevypisuje to že si máš všecko vyplnit, nebo to že děkuje za zprávu.
Jo toho že to tam mám dvakrát sem si nevšiml, nevim proč, nějak sem to přehlédl. |
||
mimochodec Profil |
Já mám občas pocit, že na 80 % dotazů tady se dá odpovědět: nejdřív se dopátrej místa, kde se to chová jinak, než očekáváš.
- jednak nepoužívám ten zápis, kterým tady skládáš proměnnou $body. Takže si pod to dej echo $body a uvidíš, jestli v tom je to, co by sis představoval. - pod tím je if($_POST){ - když si dovnitř do toho ifu dáš jako první řádek echo "ok"; , tak uvidíš, jestli je ta podmínka splněna. Pokud ano, jdeš stejným způsobem dál. Pokud ne, zjistíš, proč splněna není.
|
||
Tomy Profil |
Dobře, zkusím.
Myslím, že to nedělá vůbec nic:D |
||
mimochodec Profil |
#6 · Zasláno: 3. 10. 2015, 16:14:48
Má ten soubor příponu .php? A je na serveru, kde má php běžet? Dej tam jako první řádek pod <?php toto: echo "1";
|
||
Tomy Profil |
#7 · Zasláno: 3. 10. 2015, 16:29:52
Soubor příponu .php má, na serveru to je povolené, ale tohle mám já osobně v počítači. Zkoušel sem tam dát to echo a ono to prostě nic nedělá. já nevím proč, co tomu je :O :(
|
||
juriad Profil |
#8 · Zasláno: 3. 10. 2015, 16:36:12
Jiné skripty ti u tebe na počítači fungují? Jak ten soubor zobrazuješ? Pomocí
http://localhost/název-souboru.php nebo file://C:/Users/.../názve-souboru.php ?
|
||
Tomy Profil |
File: ...
nevím co přesně těma scriptama myslíš. Nebo spíše jak to zjistím? Myslíš něco s doplňkama prohlížeče? jinak používám poslední verzi Firefoxu. |
||
juriad Profil |
Tak to nikdy nemůže fungovat. Musíš si u sebe nainstalovat webový server, stránky umístit do něj a přistupovat k nim přes
http://localhost/ .
Pokud tedy chceš používat PHP, už nikdy nebude možné na soubor na disku jen poklepat a zobrazit jej tak v prohížeči. Ten soubor musí být napřed zpracován webovým serverem (a PHP, které je v něm obsažené). Toto se ve skutečnosti děje na hostinzích, a toho také musíš dosáhnout u sebe na počítači. |
||
Tomy Profil |
juriad:
Jdu na to. Ty stránky mámo zkopírovat do složky toho programu a pustit to tam, nebo jak si to myslel? |
||
mimochodec Profil |
#12 · Zasláno: 3. 10. 2015, 16:53:10
Tomy:
Alternativou k instalaci serveru u sebe (což není úplně banální) je zřízení účtu na nějakém free hostingu. Jestli jsi trvale na internetu, nevidím v tom problém, výhodou navíc je, že to v tom rozpracovaném stavu můžeš někomu předvést, ať už tam budeš řešit nějaký problém, nebo pak před nasazením do ostrého provozu budeš chtít třeba okomentovat design. Ostrým provozem myslím nějaký placený hosting, který bych rozhodně doporučoval, pokud je to něco, kde čekáš víc než 30 návštěv denně. |
||
Tomy Profil |
#13 · Zasláno: 3. 10. 2015, 17:03:27
mimochodec:
To bych zkusit mohl no. Placený hosting už mám, nebo ho má spíše ten pro koho ty stránky dělám, ale nechci to tam dávat neůplné. Jinak máš nějaké doporučení na free hosting? |
||
mimochodec Profil |
#14 · Zasláno: 3. 10. 2015, 17:11:10
Tomy:
Na tom placeném to můžeš dát do nějaké neveřejné složky, třeba domena.cz/new nebo domena.cz/dkfug. Bude to možná ještě lepší než nějaká endora.cz, a to z důvodů výkonu a spolehlivosti, ale hlavně proto, že tam pak máš jistotu stejného nastavení php a nemusíš kopírovat databázi. |
||
Tomy Profil |
mimochodec:
No mám to tam, mám to otevřené Ale teď mám problém s tím, že on když otevře tu záložku s tím emailem "kontakt.php" tak je ta stránka prázdná a když tam dám .html tak to načte, ale zase mi to nefunguje. |
||
Tomy Profil |
#16 · Zasláno: 4. 10. 2015, 15:52:19
Nevíš proč mi to nejde otevřít? Nebo spíše proč mi to jakoby nepřečte to co je v tom souboru?
|
||
Marschmallow Profil |
#17 · Zasláno: 4. 10. 2015, 16:14:13
Tomy:
Napiš nám adresu, kterou zadáváš do prohlížeče (nebo ji tam máš), aby se ti zobrazil soubor kontakt.php (příp. kontakt.html). |
||
Tomy Profil |
#18 · Zasláno: 4. 10. 2015, 16:15:15
|
||
juriad Profil |
#19 · Zasláno: 4. 10. 2015, 16:19:37
PHP stránka hlásí chybu:
HTTP/1.1 500 Internal Server Error , proto nefunguje. Jsou v ní nějaké chyby (v PHP). Na první pohled jsou to chybějící středníky na koncích řádků 31 a 34 (v [#1]).
|
||
Marschmallow Profil |
#20 · Zasláno: 4. 10. 2015, 16:21:00
Tomy:
A oba soubory (tj. kontakt.html a kontakt.php mají stejný obsah)? Je v těch souborech nějaký úsek PHP ([#1])? Teď je ještě otázka, zda webhosting, na kterém ti běží Tvé stránky podporuje PHP. Zkus vytvořit nějaký soubor (třeba pokus.php) a vložit do něj: <?php echo "Ahoj!"; ?> |
||
Tomy Profil |
Webhosing to podporuje.
A vypadá že to bylo tím středníkem :) Ještě prosím vás. Jaký příkaz nebo něco mám požít aby mi to bralo i čárky a háčky? Když ten email pošlu tak to příjde bez háčků a čárek. |
||
Fisir Profil |
#22 · Zasláno: 4. 10. 2015, 17:06:35
Reaguji na Tomyho:
Podívej se na zdejší FAQ. |
||
Časová prodleva: 9 let
|
0