Vous n'êtes pas identifié(e).
Pages : 1
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
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:
code de la page qui enregistre la news dans la BDD:
//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:
$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
Pages : 1