Neodesílá se email [vyřešeno]
16 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
Mám takovejdle script: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1250"> <title>Scripty</title> </head> <body> Registrace: <?php function JeEmail($cislo) { return ereg("^.+@.+\..+$", $cislo); } function emailvdb ($email) { $vysledek=mysql_query("select * from uzivatele where email='".$email."'", $GLOBALS["link"]); return (boolean) mysql_num_rows($vysledek); } function prezdivkavdb ($prezdivka) { $vysledek=mysql_query("select * from uzivatele where prezdivka='".$prezdivka."'", $GLOBALS["link"]); return (boolean) mysql_num_rows($vysledek); } $link=mysql_connect("mysql.ic.cz", "xxx", "xxx"); mysql_select_db("xxx"); $Zobrazit=true; if (!empty($_POST)) if (!JeEmail($_POST["email"])) echo "Tento email neexistuje, zadejte existující!"; elseif (emailvdb($_POST["email"])) echo "Tento email je již zaregistrován. Zkuste jiný."; elseif (prezdivkavdb($_POST["prezdivka"])) { echo "Tato prezdivka je již zaregistrována"; echo "(<a href=\"index.php?clanek=zapomenuteheslo\">připomenout heslo</a>)"; } elseif ((strlen ($_POST["prezdivka"])>50) | strlen ($_POST["prezdivka"])<3)echo "Přezdívka musí mít 3-50 znaků"; elseif ((strlen ($_POST["heslo"])>50) | strlen ($_POST["heslo"])<3) echo "Heslo musí mít 3-50 znaků"; elseif (($_POST["heslo"])!=($_POST["opakheslo"])) echo "Zadaná hesla nejsou stejná"; else { $Zobrazit=false; echo "Gratulujeme! Nyní jste se uspěšně zaregistroval/a. Infomace pro dokončení registrace vám byli zaslány na email: ". $_POST["email"]; mysql_query ("insert into uzivatele (email, prezdivka, heslo) values ('".$_POST["email"]."', '".$_POST["prezdivka"]."', '".$_POST["heslo"]."');", $GLOBALS["link"]); $lastid=mysql_insert_id(); // a sestavíme e-mail s instrukcemi, jak registraci dokončí $path="http://".$_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["SCRIPT_NAME"]."registracedokoncena&id=".$lastid."&email=".$_POST["email"]; $telo = "Dekujeme Vam za registraci na nasem portale. Pro dokonceni ". "registrace klepnete na nasledujici odkaz\n". "<a href=\"$path\">$path</a>\n". "Pokud jste se na nasem portale nechteli zaregistrovat, povazujte tento e-mail za bezpredmetny.\n"; $hlavicky="From: ".$_POST["email"]."\nReturn-Path:".$_POST["email"]; @mail ($_POST["email"], "Registrace na portalu", $telo, $hlavicky, "-f ".$_POST["email"]); } if ($Zobrazit):?> <form method="post" action="registrace.php"> <table> <tr> <td>Přezdívka:</td> <td><input name="prezdivka" value="<?echo $_POST["prezdivka"]?>"></td> </tr> <tr> <td>E-mail:</td> <td><input name="email" value="<?echo $_POST["email"]?>"></td> </tr> <tr> <td>Heslo:</td> <td><input name="heslo" type = "password"></td> </tr> <tr> <td>Opakujte heslo:</td> <td><input name="opakheslo" type = "password"></td> </tr> <tr> <td colspan="2"><input type="Submit" name="odesli" value="Zaregistrovat"></td> </tr> </table> </form> <?php endif;?> </body> Ten script by měl zapsat data do databáze (to funguje) a spolu stim by měl poslat email ve kterým je odkaz na dokončení registace, to ale nefunguje:(. Nevíte čím to je? Popřípadě jak na to?
-
Tak prvni moznost - zkus si vyhodit potlaceni hlasek u funkce mail a mozna se dozvis o nejake chybe.. Nebo prekracujes povolene mnozstvi odeslanych e-mailu za hodinu (je jich 10) .. Nebo jsi narazil na problem na serveru - i kdyz tohle je starsiho data - pro blizsi info staci pouzit hledani .. http://www.webzdarma.cz/forum/read.php?f=2&i=42001&t=41793
-
Žádný hlášky to nevyhazuje a potlačování chybovejch hlášek sem si v htaccess nevypínal. Nn to určitě ne. To taky neni ono.
-
<HTML>Pak tedy jistě víte, k čemu slouží zavináč před voláním funkce. Až odstraníte potlačování chybových hlášek, bude mít cenu pokračovat. Zatím jste nepopsal problém dostatečně.</HTML>
-
Takze jinak .. K cemu mas u mail pouzite pridavne parametry? (-f) Na jinem serveru to funguje? Cetl jsi konec http://www.webzdarma.cz/forum/read.php?f=2&i=42001&t=41793 ? ____ "potlačování chybovejch hlášek sem si v htaccess nevypínal" ? Chapu to tak, ze nevis proc mas @ pres funkci mail.
-
Jo aha. Tak teď to vypisuje: Warning: mail(): SAFE MODE Restriction in effect. The fifth parameter is disabled in SAFE MODE. in /9p/wz.cz/j/juzras/registrace.php on line 57
-
Takze reseni uz mas ;) A ted bych rad zjistil odpoved na mou otazku "K cemu mas u mail pouzite pridavne parametry? (-f)" ;) diky .. ___ nebos to jen zkopiroval z php manualu? (jeden priklad tam s tim myslim je .. )
-
Nn skopčil sem to z linuxsoftu. Tam k tomu sice diskuse je ale 4roky stará takže tam asi je k ničemu se ptát. Jinak jsem ten parametr smazal a nic se neděje pořád stejná chyba.
-
<HTML>Říkáte, že jste odstranil 5. parametr a že to stále nadává na 5. parametr? A já jsem už ráno tušil, že logika odjela na prázdniny. Ledaže byste: a) ten soubor neupravil b) to měl ve vaší cache c) byl líný zkopírovat sem novou chybovou hlášku (pokud je jiná)</HTML>
-
"Říkáte, že jste odstranil 5. parametr" Smazal jsem to -f.
-
A co ti rekla chyba php parseru? ze mas zrusit cely(!) paty parametr! K cemu ho tam mas? Sdelis mi to uz? ;) ___ Proste ber funkci mail tak, ze ma pouze 4 parametry. Páty jako kdyby neexistoval. Akceptuj to prosím.
-
"ze mas zrusit cely(!) paty parametr!" Tak co mam smazat když né to -f?
-
<HTML>Nechci být zlý a sarkastický, ale potřeboval byste nějakou lekci z PHP: Volání funkce se skládá z jména funkce a kulatých závorek, mezi nimiž je výčet parametrů oddělený čárkami. Má-li tedy funkce 4 parametry, vypadá její volání zhruba takto: funkce(a,b,c,d); Zatímco funkce s 5 parametry je volána přibližně takto: funkce(a,b,c,d,e); Myslím, že tak do hodiny možná pochopíte pointu mého příspěvku a odhalíte jisté zákonitosti (vzory), jejichž aplikací se vám úspěšně podaří odmazat celý pátý parametr a tím zmenšit počet parametrů funkce na 4.</HTML>
-
Tedy .. radek s funkci mail bude vypadat takto: mail($_POST["email"], "Registrace na portalu", $telo, $hlavicky);
-
Díky moc. už to funguje.
-
<HTML>Zamykám.<style>form { display: none; }</style></HTML>