[PHP] Html avec PHP

Résolu
Ca fait 3 jours que je prend la tete dessus et sans ca je sui completement bloqué...

Donc:

La 1er partie, c'est la connection et la requete:
<?php
//connection a la base
include("include/connection.php3");
$id= $_GET['lot'];
$sql ="SELECT * FROM appartement where id='".$id."'";
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
while ($data=mysql_fetch_array($req)


La 2eme partie redimentionne des images:
function redimage($img_src,$dst_w,$dst_h)
{
   // Lit les dimensions de l'image
   $size = GetImageSize($img_src); 
   $src_w = $size[0]; $src_h = $size[1];
   // Teste les dimensions tenant dans la zone
   $test_h = round(($dst_w / $src_w) * $src_h);
   $test_w = round(($dst_h / $src_h) * $src_w);
   // Si Height final non précisé (0)
   if(!$dst_h) $dst_h = $test_h;
   // Sinon si Width final non précisé (0)
   elseif(!$dst_w) $dst_w = $test_w;
   // Sinon teste quel redimensionnement tient dans la zone
   elseif($test_h>$dst_h) $dst_w = $test_w;
   else $dst_h = $test_h;

   // Affiche les dimensions optimales
   echo "WIDTH=".$dst_w. "HEIGHT=".$dst_h;
}
?>

<IMG SRC="upload/P_228.jpg" <? redimage("upload/P_228.jpg",100,100)?>>


Ces 2 code fonctionnes tres bien mais lorsque j'essais de les combiner c'est une catastrophe...

<IMG SRC="<? upload/'.$data['photo1'].' ?>" <? redimage('upload/'.$data['photo1'],100,100) ?>>


J'ai essaié toute un tas de choses et rien n'y fait...
Configuration: Windows XP
Firefox 2.0.0.6

9 réponses

  1. Salut c'est encore moi ;-)

    J'ai bein l'impression que tu te mélange les pinceaux avec les chaines et les variables !

    essaye comme ça :
    <?php
    print '<IMG SRC="./upload/'.$data['photo1'].'" '.redimage('upload/'.$data['photo1'].'',100,100).'>';
    ?>

    0
    1. Oui y a du mieux mais ca marche touours pas...

      Warning: getimagesize(upload/): failed to open stream: Permission denied in c:\program files\easyphp1-8\www\pragma\result.php on line 113

      Warning: Division by zero in c:\program files\easyphp1-8\www\pragma\result.php on line 116

      Warning: Division by zero in c:\program files\easyphp1-8\www\pragma\result.php on line 117
      WIDTH=100HEIGHT=0

      il me dit qu'il n'arrive pas a ouvir l'image ou qu'il ne la trouve pas car l'url est: "upload/" ca veut donc dir que $data['photo1'] est nul.

      donc j'ai essayé ca:

      {
      echo '<td style="" valign="top" ><img src="upload/'.$data['photo1'].'" alt="Lancement PragmA" width="336" height="200" style=""/></td>';
      }


      Et ca marche....

      Y a des jours ou on est blasé mais 3 d'affilé ca fait long...
      0
      1. alors retravaiilons un peu ta fonction comme ceci :

        function redimage($img_src,$dst_w,$dst_h)
        {
        // Lit les dimensions de l'image
        list($width, $height, $type, $attr) = getimagesize($monImage);
        $src_w = $width; $src_h = $height;
        // Teste les dimensions tenant dans la zone
        $test_h = round(($dst_w / $src_w) * $src_h);
        $test_w = round(($dst_h / $src_h) * $src_w);
        // Si Height final non précisé (0)
        if(!$dst_h) $dst_h = $test_h;
        // Sinon si Width final non précisé (0)
        elseif(!$dst_w) $dst_w = $test_w;
        // Sinon teste quel redimensionnement tient dans la zone
        elseif($test_h>$dst_h) $dst_w = $test_w;
        else $dst_h = $test_h;

        // Affiche les dimensions optimales
        print 'width="'.$dst_w.'" height="'.$dst_h.'"
        }

        ça devrait enlever les problème de division par 0.

        Après pour l'appelle de la fonction, je vois pas pourquoi $data['photo1'] serait vide.
        Essaye d'afficher le contenu de cette variable juste avant l'image pour voir si elle contient bien ce qu'il faut.
        Si elle est vide, il y a peut-être un problème sur ta requète.
        0
        1. Ok je vais essayer, mais mais dans ta fonction pourrais tu me dire a quoi est égal la variable: $monImage ?

          A vu d'oiel je dirais que c'est la meme valeur que: $data['photo1']

          Az
          0
          1. OUps erreur de ma part ;->

            la ligne exacte est : list($width, $height, $type, $attr) = getimagesize($img_src);
            0
            1. Il me dit qu'il y a une erreur sur cette ligne:

               print 'width="'.$dst_w.'" height="'.$dst_h.'"
              (manque un ' )

              J'ai donc essaié:
               print 'width="'.$dst_w.'" height="'.$dst_h.'"''
              (toujours une erreur)

              j'ai donc essaié ca:

               print width="'.$dst_w.'" height="'.$dst_h.'"
              (encore une erreur)

              Et puis j'ai fais ca:
              print "WIDTH=".$dst_w. "HEIGHT=".$dst_h;


              Ca marche mais on revient au point de départ.

              Soit:

              Warning: getimagesize(upload/): failed to open stream: Permission denied in c:\program files\easyphp1-8\www\pragma\result.php on line 115

              Warning: Division by zero in c:\program files\easyphp1-8\www\pragma\result.php on line 118

              Warning: Division by zero in c:\program files\easyphp1-8\www\pragma\result.php on line 119
              WIDTH=100HEIGHT=0

              J'ai effacé ca:
              <?php
              print '<IMG SRC="./upload/'.$data['photo1'].'" '.redimage('upload/'.$data['photo1'].'',100,100).'>';
              ?>

              Pour tester ma variable $data['photo1'] et j'ai donc remplacé par ca:
              echo '<img src="upload/'.$data['photo1'].'" width="336" height="200" style=""/>';


              Aprés la fonction "redimage" et la ca me dit qu'il y a une erreur sur cette ligne:
              function redimage($img_src,$dst_w,$dst_h)

              Ce qui semble normal.

              Mais j'ai essaié de la placer ca:
              echo '<img src="upload/'.$data['photo1'].'" width="336" height="200" style=""/>';

              Entre ma requette et la fonction "redimage" et la! La photo s'affiche... :/
              0
              1. Bon y a du nouveau...

                <?php
                //connection a la base
                include("include/connection.php3"); 
                $id= $_GET['lot'];
                $sql ="SELECT * FROM appartement where id='".$id."'"; 
                // on envoie la requête
                $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
                while ($data=mysql_fetch_array($req))
                
                $monimage= "upload/".$data['photo1'];
                
                function redimage($img_src,$dst_w,$dst_h) 
                {
                   // Lit les dimensions de l'image
                   $size = GetImageSize($img_src);  
                   $src_w = $size[0]; $src_h = $size[1];
                   // Teste les dimensions tenant dans la zone
                   $test_h = round(($dst_w / $src_w) * $src_h);
                   $test_w = round(($dst_h / $src_h) * $src_w);
                   // Si Height final non précisé (0)
                   if(!$dst_h) $dst_h = $test_h;
                   // Sinon si Width final non précisé (0)
                   elseif(!$dst_w) $dst_w = $test_w;
                   // Sinon teste quel redimensionnement tient dans la zone
                   elseif($test_h>$dst_h) $dst_w = $test_w;
                   else $dst_h = $test_h;
                
                   // Affiche les dimensions optimales
                   echo "WIDTH=".$dst_w." HEIGHT=".$dst_h;
                }
                ?>  
                <IMG SRC="<? $monimage?>" <? redimage($monimage,100,100)?>> 


                Avec ce code redimage fonctionne, mais pas image screen...

                On y est presque!!

                Az
                0
                1. Comme quoi faut pas désespérer ^^

                  Mais qu'appelles-tu "image screen" au juste ?
                  si c'est le SRC c'est source pas screen

                  donc essaye ça : <IMG SRC="<? print $monimage?>" <? redimage($monimage,100,100)?>>
                  0
                  1. Bravo a toi c'est ca!!!

                    Victoir au bout de 3 jours de combat acharné!!

                    Merci beaucoup

                    ;)

                    Le code final est le suivant:

                    <?php
                    //connection a la base
                    include("include/connection.php3"); 
                    $id= $_GET['lot'];
                    $sql ="SELECT * FROM appartement where id='".$id."'"; 
                    // on envoie la requête
                    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
                    while ($data=mysql_fetch_array($req))
                    
                    $monimage= "upload/".$data['photo1'];
                    
                    function redimage($img_src,$dst_w,$dst_h) 
                    {
                       // Lit les dimensions de l'image
                       $size = GetImageSize($img_src);  
                       $src_w = $size[0]; $src_h = $size[1];
                       // Teste les dimensions tenant dans la zone
                       $test_h = round(($dst_w / $src_w) * $src_h);
                       $test_w = round(($dst_h / $src_h) * $src_w);
                       // Si Height final non précisé (0)
                       if(!$dst_h) $dst_h = $test_h;
                       // Sinon si Width final non précisé (0)
                       elseif(!$dst_w) $dst_w = $test_w;
                       // Sinon teste quel redimensionnement tient dans la zone
                       elseif($test_h>$dst_h) $dst_w = $test_w;
                       else $dst_h = $test_h;
                    
                       // Affiche les dimensions optimales
                       echo "WIDTH=".$dst_w." HEIGHT=".$dst_h;
                    }
                    ?>  
                    <IMG SRC="<? print $monimage?>" <? redimage($monimage,100,100)?>>


                    Et il marche!!!!

                    Az
                    0