Page 1 sur 1

Script d'édition : comparaison existant ou non

Posté : 07 juin 2011, 09:26
par Pauloscorps
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');
?>

Re: Script d'édition : comparaison existant ou non

Posté : 07 juin 2011, 09:32
par zeus
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.

Re: Script d'édition : comparaison existant ou non

Posté : 07 juin 2011, 09:34
par zeus
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é.

Re: Script d'édition : comparaison existant ou non

Posté : 07 juin 2011, 09:47
par Pauloscorps
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.

Re: Script d'édition : comparaison existant ou non

Posté : 07 juin 2011, 13:42
par Pauloscorps
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');
?>