Récupération valeur d'un input file upload

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Récupération valeur d'un input file upload

Re: Récupération valeur d'un input file upload

par tbakonadi » 10 févr. 2013, 22:10

Bonjour,

Merci j'ai donc configuré php.ini et je vois mon erreur qui apparement est la seule : l'index n'existe pas mais je ne vois exactement ce qu'il y a.

Re: Récupération valeur d'un input file upload

par moogli » 10 févr. 2013, 00:41

Cet index n'existe pas ...

Configure ton rapport d'erreur sur E_ALL tu auras des surprises :mrgreen:

Des exemples d'upload dans la doc de php http://www.php.net/manual/fr/features.f ... method.php

@+

Re: Récupération valeur d'un input file upload

par tbakonadi » 09 févr. 2013, 23:21

Merci j'ai essayé de cette façon sans résultat:
<?php
// ---------------------------------------------
// Pure PHP Upload version 1.1
// -------------------------------------------
if (phpversion() > "4.0.6") {
 $HTTP_POST_FILES = &$_FILES;
}
define("MAX_SIZE",300000);
define("DESTINATION_FOLDER", "../upload");
define("no_error", "index.php");
define("yes_error", "erreur_img.php");
$_accepted_extensions_ = "jpg,bmp,gif,jpeg,png";
if(strlen($_accepted_extensions_) > 0){
 $_accepted_extensions_ = @explode(",",$_accepted_extensions_);
} else {
 $_accepted_extensions_ = array();
}
$_file_ = $HTTP_POST_FILES['news_image'];
if(is_uploaded_file($_file_['tmp_name']) && $HTTP_POST_FILES['news_image']['error'] == 0){
 $errStr = "";
 $news_image = $_POST['news_image']; 
 if((is_uploaded_file($_file_['tmp_name']) && $HTTP_POST_FILES['news_image']['error'] == 0)){ 
 $_name_ = $_file_['name'];
 $_type_ = $_file_['type'];
 $_tmp_name_ = $_file_['tmp_name'];
 $_size_ = $_file_['size'];
 if($_size_ > MAX_SIZE && MAX_SIZE > 0){
 $errStr = "Fichier trop lourd";
 }
 $_ext_ = explode(".", $_name_);
 $_ext_ = strtolower($_ext_[count($_ext_)-1]);
 if(!in_array($_ext_, $_accepted_extensions_) && count($_accepted_extensions_) > 0){
 $errStr = "Extension non valide";
 }
 if(!is_dir(DESTINATION_FOLDER) && is_writeable(DESTINATION_FOLDER)){
 $errStr = "Dossier de destination non valide";
 }
 if(empty($errStr)){
 if(@copy($_tmp_name_,DESTINATION_FOLDER . "/" . $_name_)){
 header("Location: " . no_error);
 } else {
 header("Location: " . yes_error);
 }
 } else {
 header("Location: " . yes_error);
 }
}
?>
<?php require_once('../Connections/ma_connexion.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
 if (PHP_VERSION < 6) {
 $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
 }
 $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
 switch ($theType) {
 case "text":
 $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
 break; 
 case "long":
 case "int":
 $theValue = ($theValue != "") ? intval($theValue) : "NULL";
 break;
 case "double":
 $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
 break;
 case "date":
 $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
 break;
 case "defined":
 $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
 break;
 }
 return $theValue;
}
}
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
 $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "news_envoi")) {
 $insertSQL = sprintf("INSERT INTO news (news_titre, news_image, news_texte, news_lien, news_etat) VALUES (%s, %s, %s, %s, %s)",
 GetSQLValueString($_POST['news_titre'], "text"),
 [b]GetSQLValueString($_POST['_name_'], "text"),[/b]
 GetSQLValueString($_POST['news_texte'], "text"),
 GetSQLValueString($_POST['news_lien'], "text"),
 GetSQLValueString(isset($_POST['news_etat']) ? "true" : "", "defined","1","0"));
 mysql_select_db($database_ma_connexion, $ma_connexion);
 $Result1 = mysql_query($insertSQL, $ma_connexion) or die(mysql_error());

 $insertGoTo = "index.php";
 if (isset($_SERVER['QUERY_STRING'])) {
 $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
 $insertGoTo .= $_SERVER['QUERY_STRING'];
 }
 header(sprintf("Location: %s", $insertGoTo));
}
}
mysql_select_db($database_ma_connexion, $ma_connexion);
$query_news = "SELECT * FROM news ORDER BY news_date DESC";
$news = mysql_query($query_news, $ma_connexion) or die(mysql_error());
$row_news = mysql_fetch_assoc($news);
$totalRows_news = mysql_num_rows($news);
?>

Re: Récupération valeur d'un input file upload

par AB » 09 févr. 2013, 18:37

Apparemment le nom de ton image se trouve dans la variable $_name_
et non pas $_POST['news_image']

La prochaine fois utilises les balises php pour entourer ton code, ce sera plus lisible :wink:

Récupération valeur d'un input file upload

par tbakonadi » 09 févr. 2013, 17:05

Bonjour,
J'ai utilisé l'extension PHP UPLOAD avec dreamweaver 5.5 et le chargement de l'image fonctionne bien mais, je n'arrive pas à enregistrer (récupérer) la valeur du input file dans ma table et cela, sans retour d'erreur. En fait j'ai juste utilisé le comportement serveur que j'ai ajouté à mon formulaire et modifié de cette façon:
<?php
//	---------------------------------------------
//	Pure PHP Upload version 1.1
//	-------------------------------------------
if (phpversion() > "4.0.6") {
	$HTTP_POST_FILES = &$_FILES;
}
define("MAX_SIZE",300000);
define("DESTINATION_FOLDER", "../upload");
define("no_error", "index.php");
define("yes_error", "erreur_img.php");
$_accepted_extensions_ = "jpg,bmp,gif,jpeg,png";
if(strlen($_accepted_extensions_) > 0){
	$_accepted_extensions_ = @explode(",",$_accepted_extensions_);
} else {
	$_accepted_extensions_ = array();
}
$_file_ = $HTTP_POST_FILES['news_image'];
if(is_uploaded_file($_file_['tmp_name']) && $HTTP_POST_FILES['news_image']['error'] == 0){
	$errStr = "";
	$news_image = $_POST['news_image']; 
    if((is_uploaded_file($_file_['tmp_name']) && $HTTP_POST_FILES['news_image']['error'] == 0)){ 
	$_name_ = $_file_['name'];
	$_type_ = $_file_['type'];
	$_tmp_name_ = $_file_['tmp_name'];
	$_size_ = $_file_['size'];
	if($_size_ > MAX_SIZE && MAX_SIZE > 0){
		$errStr = "Fichier trop lourd";
	}
	$_ext_ = explode(".", $_name_);
	$_ext_ = strtolower($_ext_[count($_ext_)-1]);
	if(!in_array($_ext_, $_accepted_extensions_) && count($_accepted_extensions_) > 0){
		$errStr = "Extension non valide";
	}
	if(!is_dir(DESTINATION_FOLDER) && is_writeable(DESTINATION_FOLDER)){
		$errStr = "Dossier de destination non valide";
	}
	if(empty($errStr)){
		if(@copy($_tmp_name_,DESTINATION_FOLDER . "/" . $_name_)){
			header("Location: " . no_error);
		} else {
			header("Location: " . yes_error);
		}
	} else {
		header("Location: " . yes_error);
	}
}
?>
<?php require_once('../Connections/ma_connexion.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }
  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "news_envoi")) {
  $insertSQL = sprintf("INSERT INTO news (news_titre, news_image, news_texte, news_lien, news_etat) VALUES (%s, %s, %s, %s, %s)",
                       GetSQLValueString($_POST['news_titre'], "text"),
                       GetSQLValueString($_POST['news_image'], "text"),
                       GetSQLValueString($_POST['news_texte'], "text"),
                       GetSQLValueString($_POST['news_lien'], "text"),
                       GetSQLValueString(isset($_POST['news_etat']) ? "true" : "", "defined","1","0"));
  mysql_select_db($database_ma_connexion, $ma_connexion);
  $Result1 = mysql_query($insertSQL, $ma_connexion) or die(mysql_error());

  $insertGoTo = "index.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $insertGoTo));
}
}
mysql_select_db($database_ma_connexion, $ma_connexion);
$query_news = "SELECT * FROM news ORDER BY news_date DESC";
$news = mysql_query($query_news, $ma_connexion) or die(mysql_error());
$row_news = mysql_fetch_assoc($news);
$totalRows_news = mysql_num_rows($news);
?>
Seul le chargement de l'image fonctionne. Je suis allé voir en ligne et suis tombé sur ce site. Je vous remercie de votre aide.