Affichage image de la BDD dans un popup [Résolu]

Signaler
Messages postés
69
Date d'inscription
mercredi 12 mars 2008
Statut
Membre
Dernière intervention
25 novembre 2010
-
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
-
Bonjour a tous, je voudrais crée un lien hypertext qui m'ouvre un popup d'une image qui est stoqué dans une base de donnée.

Mon lien popup fonctionne quand j'le met dans mon html, mais seulment avec l'adresse d'une page, vu que pour recuperer l'image dans la Bdd il me faut une variable.

Donc quand j' met le lien popup dans mon script php avec la variable qui a l'image de ma Bdd ca ne fonctionne pas, j'pense que j'ai du mal faire ma syntaxe du lien hypertext.

Pour info mon image est stoqué dans la bdd en type blob, j'pense que c'est le bon format de stoquage...


"menu_gauche">
<?php
 
$serveur ="localhost";
$login = "root";
$mot_passe = "";
$base = "artkateo";
 
 
 
$connexion = mysql_pconnect($serveur, $login, $mot_passe) or die ("impossible de se connecter a MySQL : ".mysql_error());
 
 
 
$mabase = mysql_select_db($base) or die ("impossible de ce connecter ma table : ".mysql_error());
$requete = "select * from actualite";

$resultat = mysql_query($requete);

while($row = mysql_fetch_row($resultat))

{

$titre = $row[1];
 
$date = $row[2];

$lieu = $row[3];
 
$resume = $row[4];

$image = $row[5];

 

echo '
'.$titre.'
';

echo '
'.$date.'
';

echo '
'.$lieu.'
';

echo '
'.$resume.'
';
 
echo '
'"#" onClick="window.open('.$image.','_blank','toolbar=0, location=0, directories=0, status=0, scrollbars=yes, resizable=1, copyhistory=0, menuBar=0, width=460, height=470');return(false)">Voir image'
';
 
}
 
 
 
?>
 
 
 



<?php
 
session_start();
 
 
$serveur ="localhost";
$login = "root";
$mot_passe = "";
$base = "artkateo";
 
 
$connexion = mysql_pconnect($serveur, $login, $mot_passe) or die ("impossible de se connecter a MySQL : ".mysql_error());
 
$mabase = mysql_select_db($base) or die ("impossible de ce connecter ma table : ".mysql_error());
 
switch($_POST['action'])
 
{
case"ajout_actualite" :

$requete = "SELECT * FROM actualite WHERE (id_actualite >= 1)";

$result = mysql_query($requete) or die(mysql_error());

$row=false;

while($row = mysql_fetch_array($result)){

$requete = "DELETE FROM actualite WHERE (id_actualite >= 1)";

$resultat = mysql_query($requete) or die(mysql_error());

break;

}if(!$row);

$extensions_valides = array('jpg' , 'jpeg');
//1. strrchr renvoie l'extension avec le .
//2. substr(chaine,1) ignore le premier caractère de chaine
//3. strtolower met l'extension en minuscule
$extension_upload = strtolower(  substr(  strrchr($_FILES['image']['name'], '.')  ,1)  );
if( in_array($extension_upload,$extensions_valides))
 

{

$img_blob = file_get_contents ($_FILES['image']['tmp_name']);

$requete = "INSERT INTO actualite (titre, date, lieu, resume, img) VALUES
('".$_POST['titre']."','".$_POST['date']."','".$_POST['lieu']."','".$_POST['resume']."','".addslashes ($img_blob)."')";

$resultat = mysql_query($requete) or die(mysql_error());

if($resultat == TRUE)

{

echo "L'insertion a bien été effectué";

echo '<SCRIPT LANGUAGE="JavaScript">
function redirect() {
window.location="corine.php"
}
setTimeout("redirect()",3000); 		  </SCRIPT>';

}

else

{

echo "L'insertion a échoué";

echo '<SCRIPT LANGUAGE="JavaScript">
function redirect() {
window.location="actualite.php"
}
setTimeout("redirect()",3000); 		  </SCRIPT>';
        
        }

}

else

{
echo "Erreur le fichier que vous telecharger n'est pas dans le bon format";

echo '<SCRIPT LANGUAGE="JavaScript">
function redirect() {
window.location="actualite.php"
}
setTimeout("redirect()",3000); 		  </SCRIPT>';

}

break;
}
 
mysql_close();
 
?>



Merci d'avance!!! ;)

12 réponses

Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
32
as tu une erreur ?
tu as essayé de débugger a coup de echo ?
en javascript on aurai débuggé a coup de alert mais la on va le faire avec un echo !

a++

Si t'a besoin d'aide, MP !!!
Un forum...
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
32
Salut,

c'est l'image ou l'adresse de l'image que tu a stoqué en blob ?

a++

Si t'a besoin d'aide, MP !!!
Un forum...
Messages postés
69
Date d'inscription
mercredi 12 mars 2008
Statut
Membre
Dernière intervention
25 novembre 2010

C'est l'image...
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
32
ok bon ba je vois pas !

Si t'a besoin d'aide, MP !!!
Un forum...
Messages postés
69
Date d'inscription
mercredi 12 mars 2008
Statut
Membre
Dernière intervention
25 novembre 2010

J'viens de laisser tomber et j'ai decidé de la stoquer dans un dossier, mais j'aimerai renommer l'image une fois uploader pour que quand je fait une requete pour effacer l'image elle ai toujours le meme nom...

Je sais qui a la fonction rename, mais j'vois pas comment l'employer avec $_files, si jmaias vous avez une idée...

case "ajout_actualite" :
  
  
    $requete = "SELECT * FROM actualite WHERE (id_actualite >= 1)";
  
  
  $result = mysql_query($requete) or die(mysql_error());
   
    
    $row=false;
    
  while ($row = mysql_fetch_array($result)) {
  
      $requete = "DELETE FROM actualite WHERE (id_actualite >= 1)";
    
    $resultat = mysql_query($requete) or die(mysql_error());
    
   
    
   break; 
   
  }if(!$row);
  
    $type=$_FILES['image']['type'];
    
    
    if(($type!="image/jpeg")&&($type!="image/pjpeg"))
  {
  
  echo "Erreur le fichier que vous telecharger n'est pas dans le bon format";
    
    echo '<SCRIPT LANGUAGE="JavaScript">
          function redirect() {
       window.location="actualite.php"
      }
      setTimeout("redirect()",3000);     </SCRIPT>';
  
  
  }
  else
  {
  
  
  
  $image_destination = "../image_actu/".$_FILES['image']['name'];
      $resultat1 = move_uploaded_file($_FILES['image']['tmp_name'],$image_destination);
      
    
    $requete = "INSERT INTO actualite (titre, date, lieu, resume) VALUES
    ('".$_POST['titre']."','".$_POST['date']."','".$_POST['lieu']."','".$_POST['resume']."')";
    
    $resultat = mysql_query($requete) or die(mysql_error());
    
    if($resultat == TRUE)
  
  {
  
  echo "L'insertion a bien été effectué";
  
  /*echo '<SCRIPT LANGUAGE="JavaScript">
        function redirect() {
     window.location="corine.php"
    }
    setTimeout("redirect()",3000);     </SCRIPT>';*/
  
  }
  
  else
  
  {
  
  echo "L'insertion a échoué";
  
  echo '<SCRIPT LANGUAGE="JavaScript">
        function redirect() {
     window.location="actualite.php"
    }
    setTimeout("redirect()",3000);     </SCRIPT>';
       
        }    
      
  
  }
  
  
  break;


 
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
32
tu a essayé avec move_uploaded_file() ?

a++

Si t'a besoin d'aide, MP !!!
Un forum...
Messages postés
69
Date d'inscription
mercredi 12 mars 2008
Statut
Membre
Dernière intervention
25 novembre 2010

Euh, j'vois pas comment j'peux renommer avec cette fonction, j'l'utilise mais...

Peut tu m'éclairer?
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
32
je crois que c'est pour déplacer, je me suis trompé, ba je vais voir, a demain à 12 heure !

bonne nuit

Si t'a besoin d'aide, MP !!!
Un forum...
Messages postés
69
Date d'inscription
mercredi 12 mars 2008
Statut
Membre
Dernière intervention
25 novembre 2010

Ok, merci!!! ;)
Messages postés
69
Date d'inscription
mercredi 12 mars 2008
Statut
Membre
Dernière intervention
25 novembre 2010

C'est bon j'ai trouvé:

$image_destination = "../image_actu/".$_FILES['image']['name'];

Tu change $_FILES['image']['name'] par le nom que tu veux.

ex : $image_destination = "../image_actu/monimage.jpg";

Par contre la j'ai voulu faire une requete que quand valide mon formulaire ca me supprime l'ancienne image, j'ai utilisée la fonction unlink(), mais ca ne fonctionne pas, j'pense que je dois mal l'utiliser...

Avez vous une idée ou une autre methode?

case "ajout_actualite" :


$requete = "SELECT * FROM actualite WHERE (id_actualite >= 1)";


$result = mysql_query($requete) or die(mysql_error());


$row=false;

while ($row = mysql_fetch_array($result)) {

$requete = "DELETE FROM actualite WHERE (id_actualite >= 1)";

$resultat = mysql_query($requete) or die(mysql_error());

unlink(../image_actu/actualite.jpg);


break;

}if(!$row);

$type=$_FILES['image']['type'];


if(($type!="image/jpeg")&&($type!="image/pjpeg")) { echo "Erreur le fichier que vous telecharger n'est pas dans le bon format";

echo '<SCRIPT LANGUAGE="JavaScript">functionredirect(){window.location="actualite.php"}setTimeout("redirect()",3000);</SCRIPT>';


}
else
{



$image_destination = "../image_actu/actualite.jpg";

$resultat1 = move_uploaded_file($_FILES['image']['tmp_name'],$image_destination);







$requete = "INSERT INTO actualite (titre, date, lieu, resume) VALUES
('".$_POST['titre']."','".$_POST['date']."','".$_POST['lieu']."','".$_POST['resume']."')";

$resultat = mysql_query($requete) or die(mysql_error());

if($resultat == TRUE)

{

echo "L'insertion a bien été effectué";

/*echo '<SCRIPT LANGUAGE="JavaScript">functionredirect(){window.location="corine.php"}setTimeout("redirect()",3000);</SCRIPT>';*/

}

else

{

echo "L'insertion a échoué";

echo '<SCRIPT LANGUAGE="JavaScript">functionredirect(){window.location="actualite.php"}setTimeout("redirect()",3000);</SCRIPT>';

}


}


break;
Messages postés
69
Date d'inscription
mercredi 12 mars 2008
Statut
Membre
Dernière intervention
25 novembre 2010

C'est bon, vu que l'image a chaque fois le meme nom quand j'upload une nouvelle elle ecrase l'ancienne automatqment...

Merci pour ton aide!!! ;)
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
32
de rien a++

Si t'a besoin d'aide, MP !!!
Un forum...