Passage de parametres par url pour affichage de photos

Résolu
gaouinformaticien Messages postés 25 Date d'inscription samedi 12 juillet 2008 Statut Membre Dernière intervention 10 janvier 2014 - 10 janv. 2014 à 12:03
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)

2 réponses

BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 6
10 janv. 2014 à 12:22
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+
0
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
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
0
Rejoignez-nous