Se connecter / S'enregistrer
Votre question

insérer image dans news (php)

Tags :
  • Php
  • Programmation
Dernière réponse : dans Programmation
8 Février 2006 09:59:42

Salut,
Voici mon code pour insérer une image dans une news (optimisation perso):

<?php

require ("actualite_config.php");

$titre=$_POST['titre'];
$contenu=$_POST['contenu'];
$nom_img=$_POST['nom_img'];

$titre=trim($titre);
$contenu=trim($contenu);
$nom_img=trim($nom_img);
//on affecte à chaque caractère spéciaux un anti slashe
$titre=addslashes($titre);
$contenu=addslashes($contenu);
$nom_img=addslashes($nom_img);

$chemin = "./images/".$nom_img;

if (empty($titre) && empty($contenu)){
print("<p align=\"center\" ><font size=\"5\">Veuillez compléter les champs! </font></p>");
print("<p align=\"center\"><font size=\"4\"><a href=\"javascript:history.back()\">Retour</a></a></font></p>");}
elseif (empty($titre)){
print("<p align=\"center\" ><font size=\"5\">Veuillez indiquer un titre! </font></p>");
print("<p align=\"center\"><font size=\"4\"><a href=\"javascript:history.back()\">Retour</a></a></font></p>");}
elseif ($nom_img==''){
$nom_img='aucune';
$db = mysql_connect("$dv_host", "$dv_login", "$dv_pass");
mysql_select_db("$dv_base",$db);

$date = time();

$query = "INSERT INTO actualite VALUES ('','$titre','$contenu','$date','$nom_img')";
$result = mysql_query($query);

mysql_close($db);
header("Location: actualite_aff.php");}
else{
//Copie de l'image dans le repertoire image et enregistrement du nom dans la base
// Taille maximum
$MAX_FILE_SIZE = 30000;
// Tableau array des différents types
$allowed_types = array("image/bmp", "image/gif", "image/pjpeg", "image/jpeg", "image/jpg", "multipart/x-zip");

// Variables récupérée par methode POST du formulaires
$fname = $HTTP_POST_FILES['img']['name'];
$ftype = $HTTP_POST_FILES['img']['type'];
$fsize = $HTTP_POST_FILES['img']['size'];
$ftmp = $HTTP_POST_FILES['img']['tmp_name'];
echo ("$fname");
echo ("$ftype");
echo ("$fsize");
echo ("$ftmp");

// Diverses test afin de savoir si :
// Le format de fichier correspond à notre tableau array
if(!in_array($ftype, $allowed_types)){$error = 1;}

//La taille du fichier n'est pas dépassée
if($fsize > $MAX_FILE_SIZE){$error = 2;}

//Si tout va bien, c'est bien déroulé
if(copy($ftmp,''.$chemin.''.$fname.'')) {$error = 0;}

//Switch servant simplement à la gestion des erreures
switch($error){
case'0':
echo("Fichier correctement envoyé.");
break;
case'1':
echo("Format de fichier incorrecte.");
break;
case'2':
echo("Fichier trop volumineux.");
break;
}
$db = mysql_connect("$dv_host", "$dv_login", "$dv_pass");
mysql_select_db("$dv_base",$db);

$date = time();

$query = "INSERT INTO travaux VALUES ('','$titre','$contenu','$date','$nom_img')";
$result = mysql_query($query);

mysql_close($db);
header("Location: actualite_aff.php");}

et voici les erreurs quand j'execute la page :
Notice: Undefined index: img in c:\program files\easyphp1-8\www\intranet_27_janvier\infos diverses\actualites\actualite_insert.php on line 45 (46,47,48)
Warning: Cannot modify header information - headers already sent by ...on line 85

impossible de trouver une solution
merci d'avance pour votre aide
:-( :-( ;-)

Autres pages sur : inserer image news php

8 Février 2006 10:07:02

ce n'est plus $HTTP_POST_FILES mais $_FILES

phpfrance.com > tutorial > upload

et un header() doit se placer toujours avant un affichage renvoyé par le naviguateur, donc avant echo, print, etc
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS