8797 sujets

Développement web côté serveur, CMS

Salut à tous.
Je bosse depuis ce matin sur un script qui ne fonctionne pas. Il s'agit d'un script de modification du profil d'un membre. Le code m'a l'air clair, mais j'ai cette erreur lorsque l'utilisateur valide les changements:

Warning: PDOStatement::execute() [pdostatement.execute]: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in C:\wamp\www\site\includes\edit_account.php on line 76


<?php
session_start();
?>
<?php
if (!empty($_POST))
{

// Fonction de traitement de l'avatar
	function move_avatar($avatar)
{
    $extension_upload = strtolower(substr(  strrchr($avatar['name'], '.')  ,1));
    $name = time();
    $nomavatar = str_replace(' ','',$name).".".$extension_upload;
    $name = "../images/avatars/".str_replace(' ','',$name).".".$extension_upload;
    move_uploaded_file($avatar['tmp_name'],$name);
    return $nomavatar;
}

    if (!empty($_FILES['avatar']['size']))
    {
        //Définition des variables :
        $maxsize = 100024; //Poids de l'image
        $maxwidth = 300; //Largeur de l'image
        $maxheight = 300; //Longueur de l'image
        $extensions_valides = array( 'jpg' , 'jpeg' , 'gif' , 'png', 'bmp' );
        
        if ($_FILES['avatar']['size'] > $maxsize)
        {
            exit("La taille de votre avatar est trop grande !");
        }

        $image_sizes = getimagesize($_FILES['avatar']['tmp_name']);
        if ($image_sizes[0] > $maxwidth OR $image_sizes[1] > $maxheight)
        {
                exit("Votre image a une résoution trop grande !");
        }
        
        $extension_upload = strtolower(substr(  strrchr($_FILES['avatar']['name'], '.')  ,1));
        if (!in_array($extension_upload,$extensions_valides) )
        {
                exit("L'extension de l'avatar est incorrect !");
        }
		
		$nomavatar=(!empty($_FILES['avatar']['size']))?move_avatar($_FILES['avatar']):''; 
	}
	
require("connect_bdd.php");
$requette = $bdd->prepare('UPDATE membres SET pseudo= :nvpseudo,
											  password= :nvpassword, 
											  email= :nvemail, 
											  twitter = :nvtwitter,
											  facebook = :nvfacebook,
											  siteweb = nvsiteweb,
											  avatar = :nvavatar,
											  age= :nvage, 
											  passions = nvpassions,
											  signature = nvsignature,
											  biographie = nvbiographie,
											  localisation = nvlocalisation,
							            WHERE pseudo= [langue]seudo'
						);
$requette->execute(array(
							'nvpseudo' => strip_tags($_POST['pseudo']),
							'nvpassword' => htmlspecialchars($_POST['password']),
							'nvemail' => htmlspecialchars($_POST['email']),
							'nvtwitter' => htmlspecialchars($_POST['twitter']),
							'nvfacebook' => htmlspecialchars($_POST['facebook']),
							'nvsiteweb' => htmlspecialchars($_POST['website']),
							'nvavatar' => $nomavatar,
							'nvage' => htmlspecialchars($_POST['age']),
							'nvpassions' => htmlspecialchars($_POST['passions']),
							'nvsignature' => htmlspecialchars($_POST['signature']),
							'nvbiographie' => htmlspecialchars($_POST['biographie']),
							'nvlocalisation' => htmlspecialchars($_POST['localisation']),
							'pseudo' => htmlspecialchars($_SESSION['username'])
						));    // Ligne 76 où le code est bloqué [confused]
		
$requette->closeCursor();
$_SESSION['username'] = strip_tags($_POST['pseudo']);
//header('Location: profil.php?pseudo=' . strip_tags($_POST['pseudo']));
}
else 
{
	header('Location: ../index.php'); 
}
?>


Merci pour votre aide Smiley smile .