comment faire un script de news avec image

Répondre
onec
le 04/01/2010 à 22:11
onec
slt je cherche un script de news qui contient un titre, un chapo,une image, un contenu,et un auteur.avec possibilité de suprimer la news dans l'espace admin.
Merci d'avance
rien
LA GLOBULE
le 05/01/2010 à 22:26
LA GLOBULE
Ben base toi sur le comment faire justement.
Tu peux ajouter des champs à ta table SQL pour y stocker ces informations.
onec
le 16/01/2010 à 10:34
onec
j'ai ajouté des champ image dans mon formulaire et dans ma base de données, mais l'image ne s'affiche pas, c'est just le lien qui parrait avec un carré a croix rouge.
rien
LA GLOBULE
le 16/01/2010 à 11:23
LA GLOBULE
Cela veut dire que ton image déclenche une erreur 404.
Vérifie le chemin que tu insères en base, ainsi que ton code HTML généré.
onec
le 17/01/2010 à 12:14
onec
non mon image n'est pas télécharger.
le le nom du lien vas dans le base de donnée et dans la page index.php
rien
moogli
le 18/01/2010 à 13:01
moogli
as tu un formulaire permettant l'upload ?

Peut tu nous faire un Wall de ton code ?

@+
Il en faut peu pour être heureux !!!!!
onec
le 26/01/2010 à 11:59
onec
voici mon script
cible.php
<?php


// on teste si le formulaire a été validé
if (isset($_POST['go']) && $_POST['go']=='Poster la news') {
// on se connecte à notre base
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db('lezero', $base);

// on teste la déclaration de nos variables
if (!isset($_POST['auteur']) || !isset($_POST['titre']) || !isset($_POST['news'])

|| !isset($_POST['image']))
{
$erreur = 'Les variables nécessaires au script ne sont pas définies.';
}

else {
if (empty($_POST['auteur']) || empty($_POST['titre']) ||

empty($_POST['news']) || empty($_POST['image']))
{
$erreur = '<u>Attention :</u> au moins un des champs est vide.';
}
// si tout est bon, on peut commencer l'insertion dans la base
else {
// lancement de la requête d'insertion
$sql = 'INSERT INTO news VALUES("",

"'.mysql_escape_string($_POST['auteur']).'",

"'.mysql_escape_string($_POST['titre']).
'", "'.date("Y-m-d H:i:s").'",

"'.mysql_escape_string($_POST['news']).'",

"'.mysql_escape_string($_POST['image']).'")';

// on lance la requête (mysql_query) et on impose un message d'erreur si la

requête ne se passe pas bien (or die)
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

// on ferme la connexion à la base de données
mysql_close();

// on redirige vers la page d'accueil du site (attention, cette redirection ne

fonctionne qui si vous avez placé cette page dans un répertoire à partir de la racine

du site). Si ce n'est pas le cas, veuillez entrer ici le bon chemin d'accès afin de

retomber sur la page d'accueil du site.
header('Location:index.php');
// on termine le script courant
exit();
}
}
}
// Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur


// Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
if (isset($_FILES['monfichier']) AND $_FILES['monfichier']['error'] == 0)

{
// Testons si l'extension est autorisée
$infosfichier = pathinfo($_FILES['monfichier']['name']);
$extension_upload = $infosfichier['extension'];
$extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
if (in_array($extension_upload, $extensions_autorisees))
{
// On peut valider le fichier et le stocker définitivement
move_uploaded_file($_FILES['monfichier']['tmp_name'], 'uploads/' .

basename($_FILES['monfichier']['name']));
echo "L'envoi a bien été effectué !";
}
}




?>


Merci d'utiliser le BB-Code
rien
moogli
le 26/01/2010 à 15:58
moogli
le code du formulaire ainsi que le code d'affichage des images sont nécessaire pour diagnostiquer.

@
Il en faut peu pour être heureux !!!!!
onec
le 29/01/2010 à 12:09
onec
voici mes code
d'abord insertion_new.php:
<?php 

<form action="cible.php" method="post" enctype="multipart/form-data" >
<table>
<tr>
<td> <span class="gras">Auteur :</span> </td>
<td> <input type="text" name="auteur" maxlength="15" size="25" value="<?php if (isset($_POST[ 'auteur'])) echo htmlentities(trim($_POST[ 'auteur'])); ?>">
</td>
</tr>
<tr>
<td> <span class="gras">Titre :</span> </td>
<td> <input type="text" name="titre" maxlength="45" size="45" value="<?php if (isset($_POST[ 'titre'])) echo htmlentities(trim($_POST[ 'titre'])); ?>">
</td>
</tr>
</tr>
<tr>
<td> <span class="gras">chapeau :</span> </td>
<td> <textarea name="chapo" cols="45" rows="2"><?php if (isset($_POST['chapo'])) echo htmlentities(trim($_POST['chapo'])); ?></textarea>
</td>
</tr>
<tr>
<td> <span class="gras">News :</span> </td>
<td> <textarea name="news" cols="55" rows="15"><?php if (isset($_POST['news'])) echo htmlentities(trim($_POST['news'])); ?></textarea>
</td>
<tr>
<td> inages</td>
<td> <input type="file" name="image" size="30"> </td>
</tr>
<tr>
<td> <span class="gras"><u>valider</u></span></td>
<td align="left"> <input type="submit" name="go" value="Poster la news">
</td>
</tr>
</table>
</form>

</body>
</html>
?>

et
cible.php:
<?php <?php

// on teste si le formulaire a été validé
if (isset($_POST['go']) && $_POST['go']=='Poster la news') {
// on se connecte à notre base
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db('lezero', $base);

// on teste la déclaration de nos variables
if (!isset($_POST['auteur']) || !isset($_POST['titre']) || !isset($_POST['chapo']) || !isset($_POST['news']) || !isset($_POST['image']))
{
$erreur = 'Les variables nécessaires au script ne sont pas définies.';
}

else {
if (empty($_POST['auteur']) || empty($_POST['titre']) ||empty($_POST['chapo']) || empty($_POST['news']) || empty($_POST['image']))
{
$erreur = '<u>Attention :</u> au moins un des champs est vide.';
}
// si tout est bon, on peut commencer l'insertion dans la base
else {
// lancement de la requête d'insertion
$sql = 'INSERT INTO news VALUES("", "'.mysql_escape_string($_POST['auteur']).'", "'.mysql_escape_string($_POST['titre']).'", "'.mysql_escape_string($_POST['']).'", "'.date("Y-m-d H:i:s").'", "'.mysql_escape_string($_POST['news']).'", "'.mysql_escape_string($_POST['image']).'")';

// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

// on ferme la connexion à la base de données
mysql_close();

// je teste si le fichier a bien été envoyé et s'il n'y a pas d'erreur
if (isset($_FILES['image']) AND $_FILES['image']['error'] == 0)

{
// je teste si l'extension est autorisée
$infosfichier = pathinfo($_FILES['image']['name']);
$extension_upload = $infosfichier['extension'];
$extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
if (in_array($extension_upload, $extensions_autorisees))
{
// On peut valider le fichier et le stocker définitivement
move_uploaded_file($_FILES['image']['tmp_name'], 'images/' . basename($_FILES['image']['name']));
echo "L'envoi a bien été effectué !";
}
}


// on redirige vers la page d'accueil du site (attention, cette redirection ne fonctionne qui si vous avez placé cette page dans un répertoire à partir de la racine du site). Si ce n'est pas le cas, veuillez entrer ici le bon chemin d'accès afin de retomber sur la page d'accueil du site.
header('Location:index.php');
// on termine le script courant
exit();
}
}
}

?>


?>
et voici ma teble:
<?php CREATE TABLE news ( 
id int(11) NOT NULL auto_increment,
auteur varchar(150) NOT NULL ,
titre varchar(225) NOT NULL,
date timestamp NOT NULL,
news text NOT NULL,
image blob NOT NULL,
PRIMARY KEY (id)
) TYPE=MyISAM;
?>

Merci de m'aider
rien
LA GLOBULE
le 29/01/2010 à 12:27
LA GLOBULE
Ton image tu veux la stocker en base ou sur le filesystem ?

Ta démarche n'est pas logique, car tu as une table permettant de stocker une image, tu fais bien un upload d'image, mais l'image, tu ne la colles pas en base, tu la colles sur le disque dur.

D'autre part, $_POST['image'] n'existe pas.

Et si tu veux stocker ton image en base de données et non directement sur le disque, il te faudra un fichier php pour afficher cette image (car cela demandera une requete SQL pour récupérer l'image).
Répondre
LoadingChargement en cours