Pb upload php

Petit nouveau ! | 8 Messages

18 juil. 2011, 16:25

Bonjour à tous,
Je travaille en local sur la création d'un site.
Je suis en train de créer la partie admin, et je dois inclure la possibilité d'upload des fichiers et des images a partir d'un formulaire.
J'ai créer mon module d'upload, lorsque je test mon module, aucune erreur et mon message de confirmation d'upload réussie apparait, cependant rien dans mon dossier où sont dirigées les uploads ...
Quelqu'un aurait une idée ? je bosse avec wamp dreamweaver, CS5.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

18 juil. 2011, 16:37

salut,

y a t il un code qui va avec ça ? (car sans on ne peux pas t'aider ;)).

est ce que le niveau d'erreur est au maximum ? (pour le dev c'est bien ;)). pour t'en assurer ajoute : error_reporting(-1); en 1ère ligne de ton fichier.

Pour la suite nous faut du code sinon on spécule et malheureusement Mme Soleil n'est plus parmi nous :mrgreen:


@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 8 Messages

18 juil. 2011, 16:46

Salut merci de m'aider! bon je te mets le code php:
<?php error_reporting(-1)?>
<?php

//	---------------------------------------------
//	Pure PHP Upload version 1.1
//	-------------------------------------------
if (phpversion() > "4.0.6") {
	
	$HTTP_POST_FILES = &$_FILES;
}
define("MAX_SIZE",0);
define("DESTINATION_FOLDER", "php_upload/avatar");
define("no_error", "sucess.php");
define("yes_error", "error.php");
$_accepted_extensions_ = "pdf,doc,docx,png,jpg";
if(strlen($_accepted_extensions_) > 0){
	$_accepted_extensions_ = @explode(",",$_accepted_extensions_);
} else {
	$_accepted_extensions_ = array();
}
/*	modify */
if(!empty($HTTP_POST_FILES['dl_fichier'])){
	if(is_uploaded_file($HTTP_POST_FILES['dl_fichier']['tmp_name']) && $HTTP_POST_FILES['dl_fichier']['error'] == 0){
		$_file_ = $HTTP_POST_FILES['dl_fichier'];
		$errStr = "";
		$_name_ = $_file_['name'];
		$_type_ = $_file_['type'];
		$_tmp_name_ = $_file_['tmp_name'];
		$_size_ = $_file_['size'];
		if($_size_ > MAX_SIZE && MAX_SIZE > 0){
			$errStr = "File troppo pesante";
		}
		$_ext_ = explode(".", $_name_);
		$_ext_ = strtolower($_ext_[count($_ext_)-1]);
		if(!in_array($_ext_, $_accepted_extensions_) && count($_accepted_extensions_) > 0){
			$errStr = "Estensione non valida";
		}
		if(!is_dir(DESTINATION_FOLDER) && is_writeable(DESTINATION_FOLDER)){
			$errStr = "Cartella di destinazione non valida";
		}
		if(empty($errStr)){
			if(@move_uploaded_file($_tmp_name_,DESTINATION_FOLDER . "/" . $_name_)){
				header("Location: " . no_error);
			} else {
				header("Location: " . yes_error);
			}
		} else {
			header("Location: " . yes_error);
		}
	}
}
?>
<?php require_once('../Connections/obvrly.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"] == "bulletin")) {
  $insertSQL = sprintf("INSERT INTO download (dl_id, dl_titre, dl_fichier, dl_online) VALUES (%s, %s, '$_name_', %s)",
                       GetSQLValueString($_POST['dl_id'], "int"),
                       GetSQLValueString($_POST['dl_titre'], "text"),
                       GetSQLValueString($_POST['dl_online'], "int"));
					   

  mysql_select_db($database_obvrly, $obvrly);
  $Result1 = mysql_query($insertSQL, $obvrly) or die(mysql_error());

  $insertGoTo = "sucess.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $insertGoTo));
}
?>
Et voilà le code HTML de mon formulaire:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
	   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">	
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<div id="download">
                  <form action="<?php echo $editFormAction; ?>" method="post" enctype="multipart/form-data" id="bulletin">
                    <table>
                      <tr valign="baseline">
                        <td align="right">Titre du bulletin</td>
                        <td><input type="text" name="dl_titre" value="" size="32" /></td>
                      </tr>
                      <tr valign="baseline">
                        <td align="right">Fichier </td>
                        <td><input type="file" name="dl_fichier" value="" size="32" /></td>
                      </tr>
                      <tr valign="baseline">
                        <td align="right">&nbsp;</td>
                        <td><input type="submit" value="Insérer un enregistrement" /></td>
                      </tr>
                    </table>
                    <input type="hidden" name="dl_id" value="" />
                    <input type="hidden" name="dl_online" value="" />
                    <input type="hidden" name="MM_insert" value="bulletin" />
                  </form>
                  <p>&nbsp;</p>
</div>			
Je sais pas si c'est comme cela qu'il fallait ajouter la ligne de code que tu m'as donné ? au pire j'ai pas d'erreur comme ca mais toujours le meme probleme!

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

18 juil. 2011, 21:50

commence par virer les @ devant les fonctions, ça permet de ne pas afficher les messages d'erreurs, c'est pas a faire quand on développe :)
d'ailleurs je pense que c'est pas a faire du tout, s'il y a des erreurs faut les corriger pas les cacher :)

commente les header afin de voir les messages d'erreurs plutôt que d'aller sur une autre page.

quand au code y a tout un tas de truc inutile et (désolé) mais un peu bête, tel
$_accepted_extensions_ = "pdf,doc,docx,png,jpg";
if(strlen($_accepted_extensions_) > 0){
$_accepted_extensions_ = @explode(",",$_accepted_extensions_);
} else {
$_accepted_extensions_ = array();
}

autant définir un tableau directement :!:

les multiples copies de variable c'est pareil, y a un tableau existant au départ autant l'utiliser ;)

$_ext_ = explode(".", $_name_);
$_ext_ = strtolower($_ext_[count($_ext_)-1]);
ça c'est réalisable avec les fonctions de chaine de caractère (substr etc).

c'est a part, mais est tu l'auteur du script ?

@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 8 Messages

19 juil. 2011, 06:04

Salut moogli,
tout d'abord nan je suis pas l'auteur du script, c le script du module php upload de dream :)
Puis je suis passer par ce script car le php et moi on fait deux, d'ailleur je crois pas avoir compris grand chose a ton mess :(
mais c cool d'essayer de me dépatouiller! je suis un peu obliger de m'y mettre pour le travail mais je comprend pas vraiment tout!
je v déjà enlever les"@" mais pour ce qui est du tableau ouille! je crois pas avoir les connaissances!

@+