[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

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

Donc, visiblement les requêtes MySQL ne posent pas de problèmes question orthographe.
Récapitulons:
- les requêtes POST passent =)
- les images sont uploadées =)
- la connexion à la base de données s'effectue correctement =)
- les requêtes MySQL sont acceptées =)
- la base de données ne se remplit pas... =(

Un élément du problème m'échappe. Lequel ?


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

effectivement, un problème se cache encore......

reste "plus qu'à" le trouver......

après tout ce qui a déjà été corrigé ... il ne saurait plus rester grand chose...

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

Je commence à croire de plus en plus qu'il y a un problème de mise à jour de la base de données par rapport aux requêtes qu'on lui envoie.

D'après les sorties de débogage, quand une image va se faire "enregistrer" dans la base, elle prend un nom de fichier valide, la requête est acceptée par MySQL, mais semble officieusement être classée sans suite...

A ce niveau, la balle est dans le camp de MySQL. Si les données étaient mises "n'importe où" dans la base, vous les verriez. Mais là, c'est ce rien qui est étonnant...

Pourriez-vous jeter un oeil aux logs de la base ? On pourrait sûrement y trouver quelque-chose d'instructif.


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

je ne sais pas ou se trouve le log, mais dans la strucure de la table, j'ai un tableau intitulé "espace utilisé"... et la dedans, j'ai une ligne "perte" avec comme valeur, 368 O...

cordialement,
jerryp
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
 
Bonsoir jerryp,

Si les 368O veulent dire 368 octets de pertes, je ne veux pas être pessimiste, mais cela correspond grosso modo à ce qu'on lui envoie actuellement comme informations...

Si les requêtes passent en "pertes", la viriginité persistante de cette base de données ne me surprend plus !
Et le non-fonctionnement du site avec...


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

il me semble aussi, mais d'où est-ce que ça pourrait venir ?
ça vient de la base de données, ou du code ?

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

Après avoir relu une nouvelle fois le code PHP concernant les requêtes MySQL, je crois que c'est la base de données qui est en cause:

- si la base de données était bonne et que les requêtes n'allaient pas, MySQL reverrait un code d'erreur. Ce qu'il ne fait pas.

- si la base de données était bonne et que les requêtes allaient, la base de données se remplirait, d'une façon ou d'une autre.

- si la base de données n'était pas bonne et que les requêtes n'allaient pas, MySQL reverrait quand même un code d'erreur. Je doute qu'il s'en serait privé...

- si la base de données n'était pas bonne et que les requêtes allaient, MySQL ne renverrait rien, sans modification souhaitée/sans modification du tout de la base de données.


D'après les symptômes rencontrés, je crois qu'on est en plein dans le dernier cas.


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

je pense voir d'où ça vient...
Mes champs image, image2,... sont de type TEXT... ne faut-il pas en mettre un autre ?

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

Je viens de voir un forum de spécialistes de la combinaison PHP-MySQL.
Pour stocker des chemins d'image dans leur BDD, ils préconisent le type VARCHAR2.


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

je n'ai pas dans ma liste VARCHAR2... mais j'ai mis VARCHAR à la place... mais ça ne fonctionne pas non plus

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

Concernant la base de données, ce sont seulement les images qui ne s'enregistrent pas ou absolument rien ?

NB: je pense que la différence entre VARCHAR et VARCHAR2 est que cette dernière fonctionne en Unicode.


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

seulement les images ne s'affichent pas dans la base de données...
sinon, le titre et le contenu s'affichent sans problèmes...

que puis-je mettre à la place de VARCHAR2 ? Et l'interclassement, il à un rôle à jouer dans tout ça ?

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

En relisant le code, je viens de constater quelque chose de bizarre...
Vous me dites que titre et contenu s'incrivent sans problèmes dans la table. D'ailleurs, le code PHP envoie une séquence MySQL: INSERT INTO news(titre, contenu) etc...

Or, concernant les images, il n'y a pas le moindre appel de type INSERT INTO news(image) etc...
Seulement des UPDATE. Or, comment peut-il mettre à jour sans écriture préalable ?


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

ah oui tient... je n'avais pas pensé à ça...

Mais comment le corriger... INSERT INTO ???

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

Je pense savoir comment contourner l'obstacle.
Au début du script PHP, il y a un test qui détermine si l'on crée une news ou si l'on modifie une news. Il suffit de profiter de ce test pour initialiser une variable globale disons à 1 si on crée et à 2 si on modifie la news.

Ensuite, lorsqu'on traite les images, on ajoute un test pour savoir si cette variable est à 1 ou 2.
En fonction du résultat, on envoie une soit requête INSERT INTO, soit une requête UPDATE.

Ainsi, je crois que le plus gros du problème sera débloqué.
Je plancherai sur la version modifiée demain.


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

je vous remercie une fois de plus.

Je vais toujours regarder un peu maintenant... mais ce ne sera plus très long... bientot dodo !
Demain, je ne serai de retour que vers 23h... si on ne se parle plus, à mercredi !

encore merci,

je vous souhaite une bonne nuit.

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

je suis revenu un peu plus tot que prévu... je me remets à la correction du site...

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

C'est une bonne nouvelle que vous vous soyez libéré plus tôt.

Je n'ai pas encore fignolé la nouvelle mouture du code, mais en principe, ça devrait marcher.
Je vais finir ça juste après le dîner.


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

c'est vraiment du pur hasard que je sois déjà revenu...
je n'étais pas sensé revenir avant 23h ce soir...

Mais bon, ça laisse un peu plus de temps pour le site :-)

merci,

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

Voici la dernière mouture du script, en espérant que je ne me sois pas planté dans les nouvelles requêtes INSERT INTO. Le SQL n'est pas encore ma tasse de thé, je préfère encore les tasses de café du JAVA ! =D

<!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

//-----------------------------------------------------
// Vérification 1 : est-ce qu'on veut poster une news ?
//-----------------------------------------------------
if (isset($_POST['titre']) && isset($_POST['contenu']))
{
    echo '<p>Test [Postage de news] = Appelé</p>';

    $titre = addslashes($_POST['titre']);
    $contenu = addslashes($_POST['contenu']);

    echo '<p>Test: titre="',$titre,'" idnews="',$_POST['id_news'],'" contenu="',$contenu,'"</p>';

    // On vérifie si c'est une modification de news ou pas
    if ($_POST['id_news'] == 0)
    {   echo '<p>Test [Modification de news] = Modification</p>';
        $operation=1;
        // 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
    {   echo '<p>Test [Modification de news] = Création</p>';
        $operation=2;
        // 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());
    }
} else {
 echo '<p>Test [Postage de news] = Pas appelé</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
$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
       echo '<p>Test avatar 1</p>';
        if ($_FILES['photo1']['error'] > 0)
        {       echo '<p>Test avatar 1: [photo1][error]>0 </p>';
                $i++;
				
        }
		
        if ($_FILES['photo1']['size'] > $maxsize)
        {       echo '<p>Test avatar 1: [photo1][size] supérieur à ',$maxsize,'</p>';
                $i++;
				
        }

        $image_sizes = getimagesize($_FILES['photo1']['tmp_name']);
        if ($image_sizes[0] > $maxwidth || $image_sizes[1] > $maxheight)
        {       echo '<p>Test avatar 1: [photo1]=erreur de taille</p>';
                $i++;
				
        }
       
        $extension_upload = strtolower(substr(  strrchr($_FILES['photo1']['name'], '.')  ,1));
        if (!in_array($extension_upload,$extensions_valides) )
        {       echo '<p>Test avatar 1: [photo1]=erreur d\'extension</p>';
                $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");
	if ($operation==1) {$sql="INSERT INTO news(image) VALUES('". $nomavatar. "')";mysql_query($sql);}
	if ($operation==2) {$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 || $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");
	if ($operation==1) {$sql2="INSERT INTO news(image2) VALUES('". $nomavatar_2. "')";mysql_query($sql2);}
	if ($operation==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 || $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");
	if ($operation==1) {$sql3="INSERT INTO news(image3) VALUES('". $nomavatar_3. "')";mysql_query($sql3);}
	if ($operation==2) {$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['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_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");
	if ($operation==1) {$sql4="INSERT INTO news(image4) VALUES('". $nomavatar_4. "')";mysql_query($sql4);}
	if ($operation==2) {$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 || $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");
	if ($operation==1) {$sql5="INSERT INTO news(image5) VALUES('". $nomavatar_5. "')";mysql_query($sql5);}
	if ($operation==2) {$sql5="UPDATE news SET image5='" . $nomavatar_5 ."' WHERE id='" . $donnees['id']."'";mysql_query($sql5);}
    }

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



Cordialement,
el_linwin
0