8795 sujets

Développement web côté serveur, CMS

Bonjour,

je poste pas mal en même temps car je suis sur plusieurs projets en même temps, pas simple pour la tête Smiley sweatdrop

Alors mon problème viens du traitement d'un formulaire de modification,
voici la page
<!-----header-------------->
<?php include("../includes/header.php"); ?>
<!-----contenue------------>
<div id="content">
	<?php
		//récupération des valeurs des champs
		$login        = $_POST['login'];
		$pass1        = md5($_POST['pass1']);
		$pass2        = md5($_POST['pass2']);
		$pass3        = md5($_POST['pass3']);
		
		//recuperation de l'id
		$id           = $_POST['IDAdmin'];
		//si l'ancien mot de passe est le bon
		//requete sql
		$sql = "SELECT Password FROM admin WHERE IDAdmin = '".$id."'";
		//execution de la requete
		$res = $cnx->query($sql) or die('Erreur SQL!<br>'.$sql.'<br>'.mysql_error());
		$row = $res->fetch(PDO::FETCH_ASSOC);
		if($login =!'' and $pass1 =!'' and $pass2 =!'' and $pass3 =!'')
		{
			if($pass1 == $row['Password'])
			{
				if($pass2 == $pass3)
				{

					//creation de la requete sql
					$sql1 = "UPDATE admin
								SET Login    ='".$login."',
									Password ='".$pass2."',
							WHERE IDAdmin    ='".$id."'";
					//execution de la requete sql
					$data = $cnx->query($sql1) or die('Erreur SQL1!<br>'.$sql1.'<br>'.mysql_error());
					//affichage des resultats, pour savoir si la modif à marchée:
					if($res)
					{
						echo("<p>La modification à été correctement effectuée, <a href=\"TBGadmin.php\">Retour</a></p>");
					}else {
						echo("<p>La modification à échouée, <a href=\"TBGadmin.php\">Retour</a></p>");
					}
				}else {
					echo("<p>Les nouveaux mots de passe sont différents, <a href=\"TBGadmin.php\">Retour</a></p>");
				}
			}else {
				echo("<p>Vérifier l'ancien mot de passe, <a href=\"TBGadmin.php\">Retour</a></p>");
			}
		}else {
			echo("<p>Veuillez remplir tous les champs, <a href=\"TBGadmin.php\">Retour</a></p>");
		}
	?>
</div>
<!-----pied de page-------->
<?php include("../includes/footer.php"); ?>

je ne comprend pas car si je ne mets rien, je passe quand même à la requête update
je voulais faire: si l'ancien mot de passe = mot de pass (bdd) je continue et si pass2= pass3 je continue
Salut,
plusieurs projets en même temps? Sincèrement mais toi sur un seul et à fond.

Tu n'es pas rigoureux, regarde tes if, la syntaxe n'est pas bonne => $login =!''
Oui je sais pourquoi plusieurs projets !?
J'ai un boulo en contrôle d'accès donc je serais de plus en plus amené à programmer en php je suis électricien à la base !!!
Et j'ai une petite entreprise en création de site web, je prend que des petits sites, au début j'étais amené à faire des site avec joomla, mais je me suis aperçu que ce n'est pas le top pour du pro, donc c'est le premier site que je tente en php.
Alors je comprends le principe du php, mais j'ai vraiment des lacune niveau syntaxe surtout entre le '' et ""
j'avais un bout de code de se type:
if($_POST['identifiant'] != '' and $_POST['societe'] != '' and $_POST['adresse'] != '' and $_POST['cp'] != '' and $_POST['ville'] != '')

ce que je veux faire c'est le même principe donc je me suis dit, je remplace juste $_POST par mes variables
mais je vais voir les syntaxes
Tu as simplement mis =! au lieu !=, c'est tout ce que je te disais.
Après ce que je veux dire par le fait de travailler sur plusieurs projets en même temps (projet web j'entends), c'est pas forcément simple surtout si comme toi tu ne connais pas trop PHP. Je ne sais pas si c'est une "bonne idée" de se lancer sur un projet pro sans avoir de bonnes bases solides, ça ne reste que mon avis.
Quelle est cette erreur SQL?
Oui mais je pense que on apprend plus vite lorsqu'on a un projet, c'est vrai que plusieurs projets en même temps c'est galère, mon projet perso à commencé juin 2013 alors que mon boulo ça fait 3 mois, donc j'ai certaines obligations, ce n'est pas forcément voulu de faire plusieurs projets en même temps de plus on m'a demandé de me mettre a webdev (mais ça c'est une autre histoire)!!!!!!!

Retour à mon problème
pour le != je l'avais vue juste après d'avoir posté mais ça n'a pas résolu mon prob.
de plus lorsque je test mes mot de passe, j'ai l'erreur sql suivante

erreur sql de ce type:
Erreur SQL1!
UPDATE admin SET Login ='admin', Password ='3f21a5649afbd36ebc56dfa83a3c3b53', WHERE IDAdmin ='4'


avec les if lorsque je test les mot de passe, si ce n'est pas bon je passe sur le else, hors si je met deux mdp différent, j'ai l'erreur sql au dessus
Je pense que c'est dû à la virgule en trop dans ta requête avant le where, à tester pour être sûr.