2010-12-04 6 views
0

im un débutant dans la programmation PHP et SQL et quelqu'un peut m'aider dans ma syntaxe, récemment créé ce code pour éditer mon utilisateur et l'écrire sur la base de données, mais il obtient toujours une erreur dans ancien mot de passe et mot de passe, et il dit toujours que le mot de passe ne correspond pas, même si je le fais correctement le processus, de l'aide sur moi? TNXmettre à jour (modifier) ​​utilisateur php

<?php 

$update = strip_tags($_POST['update']); 

$username = strtolower(strip_tags($_POST['username'])); 

$oldpassword = strip_tags($_POST['oldpassword']); 

$newpassword = strip_tags($_POST['newpassword']); 

$firstname = strip_tags($_POST['first']); 

$lastname = strip_tags($_POST['last']); 

$gender = strip_tags($_POST['gender']); 

$address = strip_tags($_POST['address']); 

$zipcode = strip_tags($_POST['zip']); 

$contact = strip_tags($_POST['con']); 

$email = strip_tags($_POST['mail']); 

error_reporting(0); 



if($update) 
{ 




if($username&& $oldpassword && $newpassword && $firstname && $lastname && $address && $zipcode && $contact && $email) 
{ 

    $connect = mysql_connect("localhost","root","") or die(mysql_error()); 
    mysql_select_db("brightlights") or die(mysql_error()); 

    $updatecheck = mysql_query("SELECT * FROM username FROM tb_user WHERE username='$username'"); 
    $count = mysql_num_rows($updatecheck); 
    if($count<=1) 
    { 

    if($_SESSION['password']==($oldpassword)) 
    { 

    mysql_query("UPDATE tb_user SET 
        username = '$username', 
        password = '$newpassword', 
        Firstname = '$firstname', 
        Lastname = '$lastname', 
        gender = '$gender', 
        address = '$address', 
        zipcode = '$zipcode', 
        contact = '$contact', 
        email = '$email' 
        WHERE username='".$_SESSION['username']."'"); 
        $_SESSION['username'] = $username; 
        $_SESSION['password'] = $newpassword; 
        $_SESSION['Firstname'] = $firstname; 
        $_SESSION['Lastname'] = $lastname; 
        $_SESSION['gender'] = $gender; 
        $_SESSION['address'] = $address; 
        $_SESSION['zipcode'] = $zipcode; 
        $_SESSION['contact'] = $contact; 
        $_SESSION['email'] = $email; 
        session_write_close(); 
        echo "Succesfully Updated!"; 

       }else 
        echo "Password not match!"; 
      }else 
       echo "Username already Taken!"; 
     }else 
      echo "Please fill up all form!"; 
} 
?> 
+3

En note, votre requête est vulnérable à [injection SQL] (http://php.net/manual/en/security.database.sql-injection.php) –

+1

Plus je pense que cela nécessite un débogage de base: À quel moment le mot de passe est-il défini dans l'ensemble de sessions? Avez-vous fait des sorties de test de l'ancien et du nouveau mot de passe? Que contiennent-ils? –

+0

votre formatage de code est terrible. –

Répondre

0
if($_SESSION['password']==($oldpassword)) 

Mais je ne peux pas voir session_start() après <?php

+0

@RUEL, chaque fois que je l'essaie sur mon site, il dit toujours mot de passe ne correspond pas 'ai fait ou écrire l'ancien mot de passe dans ma base de données dans l'ancien mot de passe et je reçois toujours ce mot de passe ne correspond pas – emjhay

+0

Je ne comprenais pas très bien mais pourquoi n'écris-tu pas $ mot de passe au lieu de $ _SESSION [' mot de passe '] ? – lam3r4370

0

Je pense que $_SESSION['password'] est un mot de passe crypté qui ne correspond pas. S'il vous plaît echo $_SESSION['password'] et $oldpassword et quittez, et vérifiez leurs valeurs.

Questions connexes