[PHP] probleme d'affichage de liens (news)

Résolu
jerryp -  
jerryp Messages postés 141 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
j'ai récement créé un site web pour un vendeur de voitures...

afin que ce dernier puisse mettre ses annonces en ligne, j'ai modifié un peu un script de news...

j'ai donc un formulaire sur une page "rediger_news.php" qui contient un champ pour le titre, et un champ pour le contenu... j'ai aussi ajouté un champ "input type="file"" afin de pouvoir ajouter des photos...
Ensuite, j'ai une page "administration.php" qui traite le formulaire et qui affiche l'annonce dans une page "annonces.php"... dans cette page administration, j'ai un script qui uploade les images et qui est sensé afficher un lien vers celles-ci dans l'annonce... Et c'est là que ça coince...
L'image est correctement uploadée, mais le lien qui s'affiche dans l'annonce est invalide et donne sur une page "forbidden"...

voici ma page "administration.php" :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
   <head>
       <title>Balcicars Bütgenbach</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <style type="text/css">
        body
		{
		background-image: url("../images/fond-francais-allemand.jpg");
		}
		h2, th, td, h3
        {
            text-align:center;
        }
        table
        {
            border-collapse:collapse;
            border:2px solid black;
            margin:auto;
        }
        th, td
        {
            border:1px solid black;
        }
        </style>
    </head>
    
    <body>
 
<h2><a href="rediger_news.php">Ajouter une annonce</a></h2>
<h3><a href="../annonces.php">Retour à la liste d'annonces</a></h3>

<?php
mysql_connect("localhost", "*****", "*****");
mysql_select_db("balcicars_be");
//-----------------------------------------------------
// Vérification 1 : est-ce qu'on veut poster une news ?
//-----------------------------------------------------
if (isset($_POST['titre']) AND isset($_POST['contenu']))
{
    $titre = addslashes($_POST['titre']);
    $contenu = addslashes($_POST['contenu']);
    // On vérifie si c'est une modification de news ou pas
    if ($_POST['id_news'] == 0)
    {
        // Ce n'est pas une modification, on crée une nouvelle entrée dans la table
        mysql_query('INSERT INTO news(titre, contenu) VALUES(\''. $titre. '\', \''. $contenu.'\')')or die(mysql_error());
    }
    else
    {
        // On protège la variable "id_news" pour éviter une faille SQL
        $_POST['id_news'] = addslashes($_POST['id_news']);
        // C'est une modification, on met juste à jour le titre et le contenu
        mysql_query("UPDATE news SET titre='" . $titre . "', contenu='" . $contenu . "' WHERE id='" . $_POST['id_news'] . "'")or die(mysql_error());
    }
}
 
//--------------------------------------------------------
// Vérification 2 : est-ce qu'on veut supprimer une news ?
//--------------------------------------------------------
if (isset($_GET['supprimer_news'])) // Si on demande de supprimer une news
{
    // Alors on supprime la news correspondante
    // On protège la variable "id_news" pour éviter une faille SQL
    $_GET['supprimer_news'] = addslashes($_GET['supprimer_news']);
    mysql_query('DELETE FROM news WHERE id=\'' . $_GET['supprimer_news'] . '\'');
}
?>
<table><tr>
<th>Modifier</th>
<th>Supprimer</th>
<th>Titre</th>
</tr>
<?php
$retour = mysql_query('SELECT * FROM news ORDER BY id DESC')or die(mysql_error());
while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news
{
?>
<tr>
<td><?php echo '<a href="rediger_news.php?modifier_news=' . $donnees['id'] . '">'; ?>Modifier</a></td>
<td><?php echo '<a href="administration.php?supprimer_news=' . $donnees['id'] . '">'; ?>Supprimer</a></td>
<td><?php echo stripslashes($donnees['titre']); ?></td>
</tr>
<?php
} // Fin de la boucle qui liste les news
?>
</table>
<?php
$i = 0;

$poid_max_avatar = 10000000;
$largeur_max_avatar = 100000000000000000;
$longeur_max_avatar = 100000000000000000;

        //On définit les variables :
        $maxsize = $poid_max_avatar; //Poid de l'image
        $maxwidth = $largeur_max_avatar; //Largeur de l'image
        $maxheight = $longeur_max_avatar; //Longueur de l'image
        $extensions_valides = array( 'jpg' , 'jpeg' , 'gif' , 'png', 'bmp' ); //Liste des extensions valides
       
        if ($_FILES['photo1']['error'] > 0)
        {
                $i++;
				
        }
		
        if ($_FILES['photo1']['size'] > $maxsize)
        {
                $i++;
				
        }

        $image_sizes = getimagesize($_FILES['photo1']['tmp_name']);
        if ($image_sizes[0] > $maxwidth OR $image_sizes[1] > $maxheight)
        {
                $i++;
				
        }
       
        $extension_upload = strtolower(substr(  strrchr($_FILES['photo1']['name'], '.')  ,1));
        if (!in_array($extension_upload,$extensions_valides) )
        {
                $i++;
				
        }

if ($i == 0)
    {
		//On déplace l'avatar
		$avatar = time();
		$nomavatar = str_replace(' ','',$avatar).".".$extension_upload;
		$avatar = "../upload-admin/".str_replace(' ','',$avatar).".".$extension_upload;
		move_uploaded_file($_FILES['photo1']['tmp_name'],$avatar);
		$sql  = 'UPDATE news SET image="' . $nomavatar .'" WHERE ID=' . $donnees['id'] . ')';
mysql_query($sql)
    }
	;
	?>
	<?php
$j = 0;

$poid_max_avatar_2 = 10000000;
$largeur_max_avatar_2 = 100000000000000000;
$longeur_max_avatar_2 = 100000000000000000;

        //On définit les variables :
        $maxsize_2 = $poid_max_avatar_2; //Poid de l'image
        $maxwidth_2 = $largeur_max_avatar_2; //Largeur de l'image
        $maxheight_2 = $longeur_max_avatar_2; //Longueur de l'image
        $extensions_valides_2 = array( 'jpg' , 'jpeg' , 'gif' , 'png', 'bmp' ); //Liste des extensions valides
       
        if ($_FILES['photo2']['error'] > 0)
        {
                $j++;
				
        }
		
        if ($_FILES['photo2']['size'] > $maxsize_2)
        {
                $j++;
				
        }

        $image_sizes_2 = getimagesize($_FILES['photo2']['tmp_name']);
        if ($image_sizes_2[0] > $maxwidth_2 OR $image_sizes_2[1] > $maxheight_2)
        {
                $j++;
				
        }
       
        $extension_upload_2 = strtolower(substr(  strrchr($_FILES['photo2']['name'], '.')  ,1));
        if (!in_array($extension_upload_2,$extensions_valides_2) )
        {
                $j++;
				
        }

if ($j == 0)
    {
		//On déplace l'avatar
		$avatar_2 = time();
		$nomavatar_2 = str_replace(' ','',$avatar_2).".".$extension_upload_2;
		$avatar_2 = "../upload-admin/".str_replace(' ','',$avatar_2).".".$extension_upload_2;
		move_uploaded_file($_FILES['photo2']['tmp_name'],$avatar_2);
		$sql2  = 'UPDATE news SET image2="' . $nomavatar_2 .'" WHERE ID=' . $donnees['id'] . ')';
mysql_query($sql2);
    }
	
	?>
	<?php
$k = 0;

$poid_max_avatar_3 = 10000000;
$largeur_max_avatar_3 = 100000000000000000;
$longeur_max_avatar_3 = 100000000000000000;

        //On définit les variables :
        $maxsize_3 = $poid_max_avatar_3; //Poid de l'image
        $maxwidth_3 = $largeur_max_avatar_3; //Largeur de l'image
        $maxheight_3 = $longeur_max_avatar_3; //Longueur de l'image
        $extensions_valides_3 = array( 'jpg' , 'jpeg' , 'gif' , 'png', 'bmp' ); //Liste des extensions valides
       
        if ($_FILES['photo3']['error'] > 0)
        {
                $k++;
				
        }
		
        if ($_FILES['photo3']['size'] > $maxsize_3)
        {
                $k++;
				
        }

        $image_sizes_3 = getimagesize($_FILES['photo3']['tmp_name']);
        if ($image_sizes_3[0] > $maxwidth_3 OR $image_sizes_3[1] > $maxheight_3)
        {
                $k++;
				
        }
       
        $extension_upload_3 = strtolower(substr(  strrchr($_FILES['photo3']['name'], '.')  ,1));
        if (!in_array($extension_upload_3,$extensions_valides_3) )
        {
                $k++;
				
        }

if ($k == 0)
    {
		//On déplace l'avatar
		$avatar_3 = time();
		$nomavatar_3 = str_replace(' ','',$avatar_3).".".$extension_upload_3;
		$avatar_3 = "../upload-admin/".str_replace(' ','',$avatar_3).".".$extension_upload_3;
		move_uploaded_file($_FILES['photo3']['tmp_name'],$avatar_3);
		$sql3  = 'UPDATE news SET image3="' . $nomavatar_3 .'" WHERE ID=' . $donnees['id'] . ')';
mysql_query($sql3);
    }
	
	?>
	<?php
$l = 0;

$poid_max_avatar_4 = 10000000;
$largeur_max_avatar_4 = 100000000000000000;
$longeur_max_avatar_4 = 100000000000000000;

        //On définit les variables :
        $maxsize_4 = $poid_max_avatar_4; //Poid de l'image
        $maxwidth_4 = $largeur_max_avatar_4; //Largeur de l'image
        $maxheight_4 = $longeur_max_avatar_4; //Longueur de l'image
        $extensions_valides_4 = array( 'jpg' , 'jpeg' , 'gif' , 'png', 'bmp' ); //Liste des extensions valides
       
        if ($_FILES['photo4']['error'] > 0)
        {
                $l++;
				
        }
		
        if ($_FILES['photo4']['size'] > $maxsize_4)
        {
                $l++;
				
        }

        $image_sizes_4 = getimagesize($_FILES['photol']['tmp_name']);
        if ($image_sizes_4[0] > $maxwidth_4 OR $image_sizes_4[1] > $maxheight_4)
        {
                $l++;
				
        }
       
        $extension_upload_4 = strtolower(substr(  strrchr($_FILES['photo4']['name'], '.')  ,1));
        if (!in_array($extension_upload_4,$extensions_valides_4) )
        {
                $l++;
				
        }

if ($l == 0)
    {
		//On déplace l'avatar
		$avatar_4 = time();
		$nomavatar_4 = str_replace(' ','',$avatar_4).".".$extension_upload_4;
		$avatar_4 = "../upload-admin/".str_replace(' ','',$avatar_4).".".$extension_upload_4;
		move_uploaded_file($_FILES['photo4']['tmp_name'],$avatar_4);
		$sql4  = 'UPDATE news SET image4="' . $nomavatar_4 .'" WHERE ID=' . $donnees['id'] . ')';
mysql_query($sql4);
    }
	
	?>
	<?php
$m = 0;

$poid_max_avatar_5 = 10000000;
$largeur_max_avatar_5 = 100000000000000000;
$longeur_max_avatar_5 = 100000000000000000;

        //On définit les variables :
        $maxsize_5 = $poid_max_avatar_5; //Poid de l'image
        $maxwidth_5 = $largeur_max_avatar_5; //Largeur de l'image
        $maxheight_5 = $longeur_max_avatar_5; //Longueur de l'image
        $extensions_valides_5 = array( 'jpg' , 'jpeg' , 'gif' , 'png', 'bmp' ); //Liste des extensions valides
       
        if ($_FILES['photo5']['error'] > 0)
        {
                $m++;
				
        }
		
        if ($_FILES['photo5']['size'] > $maxsize_5)
        {
                $m++;
				
        }

        $image_sizes_5 = getimagesize($_FILES['photo5']['tmp_name']);
        if ($image_sizes_5[0] > $maxwidth_5 OR $image_sizes_5[1] > $maxheight_5)
        {
                $m++;
				
        }
       
        $extension_upload_5 = strtolower(substr(  strrchr($_FILES['photo5']['name'], '.')  ,1));
        if (!in_array($extension_upload_5,$extensions_valides_5) )
        {
                $m++;
				
        }

if ($m == 0)
    {
		//On déplace l'avatar
		$avatar_5 = time();
		$nomavatar_5 = str_replace(' ','',$avatar_5).".".$extension_upload_5;
		$avatar_5 = "../upload-admin/".str_replace(' ','',$avatar_5).".".$extension_upload_5;
		move_uploaded_file($_FILES['photo5']['tmp_name'],$avatar_5);
		$sql5  = 'UPDATE news SET image5="' . $nomavatar_5 .'" WHERE ID=' . $donnees['id'] . ')';
mysql_query($sql5);
    }

	mysql_close();
	?>
</body>
</html>


Je sais que cette page est très mal organisée et difficile à lire... mais je n'ai pas vraiment le temps de m'en occuper maintenant... désolé...

et ma page "annonces.php" :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
   <head>
       <title>Balcicars Annonces Angebote</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <style type="text/css">
        h1
        {
            text-align:center;
			color: rgb(168, 0, 8);
			text-decoration: underline;
        }
        h3
        {
			text-align: center;
            background-color: black;
            color: white;
            font-size: 0.9em;
            margin-bottom: 0px;
        }
        .news p
        {
            background-color:#CCCCCC;
            margin-top:0px;
        }
        .news
        {
            width:70%;
            margin:auto;
        }
		body
		{
		width: 800px;
		margin: auto;
		margin-top: 10px;
		margin-bottom: 10px;
		background-image: url("images/fond-francais-allemand.jpg");
		}
		.retour-fr
		{
		color: rgb(43, 72, 123);
		font-weight: bold;
		}
		.retour-de
		{
		color: rgb(43, 72, 123);
		font-weight: bold;
		}
		a
		{
		color: red;
		font-weight: bold;
		}

        </style>
    </head>
    
    <body>
<h1>Annonces.</h1>
<h1>Angebote.</h1>

 
<?php
mysql_connect("localhost", "*****", "*****");
mysql_select_db("balcicars_be");
// On récupère les 5 dernières news
$retour = mysql_query('SELECT * FROM news ORDER BY id DESC LIMIT 0, 1000')or die(mysql_error());
while ($donnees = mysql_fetch_array($retour))
{
?>
<div class="news">
    <h3>
        <?php echo $donnees['titre']; ?>
    </h3>
    
    <p>
    <?php
    // On enlève les éventuels antislash PUIS on crée les entrées en HTML (<br />)
    $contenu = nl2br(stripslashes($donnees['contenu']));
    echo $contenu; ?>
	<br/><br/>
	<?php
	
	echo '<a href="./upload-admin/'.$donnees['image'].'">Photo 1</a><br/>';
	
	echo '<a href="./upload-admin/'.$donnees['image2'].'">Photo 2</a><br/>';
	
	echo '<a href="./upload-admin/'.$donnees['image3'].'">Photo 3</a><br/>';
	
	echo '<a href="./upload-admin/'.$donnees['image4'].'">Photo 4</a><br/>';
	
	echo '<a href="./upload-admin/'.$donnees['image5'].'">Photo 5</a><br/>';
    
	?>
	<br/>
	
    </p>
</div>
<?php
} // Fin de la boucle des news
?>
<p class="retour-fr">Veuillez cliquer <a href="francais.html">ICI</a> pour retourner à la page d'acceuil en français.</p>
<p class="retour-de">Klicken Sie bitte <a href="allemand.html">HIER</a> um zur Deutschen Hauptseite zu gelangen.</p>
</body>
</html>


J'ai bien évidemment créé dans la base de données un champ id, un champ titre, un champ contenu et les différents champ image, image2, 3, 4, 5...

Le lien est incorrect, mais le chemin de l'image n'est même pas stocké dans la base de données...
J'ai déjà demandé dans plusieurs forums, mais je n'ai pas eu de réponse correcte... vous êtes mon dernier espoir...


Je vous remercie chaleureusement,

jerryp
A voir également:

182 réponses

jerryp Messages postés 141 Date d'inscription   Statut Membre Dernière intervention   24
 
bonsoir,

c'est supprimer_news je pense...

cordialement,
jerryp
0
PhP Messages postés 1770 Date d'inscription   Statut Membre Dernière intervention   606
 
Bjr

Z'avez vu le post de marieme88 ? alors dépêcher d'achèver ce code pour pourvoir l'aider ! LOL
0
el_linwin Messages postés 521 Date d'inscription   Statut Membre Dernière intervention   90
 
Bonjour PhP,

C'est moi ou il y a comme une "petite" redite concernant marieme88 ? MDR !
Mais si, mais si, c'est bien une redite ! =D

PS: Merci à Titi pour le style de la deuxième phrase.


Cordialement,
el_linwin
0
jerryp Messages postés 141 Date d'inscription   Statut Membre Dernière intervention   24
 
bonjour,

eh bien... pas top ça de la part des patrons...

cordialement,
jerryp
0
el_linwin Messages postés 521 Date d'inscription   Statut Membre Dernière intervention   90
 
Bonjour jerryp,

Helas, je ne connais que trop bien le procédé de la mise en concurrence... question emploi !
On commence par vous dire: Oh, quel beau profil, quel beau CV !
Puis, cela finit par: On a trouvé quelqu'un d'autre ! Au revoir ! (comprendre: Adieu !)

Si cela fonctionnait autrement, je ne serais pas en recherche d'emploi... |-(


Cordialement,
el_linwin
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
el_linwin Messages postés 521 Date d'inscription   Statut Membre Dernière intervention   90
 
Bonjour jerryp,

A part ça, je planche actuellement sur le problème de suppression de news.
Le reste fonctionne bien (Ajout, modification) ?


Cordialement,
el_linwin
0
el_linwin Messages postés 521 Date d'inscription   Statut Membre Dernière intervention   90
 
Bonjour jerryp,

Voici une mouture où la suppression d'une news devrait fonctionner:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
   <head>
       <title>Balcicars Bütgenbach</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <style type="text/css">
        body
		{
		background-image: url("../images/fond-francais-allemand.jpg");
		}
		h2, th, td, h3
        {
            text-align:center;
        }
        table
        {
            border-collapse:collapse;
            border:2px solid black;
            margin:auto;
        }
        th, td
        {
            border:1px solid black;
        }
        </style>
    </head>

    <body>

<h2><a href="rediger_news.php">Ajouter une annonce</a></h2>
<h3><a href="../annonces.php">Retour à la liste d'annonces</a></h3>

<?php
$connexion_mysql=mysql_connect("localhost", "*****", "*****");
if ($connexion_mysql) {
 echo '<p>Test [Connexion au serveur MySQL] = OK</p>';
} else {
 echo '<p>Test [Connexion au serveur MySQL] = Erreur</p>';
}
$connexion_base=mysql_select_db("balcicars_be");
if ($connexion_mysql) {
 echo '<p>Test [Connexion à la base de données] = OK</p>';
} else {
 echo '<p>Test [Connexion à la base de données] = Erreur</p>';
}

// Variable d'opération
$operation=0;
// On vérifie si c'est une modification de news ou pas
if ($_POST['id_news']==0) {
 echo '<p>Test = Création de news</p>';
 $operation=1;
} else {
 echo '<p>Test = Modification de news</p>';
 $operation=2;
}
$si_titrecontenu=0;
$si_image1=0;
$si_image2=0;
$si_image3=0;
$si_image4=0;
$si_image5=0;
// On protège la variable "id_news" pour éviter une faille SQL
$_POST['id_news']=addslashes($_POST['id_news']);

//-----------------------------------------------------
// Vérification 1 : est-ce qu'on veut poster une news ?
//-----------------------------------------------------
if (isset($_POST['titre']) && isset($_POST['contenu']))
{
    $titre = addslashes($_POST['titre']);
    $contenu = addslashes($_POST['contenu']);
    $si_titrecontenu=1;

    // On vérifie si c'est une modification de news ou pas
    if ($operation==1)
    {   echo '<p>Test [Création de news] = Ajout titre & contenu</p>';
        // Ce n'est pas une modification, on crée une nouvelle entrée dans la table
    }
    else
    {   echo '<p>Test [Modification de news] = Modification titre & contenu</p>';
        // C'est une modification, on met juste à jour le titre et le contenu
    }
} else {
 echo '<p>Test = Pas de modification de titre et de contenu</p>';
}
 
//--------------------------------------------------------
// Vérification 2 : est-ce qu'on veut supprimer une news ?
//--------------------------------------------------------
if (isset($_GET['supprimer_news'])) // Si on demande de supprimer une news
{   echo '<p>Test [Suppression de news] = Vrai</p>';
    // Alors on supprime la news correspondante
    // On protège la variable "id_news" pour éviter une faille SQL
    $_GET['supprimer_news']=addslashes($_GET['supprimer_news']);
    mysql_query("DELETE titre,contenu,image,image2,image3,image4,image5 FROM news WHERE id='".$_GET['supprimer_news']."'");
} else {
 echo '<p>Test [Suppression de news] = Faux</p>';
}
?>
<table><tr>
<th>Modifier</th>
<th>Supprimer</th>
<th>Titre</th>
</tr>
<?php
$retour = mysql_query('SELECT * FROM news ORDER BY id DESC') or die(mysql_error());
while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news
{
?>
<tr>
<td><?php echo '<a href="rediger_news.php?modifier_news=',$donnees['id'],'">'; ?>Modifier</a></td>
<td><?php echo '<a href="administration.php?supprimer_news=',$donnees['id'],'">'; ?>Supprimer</a></td>
<td><?php echo stripslashes($donnees['titre']); ?></td>
</tr>
<?php
} // Fin de la boucle qui liste les news
?>
</table>
<?php
// Définition des extensions valides (pour tout le bloc)
$extensions_valides=array('jpg','jpeg','gif','png','bmp');

// Avatar 1
$i=0;
$poid_max_avatar=10000000;
$largeur_max_avatar=100000000000000000;
$longeur_max_avatar=100000000000000000;

//On définit les variables :
$maxsize=$poid_max_avatar; //Poid de l'image
$maxwidth=$largeur_max_avatar; //Largeur de l'image
$maxheight=$longeur_max_avatar; //Longueur de l'image

if ($_FILES['photo1']['error']>0) $i++;
if ($_FILES['photo1']['size']>$maxsize) $i++;

$image_sizes=getimagesize($_FILES['photo1']['tmp_name']);
if ($image_sizes[0]>$maxwidth || $image_sizes[1]>$maxheight) $i++;

$extension_upload=strtolower(substr(strrchr($_FILES['photo1']['name'],'.'),1));
if (!in_array($extension_upload,$extensions_valides)) $i++;

if ($i==0) {
 //On déplace l'avatar
 $avatar='1'.time();
 $nomavatar=str_replace(' ','',$avatar).".".$extension_upload;
 $avatar="../upload-admin/".str_replace(' ','',$avatar).".".$extension_upload;
 move_uploaded_file($_FILES['photo1']['tmp_name'],"$avatar");
 $si_image1=1;
}

// Avatar 2
$j=0;
$poid_max_avatar_2=10000000;
$largeur_max_avatar_2=100000000000000000;
$longeur_max_avatar_2=100000000000000000;

//On définit les variables :
$maxsize_2=$poid_max_avatar_2; //Poid de l'image
$maxwidth_2=$largeur_max_avatar_2; //Largeur de l'image
$maxheight_2=$longeur_max_avatar_2; //Longueur de l'image

if ($_FILES['photo2']['error']>0) $j++;
if ($_FILES['photo2']['size']>$maxsize_2) $j++;

$image_sizes_2=getimagesize($_FILES['photo2']['tmp_name']);
if ($image_sizes_2[0]>$maxwidth_2 || $image_sizes_2[1]>$maxheight_2) $j++;

$extension_upload_2 = strtolower(substr(strrchr($_FILES['photo2']['name'],'.'),1));
if (!in_array($extension_upload_2,$extensions_valides)) $j++;

if ($j==0) {
 //On déplace l'avatar
 $avatar_2='2'.time();
 $nomavatar_2=str_replace(' ','',$avatar_2).".".$extension_upload_2;
 $avatar_2="../upload-admin/".str_replace(' ','',$avatar_2).".".$extension_upload_2;
 move_uploaded_file($_FILES['photo2']['tmp_name'],"$avatar_2");
 $si_image2=1;
}

// Avatar 3
$k=0;
$poid_max_avatar_3=10000000;
$largeur_max_avatar_3=100000000000000000;
$longeur_max_avatar_3=100000000000000000;

//On définit les variables :
$maxsize_3=$poid_max_avatar_3; //Poid de l'image
$maxwidth_3=$largeur_max_avatar_3; //Largeur de l'image
$maxheight_3=$longeur_max_avatar_3; //Longueur de l'image

if ($_FILES['photo3']['error']>0) $k++;
if ($_FILES['photo3']['size']>$maxsize_3) $k++;

$image_sizes_3 = getimagesize($_FILES['photo3']['tmp_name']);
if ($image_sizes_3[0]>$maxwidth_3 || $image_sizes_3[1]>$maxheight_3) $k++;

$extension_upload_3=strtolower(substr(strrchr($_FILES['photo3']['name'],'.'),1));
if (!in_array($extension_upload_3,$extensions_valides)) $k++;

if ($k==0) {
 //On déplace l'avatar
 $avatar_3='3'.time();
 $nomavatar_3=str_replace(' ','',$avatar_3).".".$extension_upload_3;
 $avatar_3="../upload-admin/".str_replace(' ','',$avatar_3).".".$extension_upload_3;
 move_uploaded_file($_FILES['photo3']['tmp_name'],"$avatar_3");
 $si_image3=1;
}

// Avatar 4
$l=0;
$poid_max_avatar_4=10000000;
$largeur_max_avatar_4=100000000000000000;
$longeur_max_avatar_4=100000000000000000;

//On définit les variables :
$maxsize_4=$poid_max_avatar_4; //Poid de l'image
$maxwidth_4=$largeur_max_avatar_4; //Largeur de l'image
$maxheight_4=$longeur_max_avatar_4; //Longueur de l'image

if ($_FILES['photo4']['error']>0) $l++;
if ($_FILES['photo4']['size']>$maxsize_4) $l++;

$image_sizes_4=getimagesize($_FILES['photo4']['tmp_name']);
if ($image_sizes_4[0]>$maxwidth_4 || $image_sizes_4[1]>$maxheight_4) $l++;

$extension_upload_4=strtolower(substr(strrchr($_FILES['photo4']['name'],'.'),1));
if (!in_array($extension_upload_4,$extensions_valides)) $l++;

if ($l==0) {
 //On déplace l'avatar
 $avatar_4='4'.time();
 $nomavatar_4=str_replace(' ','',$avatar_4).".".$extension_upload_4;
 $avatar_4="../upload-admin/".str_replace(' ','',$avatar_4).".".$extension_upload_4;
 move_uploaded_file($_FILES['photo4']['tmp_name'],"$avatar_4");
 $si_image4=1;
}

// Avatar 5
$m = 0;
$poid_max_avatar_5=10000000;
$largeur_max_avatar_5=100000000000000000;
$longeur_max_avatar_5=100000000000000000;

//On définit les variables :
$maxsize_5=$poid_max_avatar_5; //Poid de l'image
$maxwidth_5=$largeur_max_avatar_5; //Largeur de l'image
$maxheight_5=$longeur_max_avatar_5; //Longueur de l'image

if ($_FILES['photo5']['error']>0) $m++;
if ($_FILES['photo5']['size']>$maxsize_5) $m++;

$image_sizes_5=getimagesize($_FILES['photo5']['tmp_name']);
if ($image_sizes_5[0]>$maxwidth_5 || $image_sizes_5[1]>$maxheight_5) $m++;

$extension_upload_5=strtolower(substr(strrchr($_FILES['photo5']['name'],'.'),1));
if (!in_array($extension_upload_5,$extensions_valides)) $m++;

if ($m == 0) {
 //On déplace l'avatar
 $avatar_5='5'.time();
 $nomavatar_5=str_replace(' ','',$avatar_5).".".$extension_upload_5;
 $avatar_5="../upload-admin/".str_replace(' ','',$avatar_5).".".$extension_upload_5;
 move_uploaded_file($_FILES['photo5']['tmp_name'],"$avatar_5");
 $si_image5=1;
}

// Opérations de mise à jour de la BDD en une seule fois !
if ($operation==1) {
 // Création de news
 $sql="INSERT INTO news(";
 if ($si_titrecontenu==1) $sql.="titre,contenu";
 if ($si_image1==1) $sql.=",image";
 if ($si_image2==1) $sql.=",image2";
 if ($si_image3==1) $sql.=",image3";
 if ($si_image4==1) $sql.=",image4";
 if ($si_image5==1) $sql.=",image5";
 $sql.=") VALUES(";
 if ($si_titrecontenu==1) $sql.="'$titre','$contenu'";
 if ($si_image1==1) $sql.=",'$nomavatar'";
 if ($si_image2==1) $sql.=",'$nomavatar_2'";
 if ($si_image3==1) $sql.=",'$nomavatar_3'";
 if ($si_image4==1) $sql.=",'$nomavatar_4'";
 if ($si_image5==1) $sql.=",'$nomavatar_5'";
 $sql.=")";
 mysql_query($sql) or die(mysql_error());
}
if ($operation==2) {
 // Edition de news
 $sql="UDPATE news SET ";
 if ($si_titrecontenu==1) $sql.="titre='$titre',contenu='$contenu'";
 if ($si_image1==1) $sql.=",image='$nomavatar'";
 if ($si_image2==1) $sql.=",image2='$nomavatar_2'";
 if ($si_image3==1) $sql.=",image3='$nomavatar_3'";
 if ($si_image4==1) $sql.=",image4='$nomavatar_4'";
 if ($si_image5==1) $sql.=",image5='$nomavatar_5'";
 $sql.=" WHERE id='".$POST['id_news']."'";
 mysql_query($sql) or die(mysql_error());
}


// Fin de la session MySQL
mysql_close();
// Fin du bloc PHP
?>
</body>
</html>



Cordialement,
el_linwin
0
PhP Messages postés 1770 Date d'inscription   Statut Membre Dernière intervention   606
 
Remoi

Ici

$sql="INSERT INTO news(";
if ($si_titrecontenu==1) $sql.="titre,contenu";
if ($si_image1==1) $sql.=",image";

Au risque de dire une connerie si $si_titrecontenu est différent de 1 mais que $si_image1 vaut 1 ça risque pas de générer un truc du genre : INSERT INTO news(,image ... ?

Notez la perfide virgule après la parenthèse T'Oh !
0
el_linwin Messages postés 521 Date d'inscription   Statut Membre Dernière intervention   90
 
Bonjour PhP,

Bien vu ! Je corrige ça de suite !


Cordialement,
el_linwin
0
el_linwin Messages postés 521 Date d'inscription   Statut Membre Dernière intervention   90
 
Bonjour à jerryp et PhP,

Voici le correctif d'administration.php:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
   <head>
       <title>Balcicars Bütgenbach</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <style type="text/css">
        body
		{
		background-image: url("../images/fond-francais-allemand.jpg");
		}
		h2, th, td, h3
        {
            text-align:center;
        }
        table
        {
            border-collapse:collapse;
            border:2px solid black;
            margin:auto;
        }
        th, td
        {
            border:1px solid black;
        }
        </style>
    </head>

    <body>

<h2><a href="rediger_news.php">Ajouter une annonce</a></h2>
<h3><a href="../annonces.php">Retour à la liste d'annonces</a></h3>

<?php
$connexion_mysql=mysql_connect("localhost", "*****", "*****");
if ($connexion_mysql) {
 echo '<p>Test [Connexion au serveur MySQL] = OK</p>';
} else {
 echo '<p>Test [Connexion au serveur MySQL] = Erreur</p>';
}
$connexion_base=mysql_select_db("balcicars_be");
if ($connexion_mysql) {
 echo '<p>Test [Connexion à la base de données] = OK</p>';
} else {
 echo '<p>Test [Connexion à la base de données] = Erreur</p>';
}

// Variable d'opération
$operation=0;
// On vérifie si c'est une modification de news ou pas
if ($_POST['id_news']==0) {
 echo '<p>Test = Création de news</p>';
 $operation=1;
} else {
 echo '<p>Test = Modification de news</p>';
 $operation=2;
}
$si_titrecontenu=0;
$si_image1=0;
$si_image2=0;
$si_image3=0;
$si_image4=0;
$si_image5=0;
// On protège la variable "id_news" pour éviter une faille SQL
$_POST['id_news']=addslashes($_POST['id_news']);

//-----------------------------------------------------
// Vérification 1 : est-ce qu'on veut poster une news ?
//-----------------------------------------------------
if (isset($_POST['titre']) && isset($_POST['contenu']))
{
    $titre = addslashes($_POST['titre']);
    $contenu = addslashes($_POST['contenu']);
    $si_titrecontenu=1;

    // On vérifie si c'est une modification de news ou pas
    if ($operation==1)
    {   echo '<p>Test [Création de news] = Ajout titre & contenu</p>';
        // Ce n'est pas une modification, on crée une nouvelle entrée dans la table
    }
    else
    {   echo '<p>Test [Modification de news] = Modification titre & contenu</p>';
        // C'est une modification, on met juste à jour le titre et le contenu
    }
} else {
 echo '<p>Test = Pas de modification de titre et de contenu</p>';
}
 
//--------------------------------------------------------
// Vérification 2 : est-ce qu'on veut supprimer une news ?
//--------------------------------------------------------
if (isset($_GET['supprimer_news'])) // Si on demande de supprimer une news
{   echo '<p>Test [Suppression de news] = Vrai</p>';
    // Alors on supprime la news correspondante
    // On protège la variable "id_news" pour éviter une faille SQL
    $_GET['supprimer_news']=addslashes($_GET['supprimer_news']);
    mysql_query("DELETE titre,contenu,image,image2,image3,image4,image5 FROM news WHERE id='".$_GET['supprimer_news']."'");
} else {
 echo '<p>Test [Suppression de news] = Faux</p>';
}
?>
<table><tr>
<th>Modifier</th>
<th>Supprimer</th>
<th>Titre</th>
</tr>
<?php
$retour = mysql_query('SELECT * FROM news ORDER BY id DESC') or die(mysql_error());
while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news
{
?>
<tr>
<td><?php echo '<a href="rediger_news.php?modifier_news=',$donnees['id'],'">'; ?>Modifier</a></td>
<td><?php echo '<a href="administration.php?supprimer_news=',$donnees['id'],'">'; ?>Supprimer</a></td>
<td><?php echo stripslashes($donnees['titre']); ?></td>
</tr>
<?php
} // Fin de la boucle qui liste les news
?>
</table>
<?php
// Définition des extensions valides (pour tout le bloc)
$extensions_valides=array('jpg','jpeg','gif','png','bmp');

// Avatar 1
$i=0;
$poid_max_avatar=10000000;
$largeur_max_avatar=100000000000000000;
$longeur_max_avatar=100000000000000000;

//On définit les variables :
$maxsize=$poid_max_avatar; //Poid de l'image
$maxwidth=$largeur_max_avatar; //Largeur de l'image
$maxheight=$longeur_max_avatar; //Longueur de l'image

if ($_FILES['photo1']['error']>0) $i++;
if ($_FILES['photo1']['size']>$maxsize) $i++;

$image_sizes=getimagesize($_FILES['photo1']['tmp_name']);
if ($image_sizes[0]>$maxwidth || $image_sizes[1]>$maxheight) $i++;

$extension_upload=strtolower(substr(strrchr($_FILES['photo1']['name'],'.'),1));
if (!in_array($extension_upload,$extensions_valides)) $i++;

if ($i==0) {
 //On déplace l'avatar
 $avatar='1'.time();
 $nomavatar=str_replace(' ','',$avatar).".".$extension_upload;
 $avatar="../upload-admin/".str_replace(' ','',$avatar).".".$extension_upload;
 move_uploaded_file($_FILES['photo1']['tmp_name'],"$avatar");
 $si_image1=1;
}

// Avatar 2
$j=0;
$poid_max_avatar_2=10000000;
$largeur_max_avatar_2=100000000000000000;
$longeur_max_avatar_2=100000000000000000;

//On définit les variables :
$maxsize_2=$poid_max_avatar_2; //Poid de l'image
$maxwidth_2=$largeur_max_avatar_2; //Largeur de l'image
$maxheight_2=$longeur_max_avatar_2; //Longueur de l'image

if ($_FILES['photo2']['error']>0) $j++;
if ($_FILES['photo2']['size']>$maxsize_2) $j++;

$image_sizes_2=getimagesize($_FILES['photo2']['tmp_name']);
if ($image_sizes_2[0]>$maxwidth_2 || $image_sizes_2[1]>$maxheight_2) $j++;

$extension_upload_2 = strtolower(substr(strrchr($_FILES['photo2']['name'],'.'),1));
if (!in_array($extension_upload_2,$extensions_valides)) $j++;

if ($j==0) {
 //On déplace l'avatar
 $avatar_2='2'.time();
 $nomavatar_2=str_replace(' ','',$avatar_2).".".$extension_upload_2;
 $avatar_2="../upload-admin/".str_replace(' ','',$avatar_2).".".$extension_upload_2;
 move_uploaded_file($_FILES['photo2']['tmp_name'],"$avatar_2");
 $si_image2=1;
}

// Avatar 3
$k=0;
$poid_max_avatar_3=10000000;
$largeur_max_avatar_3=100000000000000000;
$longeur_max_avatar_3=100000000000000000;

//On définit les variables :
$maxsize_3=$poid_max_avatar_3; //Poid de l'image
$maxwidth_3=$largeur_max_avatar_3; //Largeur de l'image
$maxheight_3=$longeur_max_avatar_3; //Longueur de l'image

if ($_FILES['photo3']['error']>0) $k++;
if ($_FILES['photo3']['size']>$maxsize_3) $k++;

$image_sizes_3 = getimagesize($_FILES['photo3']['tmp_name']);
if ($image_sizes_3[0]>$maxwidth_3 || $image_sizes_3[1]>$maxheight_3) $k++;

$extension_upload_3=strtolower(substr(strrchr($_FILES['photo3']['name'],'.'),1));
if (!in_array($extension_upload_3,$extensions_valides)) $k++;

if ($k==0) {
 //On déplace l'avatar
 $avatar_3='3'.time();
 $nomavatar_3=str_replace(' ','',$avatar_3).".".$extension_upload_3;
 $avatar_3="../upload-admin/".str_replace(' ','',$avatar_3).".".$extension_upload_3;
 move_uploaded_file($_FILES['photo3']['tmp_name'],"$avatar_3");
 $si_image3=1;
}

// Avatar 4
$l=0;
$poid_max_avatar_4=10000000;
$largeur_max_avatar_4=100000000000000000;
$longeur_max_avatar_4=100000000000000000;

//On définit les variables :
$maxsize_4=$poid_max_avatar_4; //Poid de l'image
$maxwidth_4=$largeur_max_avatar_4; //Largeur de l'image
$maxheight_4=$longeur_max_avatar_4; //Longueur de l'image

if ($_FILES['photo4']['error']>0) $l++;
if ($_FILES['photo4']['size']>$maxsize_4) $l++;

$image_sizes_4=getimagesize($_FILES['photo4']['tmp_name']);
if ($image_sizes_4[0]>$maxwidth_4 || $image_sizes_4[1]>$maxheight_4) $l++;

$extension_upload_4=strtolower(substr(strrchr($_FILES['photo4']['name'],'.'),1));
if (!in_array($extension_upload_4,$extensions_valides)) $l++;

if ($l==0) {
 //On déplace l'avatar
 $avatar_4='4'.time();
 $nomavatar_4=str_replace(' ','',$avatar_4).".".$extension_upload_4;
 $avatar_4="../upload-admin/".str_replace(' ','',$avatar_4).".".$extension_upload_4;
 move_uploaded_file($_FILES['photo4']['tmp_name'],"$avatar_4");
 $si_image4=1;
}

// Avatar 5
$m = 0;
$poid_max_avatar_5=10000000;
$largeur_max_avatar_5=100000000000000000;
$longeur_max_avatar_5=100000000000000000;

//On définit les variables :
$maxsize_5=$poid_max_avatar_5; //Poid de l'image
$maxwidth_5=$largeur_max_avatar_5; //Largeur de l'image
$maxheight_5=$longeur_max_avatar_5; //Longueur de l'image

if ($_FILES['photo5']['error']>0) $m++;
if ($_FILES['photo5']['size']>$maxsize_5) $m++;

$image_sizes_5=getimagesize($_FILES['photo5']['tmp_name']);
if ($image_sizes_5[0]>$maxwidth_5 || $image_sizes_5[1]>$maxheight_5) $m++;

$extension_upload_5=strtolower(substr(strrchr($_FILES['photo5']['name'],'.'),1));
if (!in_array($extension_upload_5,$extensions_valides)) $m++;

if ($m == 0) {
 //On déplace l'avatar
 $avatar_5='5'.time();
 $nomavatar_5=str_replace(' ','',$avatar_5).".".$extension_upload_5;
 $avatar_5="../upload-admin/".str_replace(' ','',$avatar_5).".".$extension_upload_5;
 move_uploaded_file($_FILES['photo5']['tmp_name'],"$avatar_5");
 $si_image5=1;
}

// Opérations de mise à jour de la BDD en une seule fois !
if ($operation==1) {
 // Création de news
 $sql="";
 if ($si_titrecontenu==1) $sql.="titre,contenu";
 if ($si_image1==1) {if ($sql!="") $sql.=",";$sql.="image";}
 if ($si_image2==1) {if ($sql!="") $sql.=",";$sql.="image2";}
 if ($si_image3==1) {if ($sql!="") $sql.=",";$sql.="image3";}
 if ($si_image4==1) {if ($sql!="") $sql.=",";$sql.="image4";}
 if ($si_image5==1) {if ($sql!="") $sql.=",";$sql.="image5";}
 $sql2="";
 if ($si_titrecontenu==1) $sql2.="'$titre','$contenu'";
 if ($si_image1==1) {if ($sql2!="") $sql2.=",";$sql2.="'$nomavatar'";}
 if ($si_image2==1) {if ($sql2!="") $sql2.=",";$sql2.="'$nomavatar_2'";}
 if ($si_image3==1) {if ($sql2!="") $sql2.=",";$sql2.="'$nomavatar_3'";}
 if ($si_image4==1) {if ($sql2!="") $sql2.=",";$sql2.="'$nomavatar_4'";}
 if ($si_image5==1) {if ($sql2!="") $sql2.=",";$sql2.="'$nomavatar_5'";}
 mysql_query("INSERT INTO news($sql) VALUES($sql2)") or die(mysql_error());
}
if ($operation==2) {
 // Edition de news
 $sql="";
 if ($si_titrecontenu==1) $sql.="titre='$titre',contenu='$contenu'";}
 if ($si_image1==1) {if ($sql!="") $sql.=",";$sql.="image='$nomavatar'";}
 if ($si_image2==1) {if ($sql!="") $sql.=",";$sql.="image2='$nomavatar_2'";}
 if ($si_image3==1) {if ($sql!="") $sql.=",";$sql.="image3='$nomavatar_3'";}
 if ($si_image4==1) {if ($sql!="") $sql.=",";$sql.="image4='$nomavatar_4'";}
 if ($si_image5==1) {if ($sql!="") $sql.=",";$sql.="image5='$nomavatar_5'";}
 $sql.=" WHERE id='".$POST['id_news']."'";
 mysql_query("UDPATE news SET $sql") or die(mysql_error());
}


// Fin de la session MySQL
mysql_close();
// Fin du bloc PHP
?>
</body>
</html>



Cordialement,
el_linwin
0
jerryp Messages postés 141 Date d'inscription   Statut Membre Dernière intervention   24
 
bonjour,

j'ai réessayé le code... la modification fonctionne tant que je ne modifie que le contenu... Et encore, pas correctement, car j'ai lors d'une modification, une nouvelle news, vide, qui se crée... Pareil lors de la création d'une news... j'ai une première news qui s'affiche avec tout le contenu, les images, et tout et tout, mais j'ai aussi une deuxième news, vide qui s'affiché également... Et lors de la modification, si j'ajoute des images, elles ne s'ajoutent pas dans ma news...

cordialement,
jerryp

EDIT : réactualisation un peu tardive, je n'ai essayé que la version non-corrigée du code...
0
jerryp Messages postés 141 Date d'inscription   Statut Membre Dernière intervention   24
 
bonjour,

avec la version corrigée, j'ai une parse error ligne 299 :
Parse error: syntax error, unexpected '}' in /customers/balcicars.be/balcicars.be/httpd.www/admin/administration.php on line 299


cordialement,
jerryp
0
el_linwin Messages postés 521 Date d'inscription   Statut Membre Dernière intervention   90
 
Bonjour jerryp,

Le parse error est dû à une coquille de ma part ligne 291: j'avais oublié l'accolade ouvrante juste après ($si_titrecontenu==1)


Cordialement,
el_linwin
0
el_linwin Messages postés 521 Date d'inscription   Statut Membre Dernière intervention   90
 
Bonjour jerryp,

Cela peut être du à un problème de concept.
Dans le script administration.php, ajouter une image à une news existant est qualifié de "création", non de "modification".

Car, dans le cadre d'une modification, l'appel MySQL est UPDATE, qui attend d'avoir déjà un contenu déjà présent dans la BDD pour agir. Alors, que dans le cadre d'une création, l'appel MySQL est INSERT, qui ajoute effectivement un contenu lorsqu'il n'y en a pas.

Peut-être faudrait-il faire la distinction dans les scripts entre:
- création d'une nouvelle news
- ajout dans une news existante
- modification d'un ou de plusieurs élément(s) déjà présent(s)

Alors que le système est actuellement basé sur:
- création d'une nouvelle news avec titre, contenu, avatars
- modification d'une news existante préalablement complétée (titre, contenu, avatars)


Cordialement,
el_linwin
0
jerryp Messages postés 141 Date d'inscription   Statut Membre Dernière intervention   24
 
bonjour,

je vois... mais ça implique énormément de modifications... Je suppose qu'il faut alors créer un nouveau script pour chaque action que l'on veut faire (ajout de news, suppression de news, ajout d'image)...

Et comme le disait PhP, on saurait le faire en POO ? mais là, je n'y connais absolument rien...

cordialement,
jerryp
0
el_linwin Messages postés 521 Date d'inscription   Statut Membre Dernière intervention   90
 
Bonjour jerryp,

La modification ne serait pas très lourde dans l'absolu. Bien sûr, il va falloir coder.
Est-ce faisable en PHP Objet ? Sûrement, mais ce n'est pas ma tasse de thé, je suis limite "intégriste procédural". =D

Si vous souhaitez porter le tout en PHP Objet, PhP sera certainement plus qualifié que moi.

Ceci dit, cela vient vraisemblablement du script d'envoi des requêtes d'ajout ou de modification, qui considère comme modification ce qui reste avant tout un ajout (même si la news est déjà créée)...


Cordialement,
el_linwin
0
jerryp Messages postés 141 Date d'inscription   Statut Membre Dernière intervention   24
 
bonjour,

ah, ben si les modifications ne sont pas si lourdes que ça, autant rester en PHP "traditionnel" (comme le PhP :-D)...

je dois m'absenter durant quelques heures, mais je serais de retour ce soir pour continuer... donc ne vous étonnez pas si c'est "silence radio" :-D pendant quelques temps...

cordialement,
jerryp
0
PhP Messages postés 1770 Date d'inscription   Statut Membre Dernière intervention   606
 
Le gros problème avec le couple PHP/MySQL c'est qu'on est souvent tenter de tout "fourrer" dans la même page : modification , création, suppression, visualisation etc avec une ou plusieurs variables indiquant quelle traitement effectuée et une série de if pour faire le tri.

Pourquoi ne pas séparer la logique du programme en plusieurs includes : un pour la création, un pour la modification etc

Ca reste "procédural" (el_linwin sera content ;-) ça ajoute à la clarté du code et ça ne remet pas en cause ce qui a déjà été écrit : on déporte juste le code ailleurs


Voici comment on peut découper ce qui se passe lorsqu'on appelle la page

1) Détermination du traitement à faire : Creation/Modification/Suppression/Visualisation etc

2) Actions à effectuer avant le traitement (facultatif)

3) Lancement du traitement : Creation/Modification/Suppression/Visualisation

4) Actions à effectuer après le traitement (facultatif) : souvent génération du code HTML à afficher en réponse au traitement

Je ne dis pas que c'est la panacée mais ça peut s'appliquer dans pas mal de cas
0
el_linwin Messages postés 521 Date d'inscription   Statut Membre Dernière intervention   90
 
Bonjour PhP,

Merci de comprendre mon goût pour le procédural ! =D

Séparer le code en plusieurs fichiers est faisable. Je suis d'accord.
Reste à voir, avant tout, comment corriger de façon adéquate le script PHP qui génère les requêtes d'ajout/modification/suppression.

Car je crois que le problème restant part de là...


Cordialement,
el_linwin
0
PhP Messages postés 1770 Date d'inscription   Statut Membre Dernière intervention   606 > el_linwin Messages postés 521 Date d'inscription   Statut Membre Dernière intervention  
 
Personnellement ayant aussi subit les affres du SQL j'ai fini par écrire un classe SQL qui règle tous les problèmes de UPDATE et INSERT avec MySQL (protection des données contre les attaques par injection SQL bien sûr, génération automatique des requêtes SQL, gestion des erreurs, de la connexion à la base tant qu'on y est) mais il est aussi possible de le faire avec ... des fonctions !

Donc faut commencer par ecrire une librairie

test.php :

<?php
include("mysql.lib.php");
$champs = array();

$id=12345;
$date="01/01/2008";
$champs["id"]=$id;
$champs["date"]=$date;
$champs["nom"]="php";
$champs["valeur"]=99.99;

echo sql_insert("table1", $champs);
echo "<br />";
$whereClause="id='12345'";
echo sql_update("table1", $champs,"'",$whereClause);
?>



mysql.lib.php :

<?php
// Ajoute les slashes si nécessaire à toutes les valeurs du tableau fields et retourne un nouveau tableau
function array_addslashes($fields)
{
	foreach($fields AS $key => $value) 
	{
        	$ret[$key] = addslashes($value);
	}
	return $ret;
}


// Génère une requête SQL insert
function sql_insert($table, $fields, $delimiter="'")
{
	// INSERT INTO [$table]
	// ([$key], ... ,[$key]) 
        // VALUES ([$delimiter][$value][$delimiter],... ,[$delimiter][$value][$delimiter])


	$glue = $delimiter.", ".$delimiter;
	$fields = array_addslashes($fields);

	$sql = "INSERT INTO ".$table;	
	$sql .= " (".implode(", ", array_keys($fields)).")";	
	$sql .= " VALUES (".$delimiter.implode($glue,array_values($fields))."')";	

	return $sql;
}


// Génère une requête SQL update
function sql_update($table, $fields, $delimiter="'", $where="")
{
	$fields = array_addslashes($fields);


	// UPDATE [$table] SET [$key]=[$delimiter][$value][$delimiter], [$key]=[$delimiter][$value][$delimiter] etc

	$sql = "UPDATE ".$table." SET ";	

	foreach($fields AS $key => $value) 
	{
        	$ret[] = $key."=".$delimiter.addslashes($value).$delimiter;
	}

	$sql .= implode(",", $ret);
	
	if ($where) 
	{
		$sql .= " WHERE ".$where;
	}
	return $sql;
}
?>



C'est loin d'être complet mais je suis parti de là pour écrire ma classe.
0
el_linwin Messages postés 521 Date d'inscription   Statut Membre Dernière intervention   90
 
Bonjour à tous,

Voici la nouvelle mouture. Si mes estimations sont exactes, peu importe les mises à jour demandées, cela passera. Car j'ai constaté que la requête UPDATE était orthographiée avec WHERE id='indice'. Or, si id est un nombre, ce que je soupçonne, on devrait avoir une requête avec WHERE id=indice. C'est la modification que j'ai effectuée.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
   <head>
       <title>Balcicars Bütgenbach</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <style type="text/css">
        body
		{
		background-image: url("../images/fond-francais-allemand.jpg");
		}
		h2, th, td, h3
        {
            text-align:center;
        }
        table
        {
            border-collapse:collapse;
            border:2px solid black;
            margin:auto;
        }
        th, td
        {
            border:1px solid black;
        }
        </style>
    </head>

    <body>

<h2><a href="rediger_news.php">Ajouter une annonce</a></h2>
<h3><a href="../annonces.php">Retour à la liste d'annonces</a></h3>

<?php
$connexion_mysql=mysql_connect("localhost", "*****", "*****");
if ($connexion_mysql) {
 echo '<p>Test [Connexion au serveur MySQL] = OK</p>';
} else {
 echo '<p>Test [Connexion au serveur MySQL] = Erreur</p>';
}
$connexion_base=mysql_select_db("balcicars_be");
if ($connexion_mysql) {
 echo '<p>Test [Connexion à la base de données] = OK</p>';
} else {
 echo '<p>Test [Connexion à la base de données] = Erreur</p>';
}

// Variable d'opération
$operation=0;
// On vérifie si c'est une modification de news ou pas
if ($_POST['id_news']==0) {
 echo '<p>Test = Création de news</p>';
 $operation=1;
} else {
 echo '<p>Test = Modification de news</p>';
 $operation=2;
}
$si_titrecontenu=0;
$si_image1=0;
$si_image2=0;
$si_image3=0;
$si_image4=0;
$si_image5=0;
// On protège la variable "id_news" pour éviter une faille SQL
$_POST['id_news']=addslashes($_POST['id_news']);

//-----------------------------------------------------
// Vérification 1 : est-ce qu'on veut poster une news ?
//-----------------------------------------------------
if (isset($_POST['titre']) && isset($_POST['contenu']))
{
    $titre = addslashes($_POST['titre']);
    $contenu = addslashes($_POST['contenu']);
    $si_titrecontenu=1;

    // On vérifie si c'est une modification de news ou pas
    if ($operation==1)
    {   echo '<p>Test [Création de news] = Ajout titre & contenu</p>';
        // Ce n'est pas une modification, on crée une nouvelle entrée dans la table
    }
    else
    {   echo '<p>Test [Modification de news] = Modification titre & contenu</p>';
        // C'est une modification, on met juste à jour le titre et le contenu
    }
} else {
 echo '<p>Test = Pas de modification de titre et de contenu</p>';
}
 
//--------------------------------------------------------
// Vérification 2 : est-ce qu'on veut supprimer une news ?
//--------------------------------------------------------
if (isset($_GET['supprimer_news'])) // Si on demande de supprimer une news
{   echo '<p>Test [Suppression de news] = Vrai</p>';
    // Alors on supprime la news correspondante
    // On protège la variable "id_news" pour éviter une faille SQL
    $_GET['supprimer_news']=addslashes($_GET['supprimer_news']);
    mysql_query("DELETE titre,contenu,image,image2,image3,image4,image5 FROM news WHERE id=".$_GET['supprimer_news']);
} else {
 echo '<p>Test [Suppression de news] = Faux</p>';
}
?>
<table><tr>
<th>Modifier</th>
<th>Supprimer</th>
<th>Titre</th>
</tr>
<?php
$retour = mysql_query('SELECT * FROM news ORDER BY id DESC') or die(mysql_error());
while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news
{
?>
<tr>
<td><?php echo '<a href="rediger_news.php?modifier_news=',$donnees['id'],'">'; ?>Modifier</a></td>
<td><?php echo '<a href="administration.php?supprimer_news=',$donnees['id'],'">'; ?>Supprimer</a></td>
<td><?php echo stripslashes($donnees['titre']); ?></td>
</tr>
<?php
} // Fin de la boucle qui liste les news
?>
</table>
<?php
// Définition des extensions valides (pour tout le bloc)
$extensions_valides=array('jpg','jpeg','gif','png','bmp');

// Avatar 1
$i=0;
$poid_max_avatar=10000000;
$largeur_max_avatar=100000000000000000;
$longeur_max_avatar=100000000000000000;

//On définit les variables :
$maxsize=$poid_max_avatar; //Poid de l'image
$maxwidth=$largeur_max_avatar; //Largeur de l'image
$maxheight=$longeur_max_avatar; //Longueur de l'image

if ($_FILES['photo1']['error']>0) $i++;
if ($_FILES['photo1']['size']>$maxsize) $i++;

$image_sizes=getimagesize($_FILES['photo1']['tmp_name']);
if ($image_sizes[0]>$maxwidth || $image_sizes[1]>$maxheight) $i++;

$extension_upload=strtolower(substr(strrchr($_FILES['photo1']['name'],'.'),1));
if (!in_array($extension_upload,$extensions_valides)) $i++;

if ($i==0) {
 //On déplace l'avatar
 $avatar='1'.time();
 $nomavatar=str_replace(' ','',$avatar).".".$extension_upload;
 $avatar="../upload-admin/".str_replace(' ','',$avatar).".".$extension_upload;
 move_uploaded_file($_FILES['photo1']['tmp_name'],"$avatar");
 $si_image1=1;
}

// Avatar 2
$j=0;
$poid_max_avatar_2=10000000;
$largeur_max_avatar_2=100000000000000000;
$longeur_max_avatar_2=100000000000000000;

//On définit les variables :
$maxsize_2=$poid_max_avatar_2; //Poid de l'image
$maxwidth_2=$largeur_max_avatar_2; //Largeur de l'image
$maxheight_2=$longeur_max_avatar_2; //Longueur de l'image

if ($_FILES['photo2']['error']>0) $j++;
if ($_FILES['photo2']['size']>$maxsize_2) $j++;

$image_sizes_2=getimagesize($_FILES['photo2']['tmp_name']);
if ($image_sizes_2[0]>$maxwidth_2 || $image_sizes_2[1]>$maxheight_2) $j++;

$extension_upload_2 = strtolower(substr(strrchr($_FILES['photo2']['name'],'.'),1));
if (!in_array($extension_upload_2,$extensions_valides)) $j++;

if ($j==0) {
 //On déplace l'avatar
 $avatar_2='2'.time();
 $nomavatar_2=str_replace(' ','',$avatar_2).".".$extension_upload_2;
 $avatar_2="../upload-admin/".str_replace(' ','',$avatar_2).".".$extension_upload_2;
 move_uploaded_file($_FILES['photo2']['tmp_name'],"$avatar_2");
 $si_image2=1;
}

// Avatar 3
$k=0;
$poid_max_avatar_3=10000000;
$largeur_max_avatar_3=100000000000000000;
$longeur_max_avatar_3=100000000000000000;

//On définit les variables :
$maxsize_3=$poid_max_avatar_3; //Poid de l'image
$maxwidth_3=$largeur_max_avatar_3; //Largeur de l'image
$maxheight_3=$longeur_max_avatar_3; //Longueur de l'image

if ($_FILES['photo3']['error']>0) $k++;
if ($_FILES['photo3']['size']>$maxsize_3) $k++;

$image_sizes_3 = getimagesize($_FILES['photo3']['tmp_name']);
if ($image_sizes_3[0]>$maxwidth_3 || $image_sizes_3[1]>$maxheight_3) $k++;

$extension_upload_3=strtolower(substr(strrchr($_FILES['photo3']['name'],'.'),1));
if (!in_array($extension_upload_3,$extensions_valides)) $k++;

if ($k==0) {
 //On déplace l'avatar
 $avatar_3='3'.time();
 $nomavatar_3=str_replace(' ','',$avatar_3).".".$extension_upload_3;
 $avatar_3="../upload-admin/".str_replace(' ','',$avatar_3).".".$extension_upload_3;
 move_uploaded_file($_FILES['photo3']['tmp_name'],"$avatar_3");
 $si_image3=1;
}

// Avatar 4
$l=0;
$poid_max_avatar_4=10000000;
$largeur_max_avatar_4=100000000000000000;
$longeur_max_avatar_4=100000000000000000;

//On définit les variables :
$maxsize_4=$poid_max_avatar_4; //Poid de l'image
$maxwidth_4=$largeur_max_avatar_4; //Largeur de l'image
$maxheight_4=$longeur_max_avatar_4; //Longueur de l'image

if ($_FILES['photo4']['error']>0) $l++;
if ($_FILES['photo4']['size']>$maxsize_4) $l++;

$image_sizes_4=getimagesize($_FILES['photo4']['tmp_name']);
if ($image_sizes_4[0]>$maxwidth_4 || $image_sizes_4[1]>$maxheight_4) $l++;

$extension_upload_4=strtolower(substr(strrchr($_FILES['photo4']['name'],'.'),1));
if (!in_array($extension_upload_4,$extensions_valides)) $l++;

if ($l==0) {
 //On déplace l'avatar
 $avatar_4='4'.time();
 $nomavatar_4=str_replace(' ','',$avatar_4).".".$extension_upload_4;
 $avatar_4="../upload-admin/".str_replace(' ','',$avatar_4).".".$extension_upload_4;
 move_uploaded_file($_FILES['photo4']['tmp_name'],"$avatar_4");
 $si_image4=1;
}

// Avatar 5
$m = 0;
$poid_max_avatar_5=10000000;
$largeur_max_avatar_5=100000000000000000;
$longeur_max_avatar_5=100000000000000000;

//On définit les variables :
$maxsize_5=$poid_max_avatar_5; //Poid de l'image
$maxwidth_5=$largeur_max_avatar_5; //Largeur de l'image
$maxheight_5=$longeur_max_avatar_5; //Longueur de l'image

if ($_FILES['photo5']['error']>0) $m++;
if ($_FILES['photo5']['size']>$maxsize_5) $m++;

$image_sizes_5=getimagesize($_FILES['photo5']['tmp_name']);
if ($image_sizes_5[0]>$maxwidth_5 || $image_sizes_5[1]>$maxheight_5) $m++;

$extension_upload_5=strtolower(substr(strrchr($_FILES['photo5']['name'],'.'),1));
if (!in_array($extension_upload_5,$extensions_valides)) $m++;

if ($m == 0) {
 //On déplace l'avatar
 $avatar_5='5'.time();
 $nomavatar_5=str_replace(' ','',$avatar_5).".".$extension_upload_5;
 $avatar_5="../upload-admin/".str_replace(' ','',$avatar_5).".".$extension_upload_5;
 move_uploaded_file($_FILES['photo5']['tmp_name'],"$avatar_5");
 $si_image5=1;
}

// Opérations de mise à jour de la BDD en une seule fois !
if ($operation==1) {
 // Création de news
 $sql="";
 if ($si_titrecontenu==1) $sql.="titre,contenu";
 if ($si_image1==1) {if ($sql!="") $sql.=",";$sql.="image";}
 if ($si_image2==1) {if ($sql!="") $sql.=",";$sql.="image2";}
 if ($si_image3==1) {if ($sql!="") $sql.=",";$sql.="image3";}
 if ($si_image4==1) {if ($sql!="") $sql.=",";$sql.="image4";}
 if ($si_image5==1) {if ($sql!="") $sql.=",";$sql.="image5";}
 $sql2="";
 if ($si_titrecontenu==1) $sql2.="'$titre','$contenu'";
 if ($si_image1==1) {if ($sql2!="") $sql2.=",";$sql2.="'$nomavatar'";}
 if ($si_image2==1) {if ($sql2!="") $sql2.=",";$sql2.="'$nomavatar_2'";}
 if ($si_image3==1) {if ($sql2!="") $sql2.=",";$sql2.="'$nomavatar_3'";}
 if ($si_image4==1) {if ($sql2!="") $sql2.=",";$sql2.="'$nomavatar_4'";}
 if ($si_image5==1) {if ($sql2!="") $sql2.=",";$sql2.="'$nomavatar_5'";}
 mysql_query("INSERT INTO news($sql) VALUES($sql2)") or die(mysql_error());
}
if ($operation==2) {
 // Edition de news
 $sql="";
 if ($si_titrecontenu==1) {$sql.="titre='$titre',contenu='$contenu'";}
 if ($si_image1==1) {if ($sql!="") $sql.=",";$sql.="image='$nomavatar'";}
 if ($si_image2==1) {if ($sql!="") $sql.=",";$sql.="image2='$nomavatar_2'";}
 if ($si_image3==1) {if ($sql!="") $sql.=",";$sql.="image3='$nomavatar_3'";}
 if ($si_image4==1) {if ($sql!="") $sql.=",";$sql.="image4='$nomavatar_4'";}
 if ($si_image5==1) {if ($sql!="") $sql.=",";$sql.="image5='$nomavatar_5'";}
 $sql.=" WHERE id=".$POST['id_news'];
 mysql_query("UDPATE news SET $sql") or die(mysql_error());
}


// Fin de la session MySQL
mysql_close();
// Fin du bloc PHP
?>
</body>
</html>



Cordialement,
el_linwin
0
PhP Messages postés 1770 Date d'inscription   Statut Membre Dernière intervention   606
 
Remplace

    mysql_query("DELETE titre,contenu,image,image2,image3,image4,image5 FROM news WHERE id=".$_GET['supprimer_news']);



par

    mysql_query("DELETE FROM news WHERE id=".$_GET['supprimer_news']);



en SQL le DELETE n'attend aucun nom du champ : comme cette instruction supprime
des enregistements complets (et pas des champs isolés) spécifier le nom des champs n'a pas de sens
je crois même que ça plante ...
0
el_linwin Messages postés 521 Date d'inscription   Statut Membre Dernière intervention   90 > PhP Messages postés 1770 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour PhP,

J'avais écrit ça ainsi car je n'avais pas vu le problème de type avec "WHERE id=".
A présent, ça n'a effectivement plus lieu d'être.

Voici donc la version avec le DELETE FROM réécrit:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
   <head>
       <title>Balcicars Bütgenbach</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <style type="text/css">
        body
		{
		background-image: url("../images/fond-francais-allemand.jpg");
		}
		h2, th, td, h3
        {
            text-align:center;
        }
        table
        {
            border-collapse:collapse;
            border:2px solid black;
            margin:auto;
        }
        th, td
        {
            border:1px solid black;
        }
        </style>
    </head>

    <body>

<h2><a href="rediger_news.php">Ajouter une annonce</a></h2>
<h3><a href="../annonces.php">Retour à la liste d'annonces</a></h3>

<?php
$connexion_mysql=mysql_connect("localhost", "*****", "*****");
if ($connexion_mysql) {
 echo '<p>Test [Connexion au serveur MySQL] = OK</p>';
} else {
 echo '<p>Test [Connexion au serveur MySQL] = Erreur</p>';
}
$connexion_base=mysql_select_db("balcicars_be");
if ($connexion_mysql) {
 echo '<p>Test [Connexion à la base de données] = OK</p>';
} else {
 echo '<p>Test [Connexion à la base de données] = Erreur</p>';
}

// Variable d'opération
$operation=0;
// On vérifie si c'est une modification de news ou pas
if ($_POST['id_news']==0) {
 echo '<p>Test = Création de news</p>';
 $operation=1;
} else {
 echo '<p>Test = Modification de news</p>';
 $operation=2;
}
$si_titrecontenu=0;
$si_image1=0;
$si_image2=0;
$si_image3=0;
$si_image4=0;
$si_image5=0;
// On protège la variable "id_news" pour éviter une faille SQL
$_POST['id_news']=addslashes($_POST['id_news']);

//-----------------------------------------------------
// Vérification 1 : est-ce qu'on veut poster une news ?
//-----------------------------------------------------
if (isset($_POST['titre']) && isset($_POST['contenu']))
{
    $titre = addslashes($_POST['titre']);
    $contenu = addslashes($_POST['contenu']);
    $si_titrecontenu=1;

    // On vérifie si c'est une modification de news ou pas
    if ($operation==1)
    {   echo '<p>Test [Création de news] = Ajout titre & contenu</p>';
        // Ce n'est pas une modification, on crée une nouvelle entrée dans la table
    }
    else
    {   echo '<p>Test [Modification de news] = Modification titre & contenu</p>';
        // C'est une modification, on met juste à jour le titre et le contenu
    }
} else {
 echo '<p>Test = Pas de modification de titre et de contenu</p>';
}
 
//--------------------------------------------------------
// Vérification 2 : est-ce qu'on veut supprimer une news ?
//--------------------------------------------------------
if (isset($_GET['supprimer_news'])) // Si on demande de supprimer une news
{   echo '<p>Test [Suppression de news] = Vrai</p>';
    // Alors on supprime la news correspondante
    // On protège la variable "id_news" pour éviter une faille SQL
    $_GET['supprimer_news']=addslashes($_GET['supprimer_news']);
    mysql_query("DELETE FROM news WHERE id=".$_GET['supprimer_news']);
} else {
 echo '<p>Test [Suppression de news] = Faux</p>';
}
?>
<table><tr>
<th>Modifier</th>
<th>Supprimer</th>
<th>Titre</th>
</tr>
<?php
$retour = mysql_query('SELECT * FROM news ORDER BY id DESC') or die(mysql_error());
while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news
{
?>
<tr>
<td><?php echo '<a href="rediger_news.php?modifier_news=',$donnees['id'],'">'; ?>Modifier</a></td>
<td><?php echo '<a href="administration.php?supprimer_news=',$donnees['id'],'">'; ?>Supprimer</a></td>
<td><?php echo stripslashes($donnees['titre']); ?></td>
</tr>
<?php
} // Fin de la boucle qui liste les news
?>
</table>
<?php
// Définition des extensions valides (pour tout le bloc)
$extensions_valides=array('jpg','jpeg','gif','png','bmp');

// Avatar 1
$i=0;
$poid_max_avatar=10000000;
$largeur_max_avatar=100000000000000000;
$longeur_max_avatar=100000000000000000;

//On définit les variables :
$maxsize=$poid_max_avatar; //Poid de l'image
$maxwidth=$largeur_max_avatar; //Largeur de l'image
$maxheight=$longeur_max_avatar; //Longueur de l'image

if ($_FILES['photo1']['error']>0) $i++;
if ($_FILES['photo1']['size']>$maxsize) $i++;

$image_sizes=getimagesize($_FILES['photo1']['tmp_name']);
if ($image_sizes[0]>$maxwidth || $image_sizes[1]>$maxheight) $i++;

$extension_upload=strtolower(substr(strrchr($_FILES['photo1']['name'],'.'),1));
if (!in_array($extension_upload,$extensions_valides)) $i++;

if ($i==0) {
 //On déplace l'avatar
 $avatar='1'.time();
 $nomavatar=str_replace(' ','',$avatar).".".$extension_upload;
 $avatar="../upload-admin/".str_replace(' ','',$avatar).".".$extension_upload;
 move_uploaded_file($_FILES['photo1']['tmp_name'],"$avatar");
 $si_image1=1;
}

// Avatar 2
$j=0;
$poid_max_avatar_2=10000000;
$largeur_max_avatar_2=100000000000000000;
$longeur_max_avatar_2=100000000000000000;

//On définit les variables :
$maxsize_2=$poid_max_avatar_2; //Poid de l'image
$maxwidth_2=$largeur_max_avatar_2; //Largeur de l'image
$maxheight_2=$longeur_max_avatar_2; //Longueur de l'image

if ($_FILES['photo2']['error']>0) $j++;
if ($_FILES['photo2']['size']>$maxsize_2) $j++;

$image_sizes_2=getimagesize($_FILES['photo2']['tmp_name']);
if ($image_sizes_2[0]>$maxwidth_2 || $image_sizes_2[1]>$maxheight_2) $j++;

$extension_upload_2 = strtolower(substr(strrchr($_FILES['photo2']['name'],'.'),1));
if (!in_array($extension_upload_2,$extensions_valides)) $j++;

if ($j==0) {
 //On déplace l'avatar
 $avatar_2='2'.time();
 $nomavatar_2=str_replace(' ','',$avatar_2).".".$extension_upload_2;
 $avatar_2="../upload-admin/".str_replace(' ','',$avatar_2).".".$extension_upload_2;
 move_uploaded_file($_FILES['photo2']['tmp_name'],"$avatar_2");
 $si_image2=1;
}

// Avatar 3
$k=0;
$poid_max_avatar_3=10000000;
$largeur_max_avatar_3=100000000000000000;
$longeur_max_avatar_3=100000000000000000;

//On définit les variables :
$maxsize_3=$poid_max_avatar_3; //Poid de l'image
$maxwidth_3=$largeur_max_avatar_3; //Largeur de l'image
$maxheight_3=$longeur_max_avatar_3; //Longueur de l'image

if ($_FILES['photo3']['error']>0) $k++;
if ($_FILES['photo3']['size']>$maxsize_3) $k++;

$image_sizes_3 = getimagesize($_FILES['photo3']['tmp_name']);
if ($image_sizes_3[0]>$maxwidth_3 || $image_sizes_3[1]>$maxheight_3) $k++;

$extension_upload_3=strtolower(substr(strrchr($_FILES['photo3']['name'],'.'),1));
if (!in_array($extension_upload_3,$extensions_valides)) $k++;

if ($k==0) {
 //On déplace l'avatar
 $avatar_3='3'.time();
 $nomavatar_3=str_replace(' ','',$avatar_3).".".$extension_upload_3;
 $avatar_3="../upload-admin/".str_replace(' ','',$avatar_3).".".$extension_upload_3;
 move_uploaded_file($_FILES['photo3']['tmp_name'],"$avatar_3");
 $si_image3=1;
}

// Avatar 4
$l=0;
$poid_max_avatar_4=10000000;
$largeur_max_avatar_4=100000000000000000;
$longeur_max_avatar_4=100000000000000000;

//On définit les variables :
$maxsize_4=$poid_max_avatar_4; //Poid de l'image
$maxwidth_4=$largeur_max_avatar_4; //Largeur de l'image
$maxheight_4=$longeur_max_avatar_4; //Longueur de l'image

if ($_FILES['photo4']['error']>0) $l++;
if ($_FILES['photo4']['size']>$maxsize_4) $l++;

$image_sizes_4=getimagesize($_FILES['photo4']['tmp_name']);
if ($image_sizes_4[0]>$maxwidth_4 || $image_sizes_4[1]>$maxheight_4) $l++;

$extension_upload_4=strtolower(substr(strrchr($_FILES['photo4']['name'],'.'),1));
if (!in_array($extension_upload_4,$extensions_valides)) $l++;

if ($l==0) {
 //On déplace l'avatar
 $avatar_4='4'.time();
 $nomavatar_4=str_replace(' ','',$avatar_4).".".$extension_upload_4;
 $avatar_4="../upload-admin/".str_replace(' ','',$avatar_4).".".$extension_upload_4;
 move_uploaded_file($_FILES['photo4']['tmp_name'],"$avatar_4");
 $si_image4=1;
}

// Avatar 5
$m = 0;
$poid_max_avatar_5=10000000;
$largeur_max_avatar_5=100000000000000000;
$longeur_max_avatar_5=100000000000000000;

//On définit les variables :
$maxsize_5=$poid_max_avatar_5; //Poid de l'image
$maxwidth_5=$largeur_max_avatar_5; //Largeur de l'image
$maxheight_5=$longeur_max_avatar_5; //Longueur de l'image

if ($_FILES['photo5']['error']>0) $m++;
if ($_FILES['photo5']['size']>$maxsize_5) $m++;

$image_sizes_5=getimagesize($_FILES['photo5']['tmp_name']);
if ($image_sizes_5[0]>$maxwidth_5 || $image_sizes_5[1]>$maxheight_5) $m++;

$extension_upload_5=strtolower(substr(strrchr($_FILES['photo5']['name'],'.'),1));
if (!in_array($extension_upload_5,$extensions_valides)) $m++;

if ($m == 0) {
 //On déplace l'avatar
 $avatar_5='5'.time();
 $nomavatar_5=str_replace(' ','',$avatar_5).".".$extension_upload_5;
 $avatar_5="../upload-admin/".str_replace(' ','',$avatar_5).".".$extension_upload_5;
 move_uploaded_file($_FILES['photo5']['tmp_name'],"$avatar_5");
 $si_image5=1;
}

// Opérations de mise à jour de la BDD en une seule fois !
if ($operation==1) {
 // Création de news
 $sql="";
 if ($si_titrecontenu==1) $sql.="titre,contenu";
 if ($si_image1==1) {if ($sql!="") $sql.=",";$sql.="image";}
 if ($si_image2==1) {if ($sql!="") $sql.=",";$sql.="image2";}
 if ($si_image3==1) {if ($sql!="") $sql.=",";$sql.="image3";}
 if ($si_image4==1) {if ($sql!="") $sql.=",";$sql.="image4";}
 if ($si_image5==1) {if ($sql!="") $sql.=",";$sql.="image5";}
 $sql2="";
 if ($si_titrecontenu==1) $sql2.="'$titre','$contenu'";
 if ($si_image1==1) {if ($sql2!="") $sql2.=",";$sql2.="'$nomavatar'";}
 if ($si_image2==1) {if ($sql2!="") $sql2.=",";$sql2.="'$nomavatar_2'";}
 if ($si_image3==1) {if ($sql2!="") $sql2.=",";$sql2.="'$nomavatar_3'";}
 if ($si_image4==1) {if ($sql2!="") $sql2.=",";$sql2.="'$nomavatar_4'";}
 if ($si_image5==1) {if ($sql2!="") $sql2.=",";$sql2.="'$nomavatar_5'";}
 mysql_query("INSERT INTO news($sql) VALUES($sql2)") or die(mysql_error());
}
if ($operation==2) {
 // Edition de news
 $sql="";
 if ($si_titrecontenu==1) {$sql.="titre='$titre',contenu='$contenu'";}
 if ($si_image1==1) {if ($sql!="") $sql.=",";$sql.="image='$nomavatar'";}
 if ($si_image2==1) {if ($sql!="") $sql.=",";$sql.="image2='$nomavatar_2'";}
 if ($si_image3==1) {if ($sql!="") $sql.=",";$sql.="image3='$nomavatar_3'";}
 if ($si_image4==1) {if ($sql!="") $sql.=",";$sql.="image4='$nomavatar_4'";}
 if ($si_image5==1) {if ($sql!="") $sql.=",";$sql.="image5='$nomavatar_5'";}
 $sql.=" WHERE id=".$POST['id_news'];
 mysql_query("UDPATE news SET $sql") or die(mysql_error());
}


// Fin de la session MySQL
mysql_close();
// Fin du bloc PHP
?>
</body>
</html>



Cordialement,
el_linwin
0
jerryp Messages postés 141 Date d'inscription   Statut Membre Dernière intervention   24
 
bonsoir,

je commence avec le bouton "supprimer"... il me supprime toujours le contenu et le titre et les images, mais pas la news en elle même de la BDD.
Avec le modification de news, elle se fait, mais j'ai quand même encore une news supplémentaire VIDE qui se crée... pareil lors de l'ajout d'une news... j'ai une news avec le contenu, et une avec rien...

cordialement,
jerryp
0
el_linwin Messages postés 521 Date d'inscription   Statut Membre Dernière intervention   90
 
Bonsoir jerryp,

En ce cas, j'ai deux questions.

Pour la première, mon niveau de MySQL ne me permet pas d'y répondre:
Est-il normal que le fichier rediger_news.php, qui effectue une connexion à la BDD, ne possède pas d'instruction mysql_close(); ? Cela ne provoque-t'il pas un problème de mise à jour de la BDD par rapport aux opérations effectuées entre-temps ?

Et, deuxième question, toujours concernant rediger_news.php (ligne 44): est-il normal qu'il y ait la ligne $photo = stripslashes($donnees['photo']); sachant que $photo n'est pas employée, et que 'photo' ne semble pas faire partie de la base de données (alors que image,image2,image3,image4 et image5, oui) ?

En espérant que vous puissiez éclairer ma lanterne, y compris PhP, s'il le souhaite, bien entendu ;-)


Cordialement,
el_linwin
0
jerryp Messages postés 141 Date d'inscription   Statut Membre Dernière intervention   24
 
bonsoir,

pour le mysql_close(), c'est une simple négligeance de ma part... ce n'est en effet pas normal que celui-ci soit absent...

et pour la variable photo, ce doit être le vestige d'un code que l'on m'avait envoyé sur un autre forum... Car j'avais, avant de venir sur celui-ci, demandé de l'aide sur deux autres forums (demande infructueuse d'ailleurs, car l'un à eu un problème de serveur, donc, adieu les messages de mon topic... et sur l'autre, personne n'a voulu m'aider en raison de mon code assez "désorganisé"), je ne voispas non plus ce que ça fait là...

cordialement,
jerryp
0