Script d'édition : comparaison existant ou non

Eléphant du PHP | 57 Messages

07 juin 2011, 09:26

Bonjour,

J'ai un script d'édition d'articles de blog sur mon site, il fonctionne bien mais n'est pas pratique d'utilisation. En effet, je suis obligée de re-sélectionner à chaque fois une catégorie et une photo. Si je ne rechoisi pas de photo, il n'y en a alors plus, alors que j'aimerais faire en sorte que si ce champ est vide, on ne change rien.
Or, je n'ai aucune idée de comment procèder.

J'avais pensé à faire une comparaison entre la nouvelle URL de la photo et de l'ancienne, et de changer la photo uniquement si elle n'étaient pas identiques, mais je ne vois pas comment faire non plus. Merci de bien vouloir m'aider, c'est urgent en plus :| .

Voici mon code
<?php
	require_once('../includes/connexion.php');
	//------------------------ SESSION ------------------------------//
	session_start();
	if (!isset($_SESSION['login']))
	{
		header('Location:../index.php');
		exit();
	}

		echo '<div id="content">';
		include('../includes/header.php');
		include('../fonctions/fctredimimage.php');

if (isset($_POST['submit']))
{
	$idArticle = $_POST['article'];
	$idCat = $_POST["idCat"];
	$titreArticle = stripslashes(htmlspecialchars($_POST["titreArticle"]));
	$contenuArticle = stripslashes(htmlspecialchars($_POST["contenuArticle"]));
	$photoArticle = $_FILES["photoArticle"];
	$descPhoto = stripslashes(htmlspecialchars($_POST["descPhoto"]));

	if(!empty($idCat))
	{
		//----------------------------------------------------------------------------------------------------------------
		// TRAITEMENT DE L'IMAGE
		//----------------------------------------------------------------------------------------------------------------
		
		if (!empty($photoArticle)) 
		{
			$nomOrigine = $_FILES['photoArticle']['name'];
			$repertoireOrigine = $_FILES['photoArticle']['tmp_name'];
			$elementsChemin = pathinfo($nomOrigine);
			$extensionFichier = $elementsChemin['extension'];
			$extensionsAutorisees = array("jpeg", "jpg", "JPG", "JPEG", "GIF", "PNG", "gif", "png");
			$repertoireDestination = "../../photos/";
			$nomDestination = "photo".date("YmdHis").".".$extensionFichier;

			if (move_uploaded_file($repertoireOrigine, $repertoireDestination.$nomDestination))
			{
				$redimOK = fctredimimage(180,270,$repertoireDestination,$nomDestination,$repertoireDestination,$nomDestination);
	
				if (in_array($extensionFichier, $extensionsAutorisees)) 
				{
					// le fichier a une bonne extension
					if ($redimOK == true)
					{
					//	echo 'Redimensionnement OK !';
						$URLPhoto = ("http://www.smtk-communication.com/photos/".$nomDestination);
					}
					else
					{
						echo 'Le redimensionnement a échoué.';
					}

					// ca marche !
				}
				else 
				{
					// le fichier n'a pas une extension valide
				}
			}
			else
			{
				//echo "Le fichier n'a pas été uploadé ";
			}
		}
		else 
		{
			//
		}
		
/**********************************************************************/
/******************* REQUETE SQL D'AJOUT DANS LA BDD ******************/
/**********************************************************************/
		$req ="UPDATE articles
        SET
		idArticle = '',
        idCat = '$idCat',
        titreArticle = '$titreArticle',
        photoArticle = '$URLPhoto',
        descPhoto = '$descPhoto',
        contenuArticle = '$contenuArticle'
        WHERE idArticle = '$idArticle';";

		$result = mysql_query($req, $connexion) or die(mysql_error());
		if ($result)
		{
			echo '<div class="valide"><p>La modification a été correctement effectuée.</p></div>' ;
		}
		else
		{
			echo '<div class="echec"><p> La modification a échoué.</p></div>';
		}
	}
	else echo '<div class="echec"><p> Vous n\'avez pas rempli tous les champs. </p></div>';
}

	include('../includes/form_editionarticle.php');
	include('../includes/footer.php');
?>

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

07 juin 2011, 09:32

Modération :
Tes délais ne nous intéressent pas.
Nous savons que tu es en difficulté puisque tu demandes de l'aide,
mais nous sommes tous bénévoles et répondons selon nos disponibilités.

Merci de ne pas s'impatienter.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

07 juin 2011, 09:34

L'idée à implémenter est simple : s'il n'y a pas de photo uploadée dans $_FILES, tu ne fais pas le traitement de la photo.
En pratique, cela passe par un simple if autour du code de déplacement de la photo uploadée, et la modification de la requête SQL pour ne pas changer l'urlPhoto si le traitement de l'image ne s'est pas exécuté.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 57 Messages

07 juin 2011, 09:47

Modération :
Tes délais ne nous intéressent pas.
Nous savons que tu es en difficulté puisque tu demandes de l'aide,
mais nous sommes tous bénévoles et répondons selon nos disponibilités.

Merci de ne pas s'impatienter.
Désolé pour l'impatience, j'ai la pression avec ce bidule.

Merci beaucoup de ta réponse en tout cas, je vais essayer de mettre cela en place.

Eléphant du PHP | 57 Messages

07 juin 2011, 13:42

Bon eh bien merci infiniment, ca fonctionn parfaitement maintenant. J'avoue que c'est assez ultime :mrgreen:
Voici le code pour info :
<?php
	require_once('../includes/connexion.php');
	//------------------------ SESSION ------------------------------//
	session_start();
	if (!isset($_SESSION['login']))
	{
		header('Location:../index.php');
		exit();
	}

		echo '<div id="content">';
		include('../includes/header.php');
		include('../fonctions/fctredimimage.php');

if (isset($_POST['submit']))
{
	$idArticle = $_POST['article'];
	$idCat = $_POST["idCat"];
	$titreArticle = stripslashes(htmlspecialchars($_POST["titreArticle"]));
	$contenuArticle = stripslashes(htmlspecialchars($_POST["contenuArticle"]));
	$photoArticle = $_FILES["photoArticle"];
	$descPhoto = stripslashes(htmlspecialchars($_POST["descPhoto"]));

	if(!empty($idCat))
	{
		//----------------------------------------------------------------------------------------------------------------
		// TRAITEMENT DE L'IMAGE
		//----------------------------------------------------------------------------------------------------------------
		
		if (!empty($_FILES['photoArticle']['name'])) 
		{
			$nomOrigine = $_FILES['photoArticle']['name'];
			$repertoireOrigine = $_FILES['photoArticle']['tmp_name'];
			$elementsChemin = pathinfo($nomOrigine);
			$extensionFichier = $elementsChemin['extension'];
			$extensionsAutorisees = array("jpeg", "jpg", "JPG", "JPEG", "GIF", "PNG", "gif", "png");
			$repertoireDestination = "../../photos/";
			$nomDestination = "photo".date("YmdHis").".".$extensionFichier;

			if (move_uploaded_file($repertoireOrigine, $repertoireDestination.$nomDestination))
			{
				$redimOK = fctredimimage(180,270,$repertoireDestination,$nomDestination,$repertoireDestination,$nomDestination);
	
				if (in_array($extensionFichier, $extensionsAutorisees)) 
				{
					// le fichier a une bonne extension
					if ($redimOK == true)
					{
					//	echo 'Redimensionnement OK !';
						$URLPhoto = ("http://www.smtk-communication.com/photos/".$nomDestination);
					}
					else
					{
						echo 'Le redimensionnement a échoué.';
					}

					// ca marche !
				}
				else 
				{
					// le fichier n'a pas une extension valide
				}
			}
			else
			{
				//echo "Le fichier n'a pas été uploadé ";
			}
			$req ="UPDATE articles
			SET
			idArticle = '',
			idCat = '$idCat',
			titreArticle = '$titreArticle',
			photoArticle = '$URLPhoto',
			descPhoto = '$descPhoto',
			contenuArticle = '$contenuArticle'
			WHERE idArticle = '$idArticle';";

			$result = mysql_query($req, $connexion) or die(mysql_error());
			if ($result)
			{
				echo '<div class="valide"><p>La modification a été correctement effectuée.</p></div>' ;
			}
			else
			{
				echo '<div class="echec"><p> La modification a échoué.</p></div>';
			}	
		}
		else 
		{
			$req ="UPDATE articles
			SET
			idArticle = '',
			idCat = '$idCat',
			titreArticle = '$titreArticle',
			descPhoto = '$descPhoto',
			contenuArticle = '$contenuArticle'
			WHERE idArticle = '$idArticle';";

			$result = mysql_query($req, $connexion) or die(mysql_error());
			if ($result)
			{
				echo '<div class="valide"><p>La modification a été correctement effectuée.</p></div>' ;
			}
			else
			{
				echo '<div class="echec"><p> La modification a échoué.</p></div>';
			}
		}
		
/**********************************************************************/
/******************* REQUETE SQL D'AJOUT DANS LA BDD ******************/
/**********************************************************************/
		
	}
	else echo '<div class="echec"><p> Vous n\'avez pas rempli tous les champs. </p></div>';
}
	include('../includes/form_editionarticle.php');
	include('../includes/footer.php');
?>