[php-sql] Modifier plusieurs champs d'une bdd
                    
        
     
             
                    timon44
    
        
    
                    Messages postés
            
                
     
             
            56
        
            
                                    Statut
            Membre
                    
                -
                                     
ApeKing -
        ApeKing -
        Bonjour, j'ai créé un site web, avec accés sécurisé, donc avec pseudo et mot de passe dans une base de données.
Je souhaiterai faire une page qui permette de modifier ses information (pseudo, mot de passe, nom, prenom etc...)
Donc j'ai commencé à faire ça : (ça marche impec)
Mais je me vois pas, enfin j'ai plutot la flegme ( ! ^^) de faire ça pour chaque champ, c'est à dire, tester si le prenom a changé, si oui etc ... aprés tester si le nom a changé ...
Connaissez vous un meilleur moyen ?
Ou une petite critique de mon code ?
sinon autre petite question, dont je n'ai pas trouvé la réponse ...
Vous voyez ici que j'utilise extract, et comment faire pour l'utiliser tout en protégeant ma base (avec htmlentities par exemple)
Merci beaucoup !
                
            
                
    
    
    
        Je souhaiterai faire une page qui permette de modifier ses information (pseudo, mot de passe, nom, prenom etc...)
Donc j'ai commencé à faire ça : (ça marche impec)
<?php
	include('verif.php');
			
	extract($_POST); //permet de convertir les POST directement en variable : $pseudo
			
			
			
	// partie changement de pseudo
	
	if ($pseudo2 != $login) {
				$req = "Select pseudo from membres where pseudo='$pseudo2'";
				$reponse = mysql_query($req);
				$bool=mysql_fetch_array($reponse);
				
				if (!$bool){
						
		$ajout= mysql_query("UPDATE membres SET pseudo='$pseudo2' WHERE id_membre=$id");
						
				//on test si il n'y a pas eu d'erreur pour la requete $ajout
				if($ajout==false){
					echo mysql_error();
					} 
					else {
					echo ('<b>Modification réussie, redirection ...</b>');
					header("Refresh: 1; URL=../index.php?page=compte" );
						}
				} //fin si le pseudo/email nexiste pas
				else {
				echo ('<b> Email ou pseudo déjà éxistant !</b>');
				header("Refresh: 3; URL=../index.php?page=compte" );
			} //fin bool
			} // fin pseudo2 login
			else { header("Refresh: 0; URL=../index.php?page=compte" );}
			
			
	 // fin partie changement de pseudo
	 
	 
			
			
			
			
			
			
			
				?>
Mais je me vois pas, enfin j'ai plutot la flegme ( ! ^^) de faire ça pour chaque champ, c'est à dire, tester si le prenom a changé, si oui etc ... aprés tester si le nom a changé ...
Connaissez vous un meilleur moyen ?
Ou une petite critique de mon code ?
sinon autre petite question, dont je n'ai pas trouvé la réponse ...
Vous voyez ici que j'utilise extract, et comment faire pour l'utiliser tout en protégeant ma base (avec htmlentities par exemple)
Merci beaucoup !
        A voir également:         
- [php-sql] Modifier plusieurs champs d'une bdd
- Modifier dns - Guide
- Modifier liste déroulante excel - Guide
- Modifier une story facebook - Guide
- Modifier extension fichier - Guide
- Vous avez besoin d'une autorisation de la part de système pour modifier ce dossier - Guide
5 réponses
                        
                    Bonsoir,
Je n'ai pas regardé tout votre code mais je suppose que ce que je vais vous dire vous aidera...
Lors de votre condition, vous mettez ceci:
Et si vous faisiez comme ceci ?
Cela vous évitera de faire trente-six mille condition... Ensuite, dans les champs formulaire, pourquoi ne pas les pré-remplir avec les infos déjà présentes ? Si la personne change quelque chose, tant mieux, sinon on fait quand même un update avec les anciennes infos ?
Luan.
                
                
    
                Je n'ai pas regardé tout votre code mais je suppose que ce que je vais vous dire vous aidera...
Lors de votre condition, vous mettez ceci:
if ($pseudo2 != $login)
Et si vous faisiez comme ceci ?
if ($pseudo2 != $login or $passe2 != $passe or $nouveautruc != $trucactuel)
Cela vous évitera de faire trente-six mille condition... Ensuite, dans les champs formulaire, pourquoi ne pas les pré-remplir avec les infos déjà présentes ? Si la personne change quelque chose, tant mieux, sinon on fait quand même un update avec les anciennes infos ?
Luan.
                        
                    Tu ferais bien de virer cet affreux extract().
Si on modifie ton formulaire, crois moi que ton site ne va pas faire long feu lorsqu'il sera en ligne.
    
                Si on modifie ton formulaire, crois moi que ton site ne va pas faire long feu lorsqu'il sera en ligne.
                        
                    oui, pas bête ! ^^
fatigué de la journée, je pense pas toujours aux meilleures soluces !
En plus j'avais déjà prérempli le formulaire ^^
Merci !
Pas d'idée pour le extract ?
    
                fatigué de la journée, je pense pas toujours aux meilleures soluces !
En plus j'avais déjà prérempli le formulaire ^^
Merci !
Pas d'idée pour le extract ?
                        
                    Donc voila ce que j'ai fait :
Donc pour le extract, je l'ai remplacé par ce que je fais d'habitude, c'est ce que tu voulais dire P@t@ch0n ?
Le fait que extract ne protége pas ta base ?
merci !
    
                <?php
	include('verif.php');
	
$pseudo2 = mysql_real_escape_string(htmlentities($_POST['pseudo2'], ENT_QUOTES)); 
$email2 = mysql_real_escape_string(htmlentities($_POST['email2'], ENT_QUOTES)); 
$prenom2 = mysql_real_escape_string(htmlentities($_POST['prenom2'], ENT_QUOTES)); 
$nom2 = mysql_real_escape_string(htmlentities($_POST['nom2'], ENT_QUOTES)); 
$numtel2 = mysql_real_escape_string(htmlentities($_POST['numtel2'], ENT_QUOTES)); 
$autre2 = mysql_real_escape_string(htmlentities($_POST['autre2'], ENT_QUOTES)); 
	
// partie changement de pseudo
		if ($pseudo2 != $login ) {
			$req = "Select pseudo from membres where pseudo='$pseudo2'";
			$reponse = mysql_query($req);
			$bool=mysql_fetch_array($reponse);
			
		if (!$bool){
				
		$ajout= mysql_query("UPDATE membres SET pseudo='$pseudo2' WHERE id_membre=$id");
						
			//on test si il n'y a pas eu d'erreur pour la requete $ajout
			if($ajout==false){
				echo mysql_error();
				} 
					else {
					echo ('<b>Votre changement de pseudo a été effectué avec succés</b>');
					}
			} //fin si le pseudo/email nexiste pas
			else {
			echo ('<b> Pseudo déjà éxistant !</b>');
		} //fin bool
		} // fin pseudo2 login
		
		
		
 // fin partie changement de pseudo
			
				
		$sql = "SELECT * FROM membres WHERE id_membre='$id'";
		$req = mysql_query($sql);
		$info = mysql_fetch_array($req);
			
           if( ($email2 != $info['email']) || ($prenom2 != $info['prenom']) || ($numtel2 != $info['numtel']) ||  ($autre2 != $info['autre'])){ 
				
				
			$test="SELECT * FROM membres WHERE id_membre=$id"; 
			$rep=mysql_query($test);
			$bool=mysql_fetch_array($rep);
			
			
						
				$ajout= mysql_query("UPDATE membres 	
										SET email='$email2',prenom='$prenom2',nom='$nom2',numtel='$numtel2',autre='$autre2'
										WHERE id_membre=$id");
					
							
				//on test si il n'y a pas eu d'erreur pour la requete $ajout
				if($ajout==false){
					echo mysql_error();
					} 
					else {
						echo ('<p><b>Modification réussie, redirection ...</b></p>');
						header("Refresh: 1; URL=../index.php?page=compte" );
					}
			
		} // fin si ya eu une modif
		else { //si ya pas de modif
			header("Refresh: 0; URL=../index.php?page=compte" );
		}			
?>
Donc pour le extract, je l'ai remplacé par ce que je fais d'habitude, c'est ce que tu voulais dire P@t@ch0n ?
Le fait que extract ne protége pas ta base ?
merci !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
                        
                    Bonjour, j'ai un problème légèrement similaire: j'ai crée une base de données qui répertories des voitures de lgendes pour un projet scolaire. ma bdd contient trois table:
_la table CAR (code_car, nom_car, constructeur_car...etc
_la table CONSTRUCTEUR
_la table DESIGNER
J'ai inséré un nouveau champs 'pays_car' dans la table CAR, dans la table (+champs) 'CONSTRUCTEUR.code_const', j'ai mis par exemple la donnée 'AM1' qui correspond au constructeur ford.
Dans la table (+champs) 'CAR.code_car', je mets par exemple 'AM11' qui correspond à la 'mustang gt 500', et 'AM12' qui correspond à la 'mustang bullitt'.
Mon problème c'est pour le champs suivant: 'CAR.pays_car', j'aimerais insérer la données 'etats unis' pour les deux voitures en une seule commande.
Sachant que je travaille avec easyphp, et que je fais mets manipulations via une console cmd, je fais la synthax suivante:
update CAR
set pays_car='etats unis'
where code_car='AM1*;
J'aimerais savoir où se trouve mon erreur, car j'ai longtemps cherché, mais en vain. Merci beaucoup
    
                _la table CAR (code_car, nom_car, constructeur_car...etc
_la table CONSTRUCTEUR
_la table DESIGNER
J'ai inséré un nouveau champs 'pays_car' dans la table CAR, dans la table (+champs) 'CONSTRUCTEUR.code_const', j'ai mis par exemple la donnée 'AM1' qui correspond au constructeur ford.
Dans la table (+champs) 'CAR.code_car', je mets par exemple 'AM11' qui correspond à la 'mustang gt 500', et 'AM12' qui correspond à la 'mustang bullitt'.
Mon problème c'est pour le champs suivant: 'CAR.pays_car', j'aimerais insérer la données 'etats unis' pour les deux voitures en une seule commande.
Sachant que je travaille avec easyphp, et que je fais mets manipulations via une console cmd, je fais la synthax suivante:
update CAR
set pays_car='etats unis'
where code_car='AM1*;
J'aimerais savoir où se trouve mon erreur, car j'ai longtemps cherché, mais en vain. Merci beaucoup
