Passage de parametres par url pour affichage de photos [Résolu]

Messages postés
25
Date d'inscription
samedi 12 juillet 2008
Statut
Membre
Dernière intervention
10 janvier 2014
- - Dernière réponse : gaouinformaticien
Messages postés
25
Date d'inscription
samedi 12 juillet 2008
Statut
Membre
Dernière intervention
10 janvier 2014
- 10 janv. 2014 à 13:11
Bonjour à tous
je réalise une presse en ligne qui doit afficher les articles avec leurs photos.je n'arrive pas à afficher les photos des différents des articles de la BD à cause du passage des paramètre
voici mon code (Merci d'avance).
1.code de la page qui affiche les articles et les photos correspondantes
<?php

mysql_connect("localhost","root","");
mysql_select_db("mf");

$MessagesPerPage = 3;
// On récupère le nombre total de messages
$return = mysql_query('SELECT COUNT(*) AS nb_messages FROM articles');
$data = mysql_fetch_array($return);
$Messages = $data['nb_messages'];

$Pages = ceil($Messages / $MessagesPerPage);
// Puis on fait une boucle pour écrire les liens vers chacune des pages
echo 'Page : ';
for ($i = 1 ; $i <= $Pages ; $i++)
{
echo '<script>alert(\"<a href="news.php?page=' . $i . '">' . $i . '</a>.\")</script> ';
}

// On récupère les 3 dernières news

if (isset($_GET['page']))
{
$page = $_GET['page']; // On récupère le numéro de la page indiqué dans l'adresse ( exemple news.php?page=4)
}
else // si non la variable n'existe pas, c'est la première fois qu'on charge la page
{
$page = 1; // On affiche la page 1, la page par defaut
}

$firstmessage = ($page - 1) * $MessagesPerPage;

$result = mysql_query('SELECT * FROM articles ORDER BY id DESC LIMIT ' . $firstmessage . ', ' . $MessagesPerPage);

while ($data = mysql_fetch_array($result))
{
$id =stripslashes($data['id']);

?>

<h2>

<?php
echo stripslashes($data['titre']); //on recupère titre

?>
</h2>



<em> Ajouté le <?php
echo date('d/m/Y à H:i:s',strtotime($data['date'])); //on recupère la date
?></em> <BR>

<?php
$blob = $data['blob'];
//$img = stripslashes($data['blob']);
//$img = stripslashes($data['blob']);
// s'il n'y a l'url de l'image, on affiche le contenu
if (empty($blob))
{
$contenu = nl2br(stripslashes($data['contenu']));
echo $contenu;
}
else// sinon on affiche l'image puis le contenu
{
?>
///cest ici que se toruvre le probleme
<img alt="" src="Image.php?ide=$id" height="150" border="2" width="150" />

<?php
$contenu = nl2br(stripslashes($data['contenu']));
echo $contenu;

}
//Nous affichons le lien nous dirigeant vers les commentaires
?>
<br/><em><a href="commentaires.php?news=<?php echo $data['id']; ?>">Commentaires</a></em>
<?php
} // Fin de la boucle des news

?>
2.code de Image.php

<?php
$connect=mysql_connect('localhost','root','');
mysql_select_db('mfa',$connect);
$ide=$_GET['id'] ;
$sql="select * from articles where id=( '" . $ide . "')" ;
$result=mysql_query($sql);
$NombreRow=mysql_num_rows($result);
if ($NombreRow==0) {echo("Pas de données enregistrées");}
else {
while($liste=mysql_fetch_row($result)){
header ("Content-type:image/jpeg ".$liste[4]);
echo $liste[6];
}

}

la table article
article(id,titre,contenu,nomphoto,typephoto,taillephoto,blob,date)
Afficher la suite 

2 réponses

Messages postés
1313
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
20 juin 2014
6
0
Merci
Hello,

tu es sur un serveur mutualisé ou dédié ?

Si tu es sur un dédié tu peux par conséquent installer imagick et afficher/manipuler les images à ta guise à partir d'une seule image stockée sur le serveur (excellent en terme de volume des données stockées).

Dans tous les cas je te conseille de bosser la réécriture d'url en définissant des règles dans ton .htaccess, ça t'évitera d'avoir des urls avec les fameux "?" disgracieux et ça améliorera ton référencement.

A+
Commenter la réponse de BBFUNK01
Messages postés
25
Date d'inscription
samedi 12 juillet 2008
Statut
Membre
Dernière intervention
10 janvier 2014
0
Merci
J'ai trouvé la réponse à mon problème .
il fallait écrit dans le code de la page qui affiche:
<img alt="" src="Image.php?ide=<?php echo $id; ?>" height="150" border="2" width="150" />
et dans la page image.php
<?php
$connect=mysql_connect('localhost','root','');
mysql_select_db('mfa',$connect);
if (isset($_GET["ide"])) {$art = $_GET["ide"] ; }

$sql="select * from articles where id=('" . $art . "')" ;
$result=mysql_query($sql);
$NombreRow=mysql_num_rows($result);
if ($NombreRow==0) {echo("Pas de données enregistrées");}
else {
while($liste=mysql_fetch_row($result)){
header ("Content-type:image/jpeg ".$liste[4]);
echo $liste[6];
}

}

mysql_close();

?>

Merci à bbfunko1 et à tous
Commenter la réponse de gaouinformaticien