Autor | Zpráva | ||
---|---|---|---|
t2001 Profil * |
ahoj, mam nasledujci problem...
mam script na registraci emailů uzivatelů, a následného ověření z jejich emailové schránky kliknutím na vygenerovaný odkaz. email a vsecky udaje to do databaze registruje v poho a odešle se i email na uzivatelem zadanou adresu, ale kdyz uzivatel klikne na tu adresu pro evereni emailu tak to nepotvrdí jeho adresu ... snad jsem to napsal ze tomu budete rozumět... následuje kód <?php elseif(!empty($_GET['akce'])): require("config.php"); // načtení nastavení databáze $DnesniDatum=date("Y-m-d H:i:s"); // dnešní datum a čas $Kod=MD5($_GET['email']); // generování unikátního kódu $Email=$_GET['email']; if(empty($Email)): // kontrola zadání emailu echo "Nebyl zadán e-mail!"; exit; else: @$vysledek=MySQL_Query("INSERT INTO seznam VALUES ('', '$DnesniDatum', '$Email', '$Kod', 'NO')"); // vložení dat do databáze if($vysledek): $predmet="Potvrzeni e-mailu ze serveru neco.cz"; $hlavicka="From: nekdo@neco.cz X-Mailer: TEST Content-Type: text/html; charset=utf-8 "; $zprava="Dne: ".$DnesniDatum." byl přidán Váš e-mail: ".$Email." do naší databáze pro zasílání novinek našeho serveru. Klikněte na následující odkaz pro potvrzení správnosti e-mailu: <a href='http://www.neco.cz/registr/index.php?email=".$_GET['email']."&kod=".$Kod."'> ."&kod=".$Kod."</a><br><br>S]http://www.neco.cz/registr/index.php?email=".$_GET['email']."&kod=".$K od."</a><br><br>S pozdravem nekdo"; // upravit cestu serveru mail("$Email","$predmet","$zprava","$hlavicka"); // zaslání emailu uživateli pro ověření echo "Váš e-mail byl přidán do naší databáze. Byl Vám odeslán e-mail pro potvrzení."; else: if(mysql_errno()==1062): // kontrola duplicity vkládaných údajů echo "Email je již v databázi!"; exit; else: // došlo k jiné chybě echo "Došlo k chybě, kontaktujte administrátora. admin@neco.cz"; exit; endif; endif; endif; endif; if((!empty($_GET['kod']))AND(!empty($_GET['email']))): require("config.php"); // načtení nastavení databáze @$kontrola=MySQL_Result(MySQL_Query("SELECT email FROM seznam WHERE (email='$Email' AND kod='$Kod')"), "email"); if($kontrola==$_GET['email']): // ověření emailu @$vysledek=MySQL_Query("UPDATE seznam SET overeno='OK' WHERE (email='$Email' AND kod='$Kod')"); if(!$vysledek): echo "Chyba databáze"; exit; else: echo "Údaje byly ověřeny, děkujeme."; exit; endif; elseif($kontrola!=$_GET['email']): echo "Údaje nebyly ověřeny."; exit; endif; endif; ?> Moderátor Alphard: Dodatečně obarveno.
|
||
nightfish Profil |
#2 · Zasláno: 20. 1. 2007, 18:05:02
t2001
v prvé řadě to odzavináčuj, za mysql_query si dej echo mysql_error(), zapni error_reporting na E_ALL a pak nám řekni, co vidíš... |
||
t2001 Profil * |
#3 · Zasláno: 20. 1. 2007, 18:14:39
Warning: mysql_result(): Unable to jump to row 0 on MySQL result index 4 in /home/vhosts/neco.cz/httpdocs/registr/index.php on line 587
Údaje nebyly ověřeny. řádek 587 je tento $kontrola=MySQL_Result(MySQL_Query("SELECT email FROM seznam WHERE (email='$Email' AND kod='$Kod')"), "email"); |
||
nightfish Profil |
#4 · Zasláno: 20. 1. 2007, 18:16:47
t2001
tak ještě jednou - přidej si tam echo mysql_error()... |
||
t2001 Profil * |
#5 · Zasláno: 20. 1. 2007, 18:49:33
upravil jsem tu část takto ... dyztak mi to prosim napovez jak to mam opravit
$kontrola=MySQL_Result(MySQL_Query("SELECT email FROM seznam WHERE (email='$email' AND kod='$Kod')"), "email"); if (mysql_errno() !=0) echo mysql_error()."<br>"; echo mysql_num_rows($kontrola); if($kontrola==$_GET['email']): // ověření emailu a vypsalo mi to toto(ale vypada to spis ze mam chybu ja v tom prikazu na vypsani chyby) Warning: mysql_result(): Unable to jump to row 0 on MySQL result index 4 in /home/vhosts/neco.cz/httpdocs/registr/index.php on line 587 Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/vhosts/neco.cz/httpdocs/registr/index.php on line 589 Údaje nebyly ověřeny. |
||
nightfish Profil |
#6 · Zasláno: 20. 1. 2007, 19:00:56
t2001
už to vidím mysql_result má jako první parametr odkaz na výsledek, druhý parametr je číslo řádku (první řádek = 0) a pak až je označení sloupce takže mysql_result(mysql_query("SELECT ..."), 0, "email"); |
||
t2001 Profil * |
#7 · Zasláno: 20. 1. 2007, 19:37:22
nefunguje, furt to samé :-( ... jeste neco skoušim, ale uz fakt nevim
Warning: mysql_result(): Unable to jump to row 0 on MySQL result index 4 in /home/vhosts/pocitace-svarc.cz/httpdocs/registr/index.php on line 587 Údaje nebyly ověřeny. |
||
nightfish Profil |
#8 · Zasláno: 20. 1. 2007, 20:01:00
t2001
to už je jenom důsledek toho, že požadovaný dotaz nevrátí žádný výsledek, neboť v tabulce se zřejmě nevyskytuje dotyčný e-mail a zároveň kód |
||
t2001 Profil |
#9 · Zasláno: 20. 1. 2007, 20:16:38
email i kod tam jsou :) takze chyba je nekde jinde
jeste mrknu jestli mam spravne nastavenou tabulku |
||
t2001 Profil |
#10 · Zasláno: 20. 1. 2007, 20:26:17
tabulka je nastavena správně
|
||
nightfish Profil |
#11 · Zasláno: 20. 1. 2007, 20:31:07
t2001
tak to rozepiš $result = mysql_query($q = "SELECT ..."); |
||
t2001 Profil |
#12 · Zasláno: 21. 1. 2007, 14:17:54
dotaz: SELECT email FROM seznam WHERE (email='' AND kod='')
nebyl nalezen žádný odpovídající záznam Warning: mysql_result(): Unable to jump to row 0 on MySQL result index 5 in /home/vhosts/neco.cz/httpdocs/registr/index.php on line 605 Údaje nebyly ověřeny. |
||
nightfish Profil |
#13 · Zasláno: 21. 1. 2007, 14:24:24
t2001
co z toho pro tebe plyne? proměnné $email a $kod jsou prázdné, takže zkontroluj kde se plní daty (připomínám, že v případě register globals nastavených na off je třeba při přebírání z formuláře použít $_GET['email'], resp. $_POST['email'] místo $email) |
||
t2001 Profil |
#14 · Zasláno: 21. 1. 2007, 15:55:28
nightfish
máš pravdu, taková školácká chyba ... děkuji :-) |
||
Časová prodleva: 6 měsíců
|
|||
alca Profil |
#15 · Zasláno: 13. 7. 2007, 00:08:04
mam problém pisu email mam to hezky urovnane a kdyz se podivam po odeslani jak to vypada cely text je rozhazen co mam delat babicka co se uci s pc
|
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0