[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
 
bonjour,

et bien sur, je vais aussi enlever tous les tests qui ont étés ajouté pour vérifier le fonctionnement des pages et de la BDD...

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

et voilà, le problème de la condition est règlé aussi...
Et le texte inutile à été enlevé...

En tous les cas, un tout tout grand merci à vous deux, sans vous, je ne serais pas encore si loin...

cordialement,
jerryp
0