demande aide affiche image

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : demande aide affiche image

par titerm » 02 juin 2007, 12:47

Pour commencer, je te suggère de faire un légère modif temporaire a ton fichier apercu, et plutot que d'afficher ton image, enregistre la dans un fichier avec la bonne extention. Ensuite, essai de charger ce fichier dans ton navigateur, si l'affichage est correcte, tu as déjà isolé toute la partie BDD et extraction, et encodage. Conserve ton image temporaire pour l'instant.

Une fois ce test effectué, il ne reste plus a vérifier apercu, puisque c'est le seule script qui sert reellement a l'affichage.

Tu n'a jamais donné le contenu de $col[1], si tu indique un mauvais format, cela pourrai etre une cause de tes problèmes.

Verifie aussi le contenu de ton php_error.log lorsque tu charges ta page, c'est souvent instructif...

Tu pourra aussi, par exemple, faire un test avec un mini script du genre :
<?php
// Si c'est une image png, si autre, tu adaptes. 
header('Content-type: image/png');
readfile('path vers ton image temporaire stocker sur le HDD');

par naholyr » 02 juin 2007, 11:30

La page résultat est absolument vide, et tu as pour seul contenu cette erreur de header already sent ?
Quand tu affiches la source tu n'as rien, pas un point, un espace, rien avant l'erreur ?

Quel éditeur utilises-tu pour développer ? Certains éditeurs rajoutent un caractère invisible en début de fichier (un «marqueur») quand on travaille en UTF-8. Cela pourrait être une piste.

par Sékiltoyai » 02 juin 2007, 01:06

:-/
Tu peux faire une archive des fichiers et la mettre sur un ftp, que l'on puisse les télécharger.
Ca me parait super bizarre comme erreur...

pour sekiltoyai

par adel » 01 juin 2007, 20:42

voici mes scripts avant il ni a pas de avant ?> merci de ton aide


formulaire_________________________________________
1 script
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>formulaire html envoie image projet test</title>
</head>

<body>

<h3>Envoi d'une image</h3>
<form enctype="multipart/form-data" action="#" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="250000" />
<input type="file" name="fic" size=50 />
<input type="submit" value="Envoyer" />
</form>
<p><a href="liste.php">Liste</a></p>
</body>
</html>

2 script transfert
<?
function transfert ()
{
$ret = false;
$img_blob = '';
$img_taille = 0;
$img_type = '';
$img_nom = '';
$taille_max = 250000;
$ret = is_uploaded_file ($_FILES['fic']['tmp_name']);
if ( !$ret )
{
echo "Problème de transfert";
return false;
}
else
{
// Le fichier a bien été reçu
$img_taille = $_FILES['fic']['size'];
if ( $img_taille > $taille_max )
{
echo "Trop gros !";
return false;
}
$img_type = $_FILES['fic']['type'];
$img_nom = $_FILES['fic']['name'];
$hote = 'localhost';
$base = 'test';
$user = 'pol';
$pass = 'polo';
$cnx = mysql_connect ($hote, $user, $pass) or die (mysql_error ());
$ret = mysql_select_db ($base) or die (mysql_error ());
$img_blob = file_get_contents ($_FILES['fic']['tmp_name']);
$req = "INSERT INTO images (".
"img_nom, img_taille, img_type, img_blob ".
") VALUES (".
"'".$img_nom."', ".
"'".$img_taille."', ".
"'".$img_type."', ".
// N'oublions pas d'échapper le contenu binaire
"'".addslashes ($img_blob)."') ";
$ret = mysql_query ($req) or die (mysql_error ());
return true;
}
}
if ( isset($_FILES['fic']) )
{
transfert();
}
?>
3 script liste
<?
$hote = 'localhost';
$base = 'test';
$user = 'pol';
$pass = 'polo';
$cnx = mysql_connect ($hote, $user, $pass) or die (mysql_error ());
$ret = mysql_select_db ($base) or die (mysql_error ());
$req = "SELECT img_nom, img_id ".
"FROM images ORDER BY img_nom";
$ret = mysql_query ($req) or die (mysql_error ());
while ( $col = mysql_fetch_row ($ret) )
{
echo "<a href=\"apercu.php?id=".$col[1].
"\">".$col[0]."</a><br />";
}
?>
3liste apercu_________________________________________________
<?
if ( isset($_GET['id']) )
{
$id = intval ($_GET['id']);
$hote = 'localhost';
$base = 'test';
$user = 'pol';
$pass = 'polo';
$cnx = mysql_connect ($hote, $user, $pass) or die (mysql_error ());
$ret = mysql_select_db ($base) or die (mysql_error ());
$req = "SELECT img_id, img_type, img_blob ".
"FROM images WHERE img_id = ".$id;
$ret = mysql_query ($req) or die (mysql_error ());
$col = mysql_fetch_row ($ret);
if ( !$col[0] )
{
echo "Id d'image inconnu";
}
else
{
header ("Content-type: ".$col[1]);
echo $col[2];
}
}
else
{
echo "Mauvais id d'image";
}
?>

par Sékiltoyai » 01 juin 2007, 10:45

Sans header, dans tous les cas, tu n'auras que des caractères incompréhensible, car le navigateur ne peut correctement interpréter le fichier si tu n'indiques pas de quel type il est.
Mais si tu veux vraiment régler ton problème, répond à ma question, as tu un caractère invisible avant ton <? de début de script ?

pour sekiltoyai

par adel » 01 juin 2007, 08:10

c'est clair de dire metre le header et ensuite de retire je tournai en rond mais aucune solution je suis revenue au point depart

par Sékiltoyai » 01 juin 2007, 03:05

Ca tourne en rond.
Remets le header, il est indispensable. As-tu un espace, un saut de ligne, ou tout autre caractère invisible avant le <? du début ?

par pour djtec » 31 mai 2007, 21:36

mais si tu regarde mon script je l'engistre dans la base
par contre peut tu me rajouter le script qui manque pour voir mon image
merci d'avance

par djtec » 31 mai 2007, 20:52

Pour voir l'aperçu de l'image il faudrait que quand tu l'enregistre dans la base tu la up dans un dossier sinon comment veux-tu voir l'image

pour djtec

par adel » 31 mai 2007, 20:01

salut djtec

oui j'ai aissaye quand je clic sur une photo dans apercu j'obtien toujour des codes et des code

rien a faire

par djtec » 31 mai 2007, 18:16

Bonjour,

As-tu essayé de retirer ceci de ta page
header ("Content-type: ".$col[1]);

Si oui que cela donne t-il?

pour djtec

par adel » 30 mai 2007, 20:46

salut a toi

aurai tu l'amabilite de m'envoie un script qui pourrai me sortir de la car c'est devenue un
vrai case tete

merci d'avance je suis dans le broulliard

par djtec » 30 mai 2007, 18:30

Oui dsl j'avais pas vu le if tout en haut de ta page


Ben le plus simple c'est que tu retire carement
header ("Content-type: ".$col[1]);

rep

par adel » 29 mai 2007, 22:57

j'ai aissaye de retire } mais sa me creer une erreur

et svp quelle balise html qui faut retire

par djtec » 29 mai 2007, 21:00

Cela aussi est faux
if ( !$col[0] )
{
echo "Id d'image inconnu";
}
else
{
header ("Content-type: ".$col[1]);
echo $col[2];
}
}
else
{
echo "Mauvais id d'image";
} 

Il y a un } en trop après echo $col[2];