Annonce

#1 Re : Aide technique » Inserer une liste d'email » 2009-01-29 23:03:35

SQL query :
INSERT INTO wa_newsletterabo_liste (`abo_id`, `liste_id`, `format`, `register_key`, `register_date`, `confirmed`) VALUES(212, '1', 1, '3eded0414a42294976e4', 1214253701, 1)

SQL errno : 1062
SQL error : Duplicate entry '3eded0414a42294976e4' for key 2

Fichier : tools.php Ligne : 718

Bonjour, le problème vient que le serveur tourne "trop vite"  yikes pour allouer une register_key unique (basée sur des centièmes de secondes), et il arrive que 2 enreg. s'insèrent dans la même microseconde, donc avec la même register_key.

=>Donc, le plus simple est de tricher  8) dans la fonction suivante de la page includes/functions.php :

function generate_key($num_char = 32, $use_uniqid = true)
{
    $use_uniqid=true;    // Instruction ajoutée pour forcer le test suivant

    if( $use_uniqid == true )
    {
        srand((double) microtime() * 1000000);
        $rand_str = md5(uniqid(rand()));
    }
     else
     {
         $rand_str = md5(microtime());
     }
   
    return ( $num_char >= 32 ) ? $rand_str : substr($rand_str, 0, $num_char);
}

J'ai cherché un petit moment, alors autant éviter que d'autres se cassent la tête aussi .....  :d

Pied de page des forums

Propulsé par FluxBB