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
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 *
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
t2001
tak ještě jednou - přidej si tam echo mysql_error()...
t2001
Profil *
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
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 *
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
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
email i kod tam jsou :) takze chyba je nekde jinde

jeste mrknu jestli mam spravne nastavenou tabulku
t2001
Profil
tabulka je nastavena správně
nightfish
Profil
t2001
tak to rozepiš
$result = mysql_query($q = "SELECT ...");

if ($result && mysql_num_rows($result) > 0) {
$kontrola = mysql_result($result, 0, 0);
} else {
echo "dotaz: $q<br>";
if (mysql_errno() !=0) echo mysql_error();
else echo "nebyl nalezen žádný odpovídající záznam";
}
t2001
Profil
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
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
nightfish
máš pravdu, taková školácká chyba ... děkuji :-)
alca
Profil
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
Toto téma je uzamčeno. Odpověď nelze zaslat.