IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Affichage dans un Pop'Up


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2008
    Messages : 299
    Par défaut Affichage dans un Pop'Up
    Bonjour,

    j'ai réussit a résoudre mes problèmes précédents avec mon projet, mais il m'en reste une de pas très évident.
    Je voudrais lorsque l'on clique sur mon image il s'affiche à la taille réelle dans une nouvelle fenêtre.
    Voici mon code d'upload des photos (en fait je redimentionne directement l'image avant de le stocké dans la base de donnée et dans le répertoire d'origine, donc l'image initiale n'est pas garder sur le serveur)

    Code d'upload des photos

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
     
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
       <head>
           <title>Bienvenue sur mon site !</title>
           <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    	   <link rel="stylesheet" media="screen" type="text/css" title="Exemple" href="designe.css" />
    	</head>
    <html>	
     
    <body>
     
     
    <?php
    echo "Copie des photo dans un répertoire + copie des info sur la photo dans une base de donnée";
     
    include ("conexion.php");
     
    echo "<form action='formulaire_upload.php' 
    enctype='multipart/form-data'
    	    method='post'>
    	Répertoire des images:<br/>
    	  <input type='file' name='katofo' size='25'/>
    	  <br/>
    	  <textarea name='description' rows='5' cols='25'></textarea>
    	  <br/><b/>
    	  
    	Rubrique: ";
    $query = "SELECT RubriqueID, RubriqueName FROM Rubrique 
    	  ORDER BY RubriqueName DESC";
    $result = mysql_query($query) or die("ERROR");
    echo "<select name='frm_select_rubrique'>";
    $Selected = 0;
    while ($row = mysql_fetch_array($result))
    {
      if($Selected == 0)
      {
        echo '<option value="', $row['RubriqueID'], '" selected="selected">', $row['RubriqueName'], 
    '</option>';
        $Selected = 1;
      }
      else
      {
        echo '<option value="', $row['RubriqueID'], '">', $row['RubriqueName'], '</option>';
      }
    }
     
    echo "</select>
    	<br/><br/>
    	
    	<input type='submit' value='Ajouter images'/> 
    	</form>";
     
    if(isset($_FILES['katofo'])) // si formulaire soumis 
     
    {
    $RubriqueID = $_POST['frm_select_rubrique'];
    $ImageDesc = $_POST['description'];
    $query1 = "SELECT RubriqueName FROM Rubrique WHERE RubriqueID = '$RubriqueID' ";
    $result1 = mysql_query($query1) or die("ERROR");
    $row_result = mysql_fetch_assoc($result1);
     
     
    $RubriqueName = $row_result['RubriqueName'];
    $content_dir = "../photos/".$RubriqueName."/"; // dossier où sera déplacé le fichier 
    $tmp_file = $_FILES['katofo']['tmp_name']; 
    $name_file = $_FILES['katofo']['name'];
    $taille_file = filesize($tmp_file);
    $ImageRes = getimagesize($tmp_file);
     
     // on vérifie maintenant l'extension 
    $type_file = $_FILES['katofo']['type']; 
     
    if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'png') && !strstr($type_file, 'gif') ) 
    { 
    exit("Le fichier n'est pas une image ou elle est trop volumineux"); 
    } 
     // création de la miniature
     
     // pour redimensionner l'image 
    $RubriqueName = 'RubriqueName';
    $chemin = $tmp_file ; # L'emplacement de l'image à redimensionner. L'image peut être de type jpeg, gif ou png 
     
    $x = 150; 
     
    $y = 150; # Taille en pixel de l'image redimensionnée 
     
    $size = getimagesize($chemin); 
     
    if ( $size) { 
    echo 'Image en cours de redimensionnement... 
    '; 
     
    if ($size['mime']=='image/jpeg' ) { 
    $img_big = imagecreatefromjpeg($chemin); # On ouvre l'image d'origine 
    $img_new = imagecreate($x, $y); 
    # création de la miniature 
    $img_mini = imagecreatetruecolor($x, $y) 
    or   $img_mini = imagecreate($x, $y); 
     
    // copie de l'image, avec le redimensionnement. 
     
    imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]); 
     
    imagejpeg($img_mini,$chemin ); 
     
    } 
    elseif ($size['mime']=='image/png' ) { 
    $img_big = imagecreatefrompng($chemin); # On ouvre l'image d'origine 
    $img_new = imagecreate($x, $y); 
     
    # création de la miniature 
    $img_mini = imagecreatetruecolor($x, $y) 
    or   $img_mini = imagecreate($x, $y); 
     
    // copie de l'image, avec le redimensionnement. 
    imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]); 
     
    imagepng($img_mini,$chemin ); 
     
    } 
    elseif ($size['mime']=='image/jpg' ) { 
    $img_big = imagecreatefromjpg($file); # On ouvre l'image d'origine 
    $img_new = imagecreate($x, $y); 
    # création de la miniature 
    $img_mini = imagecreatetruecolor($x, $y) 
    or   $img_mini = imagecreate($x, $y); 
     
    // copie de l'image, avec le redimensionnement. 
    imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]); 
     
    imagegif($img_mini,$file ); 
     
    } 
    echo 'Image redimensionnée ! 
    '; 
    } 
     
     //fin de la création de la miniature
     
    if(move_uploaded_file($tmp_file, $content_dir . $name_file) ) 
    {
    echo "Le fichier a bien été uploadé";
    echo '<br>';
    } else {
    echo "Impossible de copier le fichier dans ".$content_dir ; 
    } 
     
    //ajout de l'image à la base de données
     
    $Date = date("Y-m-d");
    $Time = date("H:i:s");
    $sql = "INSERT INTO Image SET 
    		ImageID='', 
    		RubriqueID='$RubriqueID',
    		ImageName='$name_file',
    		ImageDesc='$ImageDesc', 
                             ImageRes='$ImageRes', 
                             ImageSize='$taille_file',
    		Date='$Date',
    		Time='$Time'"; 
    $result = mysql_query($sql);
    echo "$Date","$Time","$sql";
    }
     
     
    ?> 
     
    </body>
     
    </html>

    Mon script d'affichage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html>
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
    <title>ZIMAGE COMM ZOT I AIME</TITLE>
       <head>
           <title>Bienvenue sur mon site !</title>
           <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
     
    	   <link rel="stylesheet" media="screen" type="text/css" title="ZIMAGE COMM ZOT I AIME" href="pages/designe.css" />
     
       </head>
     
     
    <body bgcolor="green">
     
    <?php
     
    include ("../inc/inc_conexion.php");
     
    // Requête de selection et d'affichage
     
    echo '<form action="inc_image.php" enctype="multipart/form-data" method="post">';
     
    $query = "SELECT RubriqueID, RubriqueName FROM Rubrique 
    	  ORDER BY RubriqueName DESC";
    $result = mysql_query($query) or die("ERROR");
    echo "<select name='frm_select_rubrique'>";
    $Selected = 0;
    while ($row = mysql_fetch_array($result)){
       if($Selected == 0){
         echo '<option value="'.$row['RubriqueID'].'" selected="selected">'.$row['RubriqueName'].'</option>';
         $Selected = 1;
       }
       else{
         echo '<option value="', $row['RubriqueID'], '">', $row['RubriqueName'], '</option>';
       }
    }
    echo "</select>	
    	<input type='submit' value='Go'/> 
    	</form>";
     
     if(isset($_POST['frm_select_rubrique'])){
        $RubriqueID = $_POST['frm_select_rubrique'];
        $sql = 'SELECT RubriqueDesc FROM Rubrique WHERE RubriqueID='.$RubriqueID;
     
        echo mysql_result(mysql_query($sql),0,'RubriqueDesc'); //RubriqueDesc
    	echo '<br></br>';
     
        $sql = 'SELECT image.ImageID, image.ImageName, image.ImageRes, image.ImageSize,rubrique.RubriqueName FROM image, rubrique WHERE image.RubriqueID='.$RubriqueID.' AND image.RubriqueID=rubrique.RubriqueID ORDER BY image.ImageName'; 
        $query = mysql_query($sql);
        while($img = mysql_fetch_assoc($query)){ 
            $src = '../photos/'.$img['RubriqueName'].'/'.str_replace(".JPEG",".JPG",strtolower($img['ImageName'])); //strtolower 
    		        echo '<a href="visualisation.php"><img src="'.$src.'" alt="Visuel de'.$img['ImageName'].'" width="150" height="150" border="1"/></a>';
     
        }
    }
     
    ?>
     
    </body>
    </html>

    Merci de votre aide

    Runcafre91/974

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 21
    Par défaut
    Citation Envoyé par runcafre91 Voir le message
    (en fait je redimentionne directement l'image avant de le stocké dans la base de donnée et dans le répertoire d'origine, donc l'image initiale n'est pas garder sur le serveur)
    Bonjour,

    première chose, tu dois te demander où sera stockée l'image que tu veux afficher dans sa taille originale.
    Au moment de l'upload, tu dois donc connaitre deux facteurs :

    l'image à uploader restera-t-elle à son emplacement d'origine?
    Si oui
    - alors dans ta base de données, tu crées un champs avec l'URL de l'image, en vérifiant périodiquement que le lien ne soit pas rompu.
    Sinon
    - alors tu crées deux répertoires dans ton dossier FTP.
    - le premier tu le nommes par exemple "upload_taille_reelle".
    - le deuxième, tu le nommes par exemple "upload_vignettes"
    - tu uploade l'image et effectue deux enregistrements :
    un enregistrement de l'image redimensionnée (la bibliothèque GD est là pour ça) dans le dossier "upload_vignettes"
    et un enregistrement de l'image dans sa taille originale dans le dossier "upload_taille_reelle"
    Fin de si

    Ensuite : l'image, une fois affichée à l'écran sous forme de vignette redimensionnée, tu l'entoures de balises <a> et tu fais pointer soit sur une nouvelle page web, soit ouvrir dans une pop-up via javascript, au choix.

    Vérifie bien la méthodologie et les différents scénarios possibles en étudiant ta charte de navigation : tu gagneras du temps et tu perdras moins de cheveux

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2008
    Messages : 299
    Par défaut
    Citation Envoyé par sgbd Voir le message
    Bonjour,

    première chose, tu dois te demander où sera stockée l'image que tu veux afficher dans sa taille originale.
    Au moment de l'upload, tu dois donc connaitre deux facteurs :

    l'image à uploader restera-t-elle à son emplacement d'origine?
    Si oui
    - alors dans ta base de données, tu crées un champs avec l'URL de l'image, en vérifiant périodiquement que le lien ne soit pas rompu.
    Sinon

    Ensuite : l'image, une fois affichée à l'écran sous forme de vignette redimensionnée, tu l'entoures de balises <a> et tu fais pointer soit sur une nouvelle page web, soit ouvrir dans une pop-up via javascript, au choix.

    Vérifie bien la méthodologie et les différents scénarios possibles en étudiant ta charte de navigation : tu gagneras du temps et tu perdras moins de cheveux
    Bonjour,

    Merci de votre réponse, de mon coté je préfère la première solution question de stockage (pour l'instant tous les test sont en local)
    Ci-joint une copie de a table Image avec les enregistrement.
    Je voudrais savoir comment récupérer l'URL de l'image dans ma base, sachan que chaque image appartient à une rubrique, une fois placé dans une rubrique l'image ne sera plus déplacé sauf suppréssion si nécesaire

    Merci de votre aide

    Runcafre91/974

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 21
    Par défaut
    Pour pouvoir récupérer l'URL de l'image (dans sa taille réelle, non redimensionnée), il faut que tu puisses en disposer quelque part.
    Pour cela, tu peux tout simplement créer un nouveau champs dans ta table où tu stockeras l'URL.
    Et ensuite, ça roule tout seul : admettons que tu nomme ce champs tout simplement imageURL, il te reste à faire un petit select :
    select imageURL from IMAGE where IMAGEid=$ta_variable;

    J'espère avoir bien compris ta question...

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2008
    Messages : 299
    Par défaut
    Citation Envoyé par sgbd Voir le message
    Pour pouvoir récupérer l'URL de l'image (dans sa taille réelle, non redimensionnée), il faut que tu puisses en disposer quelque part.
    Pour cela, tu peux tout simplement créer un nouveau champs dans ta table où tu stockeras l'URL.
    Et ensuite, ça roule tout seul : admettons que tu nomme ce champs tout simplement imageURL, il te reste à faire un petit select :
    select imageURL from IMAGE where IMAGEid=$ta_variable;

    J'espère avoir bien compris ta question...
    Re,

    Je suis d'accord qu'il faudra créer un nouveau champs dans ma table, mais l'URL je le récupère comment a partir de mon formulaire d'Upload.
    Exist'il une fonction pour cela.

    OU faudra t'il que je fasse une concaténation des variables dans mon formulaire voir ci-joint le résultat dans ma base de donnée

    le code que j'ai utilisé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    $FotoURL = "http://www.zioman/photos/$CategorieName/$FotoName";

    Merci de votre réponse

    Runcafre91/974

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 21
    Par défaut
    Le problème est que l'internaute qui uploade l'image via le formulaire fournit uniquement son chemin relatif.
    Tu as la possibilité de rajouter un champs dans le formulaire destiné à recevoir l'URL saisie directement par l'utilisateur, mais tu t'exposes a des problèmes de cohérence de données (erreurs de saisies par exemple). Et là, ça se corse pour établir une stratégie de vérification...
    L'idéal serait que tu héberges aussi les images non redimensionnées. Si tu fais tes tests en local, et que tu as peur de manquer d'espace disque, alors je te conseille de faire tes tests sur une dizaine de fichiers, ça ne mange pas de pain et ça te permet de faire des tests comme si tu étais en production sur ton serveur définitif en ligne

Discussions similaires

  1. [AJAX] Affichage dynamique dans une pop-up
    Par benoit-v dans le forum AJAX
    Réponses: 0
    Dernier message: 03/12/2014, 11h51
  2. Affichage des balises HTML et des photos dans la pop up
    Par youri89 dans le forum IGN API Géoportail
    Réponses: 1
    Dernier message: 04/09/2013, 17h07
  3. [Flash MX] Pb d'affichage dans un textfield
    Par dens63 dans le forum Flash
    Réponses: 2
    Dernier message: 04/11/2003, 10h49
  4. Problème a l'affichage dans la console (printf)
    Par PhoneKilleR dans le forum C
    Réponses: 21
    Dernier message: 23/09/2003, 17h21
  5. affichage dans le front buffers ne marche pas!
    Par jamal24 dans le forum OpenGL
    Réponses: 3
    Dernier message: 22/08/2003, 19h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo