Page 1 sur 1
probleme d'images
Posté : 18 mai 2005, 18:24
par en galere
Bonjour,
j'essaye de faire une base de donnée contenant des photos.
Les photos sont bien récupéré dans la bdd et stocker dans un dossier 'img'.
Mon problème :
Toute les images ne s'affiche pas. Le chemin est bon mais rien ne s'affiche.
Dès que l'iage est superieure a 400px elle ne s'affiche pas. J'ai MAXFILE=100000
Qu'es ce que je peux faire.
Merci
Posté : 18 mai 2005, 18:35
par Cyrano
Bon, on va commencer par démèler tout ça: tu dis avoir stocké tes images dans un dossier de la base de données.... j'ai un doute: Corrige moi si je fais erreur. Tu as tes images dans un répertoire du site et les informations dans une table images de la base de données, ou bien, tu as une table images avec un champ qui contient les images au format binaire.
Quand ce point là sera éclairci, on pourra avancer un peu.
Posté : 18 mai 2005, 18:54
par Invité
j'ai mes images au format binaire.
merci pour l'aide
Posté : 18 mai 2005, 18:55
par Invité
merci pour l'aide
Posté : 18 mai 2005, 19:00
par Cyrano
C'est un début: maintenant, il faudrait qu'on ait une idée du code utilisé pour extraire ces données et les envoyer à l'affichage. SI tu peux nous montrer ça, enfin les parties pertinentes, nous mets pas 20 pages de doce.
Et n'oublie pas, pour envoyer du code, utilise les boutons [ PHP] ou [ Code] au dessus de la zone de saisie de texte , un coup avant le code, et un autre juste à la fin et vérifier que les bbCodes sont activés, merci.
Posté : 18 mai 2005, 19:17
par Invité
Sur ma page HTML
<input type="hidden" name="MAX_FILE_SIZE" value="100000">
<span class="presentation">Picture : </span>
<input name="photonewsr" type="file" class="presentation" id="photonewsr" size="40" maxlength="80">
Sur ma page insert.php
<?
//recuperation des champs du formulaire
$titrenewsr=$_POST["titrenewsr"];
$base_img_dir="./img/";
$img_conv_dir="./bin/";
$img_table="accessoire";
$auteurnewsr=$_POST['auteurnewsr'];
$textenewsr=$_POST['textenewsr'];
$datenewsr=date("d-m-y");
include "site_cfg.php";
$connect = mysql_connect("$host", "$user", "$pass") ;
//Enregistrement de l'image sans la base
$uniq=uniqid("");
$filename=$base_img_dir.$uniq;
move_uploaded_file($HTTP_POST_FILES["photonewsr"]["tmp_name"],$filename);
$mabase= mysql_select_db($bdd);
$query="INSERT INTO newsr (idnewsr, photonewsr, titrenewsr, auteurnewsr, datenewsr, textenewsr) VALUES('', '$filename', '$titrenewsr', '$auteurnewsr', '$datenewsr', '$textenewsr')";
$resultat=mysql_query($query);
if ($resultat){
header ('Location:backoffice.html');
}
else {
header ('Location:error404.htm');
}
?>
POUR L'AFFICHAGE
$select='SELECT titrenewsr, photonewsr, textenewsr, idnewsr FROM newsr ORDER BY idnewsr DESC LIMIT 10,14';
$result=mysql_query($select,$connect);
$total= mysql_num_rows($result);
while($row=mysql_fetch_array($result)){
$titrenewsr=$row['titrenewsr'];
$photonewsr=$row['photonewsr'];
$textenewsr=$row['textenewsr'];
$idnewsr=$row['idnewsr'];
if (strlen($textenewsr)>$max_caracterenewsr)
{
$textenewsr = substr($textenewsr,0,$max_caracterenewsr);
$position_espace=strrpos ($textenewsr," ");
$textenewsr=substr($textenewsr,0,$position_espace);
$textenewsr=$textenewsr ."...";
}
echo'<table width=100% height=62 border=0 cellpadding=0 cellspacing=0 align=top valign=top>';
echo' <tr>';
echo" <td align=top><img src=\"$photonewsr\" width=128 height=75></td>";
echo' </tr>';
echo' <tr>';
echo" <td colspan=2>
<span class='titrenewsr'>$titrenewsr</span><br>
<span class='soustitrenewsr'><a href=article_newsr.php?cle=$idnewsr>$textenewsr</a></span><br></td><br>";
echo' </tr>';
echo' </table>';
}
Posté : 18 mai 2005, 19:39
par Invité
Cyarano, c'est ca qu'il te faut. Tu comprends pourquoi ca ne marche pas pour toute mes images.
Posté : 18 mai 2005, 19:50
par Cyrano
...Et n'oublie pas, pour envoyer du code, utilise les boutons [ PHP] ou [ Code] au dessus de la zone de saisie de texte , un coup avant le code, et un autre juste à la fin et vérifier que les bbCodes sont activés, merci.
Je ne sais pas si c'est ça qu'il me faut, mais si tu lisais les message au lieu de t'exciter sur les boutons d'envoi, tu ne posterais pas en double et on aurait peut-être envie de lire ton code

Posté : 18 mai 2005, 20:04
par Invité
C'etait juste un refresh de trop. Jamais utilisé les php et quote et autres désolé. J'espère que c'est plus lisible ainsi.
Sur ma page HTML
Code : Tout sélectionner
<input type="hidden" name="MAX_FILE_SIZE" value="100000">
<span class="presentation">Picture : </span>
<input name="photonewsr" type="file" class="presentation" id="photonewsr" size="40" maxlength="80">
Sur ma page insert.php
<?
//recuperation des champs du formulaire
$titrenewsr=$_POST["titrenewsr"];
$base_img_dir="./img/";
$img_conv_dir="./bin/";
$img_table="accessoire";
$auteurnewsr=$_POST['auteurnewsr'];
$textenewsr=$_POST['textenewsr'];
$datenewsr=date("d-m-y");
include "site_cfg.php";
$connect = mysql_connect("$host", "$user", "$pass") ;
//Enregistrement de l'image sans la base
$uniq=uniqid("");
$filename=$base_img_dir.$uniq;
move_uploaded_file($HTTP_POST_FILES["photonewsr"]["tmp_name"],$filename);
$mabase= mysql_select_db($bdd);
$query="INSERT INTO newsr (idnewsr, photonewsr, titrenewsr, auteurnewsr, datenewsr, textenewsr) VALUES('', '$filename', '$titrenewsr', '$auteurnewsr', '$datenewsr', '$textenewsr')";
$resultat=mysql_query($query);
if ($resultat){
header ('Location:backoffice.html');
}
else {
header ('Location:error404.htm');
}
?>
POUR L'AFFICHAGE
<?
$select='SELECT titrenewsr, photonewsr, textenewsr, idnewsr FROM newsr ORDER BY idnewsr DESC LIMIT 10,14';
$result=mysql_query($select,$connect);
$total= mysql_num_rows($result);
while($row=mysql_fetch_array($result)){
$titrenewsr=$row['titrenewsr'];
$photonewsr=$row['photonewsr'];
$textenewsr=$row['textenewsr'];
$idnewsr=$row['idnewsr'];
if (strlen($textenewsr)>$max_caracterenewsr)
{
$textenewsr = substr($textenewsr,0,$max_caracterenewsr);
$position_espace=strrpos ($textenewsr," ");
$textenewsr=substr($textenewsr,0,$position_espace);
$textenewsr=$textenewsr ."...";
}
echo'<table width=100% height=62 border=0 cellpadding=0 cellspacing=0 align=top valign=top>';
echo' <tr>';
echo" <td align=top><img src=\"$photonewsr\" width=128 height=75></td>";
echo' </tr>';
echo' <tr>';
echo" <td colspan=2>
<span class='titrenewsr'>$titrenewsr</span><br>
<span class='soustitrenewsr'><a href=article_newsr.php?cle=$idnewsr>$textenewsr</a></span><br></td><br>";
echo' </tr>';
echo' </table>';
}?>
[/code]
Posté : 18 mai 2005, 20:23
par Cyrano
Bon, je ne crois pas que le MAXFIle soit en cause puisque c'est plus tard que ça pose problème: à moins que les images supérieures à cette taille ne soient pas enregistrées complètement dans la base auquel cas ça affiche bien tout, mais c'est tronqué: quel est le type de champ qui reçoit l'image dans la base ?
Posté : 18 mai 2005, 20:45
par Invité
un champ varchar 255
Il enregistre just un nom style 10025882df8 Pas d'extensioon .
Une image a 400 px passe, la meme reagrandit a 1000px ne passe plus
Posté : 19 mai 2005, 19:18
par Invité
j'ai change mon champs en blob mais pas de modification.
je vois pas d'ou peut provenir l'erreur. l'image s'enregistre bien.