Autor | Zpráva | ||
---|---|---|---|
Michala Profil * |
#1 · Zasláno: 28. 8. 2007, 22:25:37
Našla jsem si zajímavý návod na odesílání formuláře na mail i s kontrolou zadaných polí.
http://webnews.terc.cz/ps/article.php?arid=2 Stáhla si zdrojové kódy /dole na stránce - senform a inc/ Ve form.php jsem přepsala mail na svůj /kdejechyba@seznam.cz místo noreply@terc.cz <form name="FormName" action="sendform.php" method="post" enctype="multipart/form-data"> <input type="hidden" value="Y" name="html"> <input type="hidden" value="noreply@terc.cz" name="komu"> <input type="hidden" value="dekujeme.php" name="nexturl"> <p><font size="4"><strong>Pokud máte zájem o bližší informace, vyplňte následující formulář.</strong></font></p> a dále v sendform.php jsem upravila require("../inc/functions.php"); if ($html == "Y") include("../inc/class.html.mime.mail.inc"); na require("inc/functions.php"); if ($html == "Y") include("inc/class.html.mime.mail.inc"); Nahrála jsem to pres FTP na web http://passionateboy.php5.cz/form.php Bohužel po vyplnění všech polí formuláře kromě přílohy a odeslání tlačítkem odeslat informace se mně zobrazí pouze Chyba! Nejsou vyplněny všechny požadované údaje: Komu, Email Zpět Přitom všechna pole jsou vyplněna. Prosím nevíte někdo kde může být chyba a jak tento problém vyřešit??? Moc by mně to pomohlo Děkuji přístup na FTP kdyby to pomohlo FTP server: ftp://passionateboy.php5.cz Login: czpassionateboy Heslo: rascal720 |
||
Nox Profil |
#2 · Zasláno: 28. 8. 2007, 22:32:33
Ten přístup na FTP smaž, nijak to nikomu nepomůže v pomoci
a ještě ti s tím někdo něco udělá...ne že bych si myslel že tu sou všichni takoví, ale vždycky se někdo může najít |
||
Alphard Profil |
#3 · Zasláno: 28. 8. 2007, 22:39:59
Nox
není registrovaná |
||
Michala Profil * |
#4 · Zasláno: 28. 8. 2007, 22:40:27
Předpokládám že tady jsou jen slušní lidé.
|
||
tiso Profil |
#5 · Zasláno: 28. 8. 2007, 22:48:23 · Upravil/a: tiso
1. používaj <?php miesto <?
2. tipujem vypnutú direktívu register_globals, stačí v skripte sendform.php zmeniť premenné z $komu $email atď na $_POST['komu'], $_POST['email'] a podobne 3. nikdy nedávaj do diskusie prihlasovacie údaje k hostingu, nevieš kto to zneužije. Heslo som ti poslal na mail na seznam.cz |
||
Alphard Profil |
#6 · Zasláno: 28. 8. 2007, 23:18:15
Michala
ještě jedno doporučení svou adresu si dej přímo do kódu ($komu = "jmeno@server.domena) protože: 1. spam pro tebe ale hlavně 2. je to skvěle využitelné pro spamování všeobecně někdo to může zneužít a poslat tisícům emaily to by zřejmě vedlo k vložení SMTP serveru tvého hostungu do blacklistu, to by se nelíbilo adminům na serveru, zjistili by, kdo za to může, atd. :-) |
||
peta Profil |
#7 · Zasláno: 29. 8. 2007, 08:38:57
Michala
predpokladat muzes, ale forum se mapuje do google a muze to objevit nekdo nahodou, komu slusnost az tolik nerika :) http://www.volny.cz/peter.mlich/www.htm#msub11 http://www.volny.cz/peter.mlich/www.htm#mssub20 http://www.volny.cz/peter.mlich/www.htm#main6 (smes JS / PHP) viz tiso, pravdepodobne mas vypnute register global, coz je bezpecnostni opatreni a promenne $komu, ... se nenaplni podle NAME v html a je treba to udelat rucne, treba cyklem foreach($_POST as $key=>$value) {$$key=$value;} viz cz.php.net/register_globals Take je dobre si zapnout error_reporting, kdyz ladis nejaky PHP script viz cz.php.net/error_reporting Pak ti to vypise chyby a ty by treba mne zajimali. Chyba s textem "Chyba!" je nic nerikajici, pravdepodobne vysledek selhani odeslani mailu. Na wz.cz maji treba omezeni na pocet odeslanych mailu za hodinu, tak i pro to nemusi dojit k odeslani. Alphard "nelíbilo adminům na serveru, zjistili by, kdo za to může" Kdyz je mail v HTML, tak to ale neni nic, co by mohli admini trestat. Maximalne mohou pozadat, aby si jej dal/a pryc. Zvlast, kdyz to tak 90% lidi ma a adminum to nijak nevadi. |
||
Alphard Profil |
#8 · Zasláno: 29. 8. 2007, 10:44:43
peta
nevím jak je to v procentech, ale vím o pár lidech, kterým zablokovali účet, protože z jejich stránek chodil spam a to i na placeném hostingu |
||
Michala Profil * |
#9 · Zasláno: 29. 8. 2007, 12:52:47
Děkuji za rady - raději se ale zeptám pro pořádek - php není moje silná stránka ....
// odešleme mail ve formátu HTML $mail->add_html(ToISO($telo), ""); $mail->set_charset('iso-8859-2', TRUE); $mail->build_message(); $mail->send($komu, $komu, $email, $email, ToISO($predmet), "Return-Path: $email"); $sendok = true; mám změnit na // odešleme mail ve formátu HTML $mail->add_html(ToISO($telo), ""); $mail->set_charset('iso-8859-2', TRUE); $mail->build_message(); $mail->send($_POST['komu'], $_POST['komu'], $_POST['email'], $_POST['email'], ToISO($predmet), "Return-Path: $email"); $sendok = true; a nebo pouze do kódu v sendform.php přidat foreach($_POST as $key=>$value) {$$key=$value;} |
||
peta Profil |
#10 · Zasláno: 29. 8. 2007, 16:15:08 · Upravil/a: peta
Michala
To je totez temer totez. Jen jsi zapomnela na: $predmet, $email ... ToISO($predmet), "Return-Path: $email" $mail->send($_POST['komu'], $_POST['komu'], $_POST['email'], $_POST['email'], ToISO($predmet), "Return-Path: $email" ten take musis z postu vytahnout. Temer, protoze ten cyklus prebira vsechny promenne a bylo by dobre mu omezit jmena, treba na: $x = array('komu', 'email'); foreach($x as $key=>$value) {$$value=$_POST[$value];} vysvetleni: cyklus, ktery pro pole $x urci kazdou moznou hodnotu $klice v a k nemu prislusnou hodnotu $value (ktera je vlastne $value=$x[$klic]). {} - do promenne s nazvem ${hodnota z $value} prirad hodnotu z pole $_post[] s klicem $value. Jinymi slovy provede: $x = array('a', 'b','c'); foreach($x as $key=>$value) {$$value=$_POST[$value];} === $a = $_POST['a']; $b = $_POST['b']; $c = $_POST['c']; neboli ${'a'} = $_POST['a']; ${'b'} = $_POST['b']; ${'c'} = $_POST['c']; ... coz neni uplne presna nahrada globalnich promennych, ale tobe to staci ... a je to totez jako: $mail->send($_POST['a'],$_POST['b'],$_POST['c'];} |
||
Časová prodleva: 17 let
|
0