PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 Re : Forum Général PHP » insérer images dans une news » 05-03-2011 18:32:46

salut, en effet ce code, a été créer pour un tuto, car je débute le php, et celui ci est copié/collé pour être sûr qu'il n'y a pas d'erreur dans le code avant de continuer la création du blog.
Ok je vais voir en créant une table pour les images, en espérant y voir plus clair car j'arrive pas trop à visualisé comment dans le questionnaire de création de news, je peux faire en sorte d'insérer des images au fur et à mesure.

merci d'avoir répondu

#2 Forum Général PHP » insérer images dans une news » 05-03-2011 18:32:46

leberger
Réponses : 2

bonjour à tous,
je me lance dans la création d'un blog, j'aimerais pouvoir insérer des images dans les news que je poste.
Pour l'instant j'ai réussi à faire en sorte d'en insérer une en début de news, mais j'aimerais savoir si il est possible en PHP d'en insérer plusieurs au milieu de ma news. Pour être plus clair, avoir la possibilité d'alterner entre texte et images comme dans un forum.

voici le code de création de la news:

<fieldset> 
                  <form action="news_post.php" method="post" enctype="multipart/form-data">
                                        <p>
                        <a>Votre nom :</a><br/>
                          <input type="text" name="auteur" /><br/>
                      </p>
                      <p>
                        <a>Le titre :</a><br/>
                          <input type="text" name="titre" /><br/>
                      </p>
                      <a><label for="image">Choisissez une image :</label><br/></a>
                      <input type="file" name="image" id="image" />(Taille max : 2 Mo)<br />
                      <p>
                        <a>Votre news :</a><br/>
                          <textarea name="contenu" rows="8" cols="68"></textarea><br/>
                      </p>
                      <input type="submit" value="Valider" />
                  </form>
              </fieldset>

code de la page qui enregistre la news dans la BDD:


<?php

//Vérification de l'image :
if (!empty($_FILES['image']['size']))
{
        //On définit les variables :
        $maxsize = 2097152  ; //Poids de l'image
        $maxwidth = 1000; //Largeur de l'image
        $maxheight = 1000; //Longueur de l'image
        $extensions_valides = array( 'jpg' , 'jpeg' , 'gif' , 'png', 'bmp' ); //Liste des extensions valides
       
        if ($_FILES['image']['error'] > 0)
        {
                $image_erreur = "Erreur lors du tranfsert de l'image : ";
        }
        if ($_FILES['image']['size'] > $maxsize)
        {
                $i++;
                $image_erreur1 = "Le fichier est trop gros : (<strong>".$_FILES['image']['size']." Octets</strong>    contre <strong>".$maxsize." Octets</strong>)";
        }

        $image_sizes = getimagesize($_FILES['image']['tmp_name']);
        if ($image_sizes[0] > $maxwidth OR $image_sizes[1] > $maxheight)
        {
                $i++;
                $image_erreur2 = "Image trop large ou trop longue : (<strong>".$image_sizes[0]."x".$image_sizes[1]."</strong> contre <strong>".$maxwidth."x".$maxheight."</strong>)";
        }
       
        $extension_upload = strtolower(substr(  strrchr($_FILES['image']['name'], '.')  ,1));
        if (!in_array($extension_upload,$extensions_valides) )
        {
                $i++;
                $image_erreur3 = "Extension de l'image incorrecte";
        }
}

 if (isset($_FILES['image']['size']))
        {
                //On déplace l'image
                $image = time();
                $nomimage = str_replace(' ','',$image).".".$extension_upload;
                $image = "images/".str_replace(' ','',$image).".".$extension_upload;
                move_uploaded_file($_FILES['image']['tmp_name'],$image);
        }

if (isset($_POST['auteur'], $_POST['titre'], $nomimage, $_POST['contenu']))
// Insertion du message à l'aide d'une requête préparée
  {
    $req = $bdd->prepare('INSERT INTO billets(auteur, titre, image, contenu, date_creation) VALUES(:aut, :titre, :nomcorrect, :contenu, NOW())');
    $req->execute(array(aut => $_POST['auteur'],
              titre => $_POST['titre'],
              nomcorrect => $nomimage,
              contenu=> $_POST['contenu']));
   
    echo 'votre news a bien été prise en compte <br/>';
    echo 'retournez à la page d\'index : <a href="index.php">ici</a>';
  }
else
  {
    echo 'votre news n\'a pas pu être prise en compte !';
    echo 'retournez à la page de news : <a href="news.php">ici</a>';
  }
 
$req->closeCursor();

?>
 

Et pour finir, le code qui affiche ma news:


<?php
if(empty($_GET['page'])) // utilisateur vient d'arriver, donc sur la premiere page 1
    $_GET['page'] = 1;

$req = $bdd->query('SELECT COUNT(*) AS billets_totaux FROM billets'); // On récupère le nombre de billet total de la table
$donnee = $req->fetch();
 
$billets_totaux = $donnee['billets_totaux']; // changement nom variable
$req->closeCursor();
 
$billets_par_page = 5; //  nombre de billet par page :)
         
$nombre_page = ceil($billets_totaux / $billets_par_page);
      // arrondi au supérieur
     
$limite = ($billets_par_page * $_GET['page']) - 5; //établir l'entrée a partir de laquelle on va lire les billets.
   
$req = $bdd->query('SELECT id, auteur, titre, image, contenu, DATE_FORMAT(date_creation, \'%d/%m/%Y à %Hh%i\')
          AS date_creation_fr FROM billets ORDER BY date_creation DESC LIMIT '
. $limite . ',5');
if($_GET['page'] >= 1 AND $_GET['page'] <= $nombre_page) //vérifier le $_GET -> Never trust user input ;)
  {
    while ($donnees = $req->fetch())
      {
       
  ?>
        <div id="NEWS">
          <!-- titre-->          
              <div class="titre_haut"></div>
            <div class="titre_fond">
                <div class="texte_titre">
                    <?php echo htmlspecialchars($donnees['titre']); ?>
                    <strong><em>par <?php echo $donnees['auteur'];?></em></strong>
                      <br/>
                    <em>le <?php echo $donnees['date_creation_fr']; ?></em>                  
                </div>
            </div>               
          <div class="titre_bas"></div>
          <!--titre-->
                   
          <!-- contenu -->
         
          <div class="contenu_haut"></div>
          <div class="contenu_fond">
            <div class="texte">
              <div class="contenu_texte">
                   
            <?php          
                    // On affiche le contenu du billet
                    echo '<img src="images/'.$donnees['image'].'" alt="1" /> <br/>';                   
                    echo nl2br(htmlspecialchars($donnees['contenu']));
                   
                  $req2 = $bdd->query('SELECT COUNT(*) AS nb_commentaires FROM commentaires WHERE id_billet= '.$donnees['id'].''); // On récupère le nombre de coms total de la table
                  $donnee = $req2->fetch();
                   
                  $nb_commentaires = $donnee['nb_commentaires']; // changement nom variable
                 
            ?>
                    <br />
                   
                  <div class="coms">
                    <em>
                      <a href="commentaires.php?billet=<?php echo $donnees['id']; ?>">
                        <?php echo $nb_commentaires;
                          if ($nb_commentaires < 2)
                            {
                              echo ' commentaire';
                            }
                          else
                            {
                              echo ' commentaires';
                            }
                        ?>
                      </a>
                    </em>
                  </div>
                   
              </div>  

            </div></div>
          <div class="contenu_bas"></div>        
        </div>
          <!-- contenu --> 
       
  <?php
        $req2->closeCursor();
      }
    $req->closeCursor();
  }
else // Ce else me permet d'afficher un message au cas ou le visiteur ai entré dans l'URL un numero de page invalide.
  echo 'Page introuvable';
?>

  <div id="nb_pages">
  <?php      

  for($i = 1; $i <= $nombre_page; $i++) // cette boucle for va permettre d'afficher le nombre de lien nécessaire pour pouvoir visiter toute les pages créées
    {
      echo '<a href="index.php?page=' . $i . '">' . $i . '</a> '; // ET donc on affiche un lien pour chaque numéro de page
    }
  echo '</p>';
  ?>
  </div>

</div>


 

Voilà désolé de faire aussi long, mais je pense que ça peut aider !

merci

Pied de page des forums

Propulsé par FluxBB