2010-12-03 3 views
0

J'utilise le code PHP suivant pour mettre à jour des informations dans une base de données mais avant que la mise à jour ne se produise, je suis invité à compléter tous les champs déjà complétésProblème de validation empêchant la mise à jour de base de données avec PHP

Quelqu'un peut-il voir pourquoi cela se passe?

Voici mon code

<?php 

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

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

$olspassword = 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 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!"; 
} 
?> 
+0

Très mauvais la mise en forme correcte première –

+1

Il brûle mes yeux :( – RobertPitt

+0

thansk, Alin vous l'avez édité –

Répondre

1

C'est la raison:

$olspassword = strip_tags($_POST['oldpassword']); 
/// code 
if($_SESSION['password']==($oldpassword)) { 

Le codeblock

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

sera toujours faux parce que ancienmotdepasse $ est jamais définie. Vous avez une faute de frappe ici:

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

Voir la variable $ olspassword?

+0

oh désolé pour mon ignorance na pas voir que, maintenant je l'ai déjà changer cela maintenant il dit toujours mot de passe ne correspond pas, – emjhay

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

font comme

if(isset($username) && isset($oldpassword) and so on 
Questions connexes