2011-05-04 6 views
0
$dbHost = "localhost"; 
$dbUsr = "root"; 
$dbPass = ""; 

function register() { 
    $username = md5($_POST['username']); 
    $password = md5($_POST['password']); 
    $remote = md5($_SERVER['REMOTE_ADDR']); 

    $connect = mysql_connect("$dbHost", "$dbUsr", "$dbPass"); 
    mysql_select_db("drupia1", $connect); 

    $query = sprintf('INSERT INTO usrs 
         (username, password, ip) 
        VALUES 
         ("$username", "$password", "$remote"', mysql_real_escape_string($username), mysql_real_escape_string($password)); 
} 

Pourquoi est-ce que ce script et d'une autre manière je l'écris, les valeurs dans mysql semblent être 0?PHP MySQL Insertion Problème

+1

parce que vous utilisez 'sprintf' dans une mauvaise façon. – zerkms

+0

U besoin de% s au lieu des variables – haknick

+0

@ianace: L'édition que vous proposez corrige le problème/l'erreur de l'OP - votre correction n'aide pas l'OP. –

Répondre

3

Consultez php.net pour l'utilisation sprintf - il devrait ressembler à:

$query = sprintf("INSERT INTO usrs 
        (username, password, ip) 
        VALUES 
        ('%s', '%s', '%s')", 
        mysql_real_escape_string($username), 
        mysql_real_escape_string($password), 
        $remote); 
+0

il manque toujours le troisième% s qui est supposé être distant. – helloandre

+0

vous avez fait une petite erreur dans l'édition @OMG – Ibu

+0

merci! pour l'édition – Ibu