Module extension PHP Upload sous CS5

Petit nouveau ! | 8 Messages

13 juil. 2011, 17:19

Bonjour à tous,
Voila je dois créer une page qui affiche les membres de l'organisme pour lequel je travail, et cette page doit être modifiable,
donc j'ai créer un formulaire

Code : Tout sélectionner

mysql_select_db($database_obvrly, $obvrly); $query_RsTeam = "SELECT * FROM team"; $RsTeam = mysql_query($query_RsTeam, $obvrly) or die(mysql_error()); $row_RsTeam = mysql_fetch_assoc($RsTeam); $totalRows_RsTeam = mysql_num_rows($RsTeam); ?> <!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"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Document sans titre</title> <link href="../_css/formulaire.css" rel="stylesheet" type="text/css" /> </head> <body> <form action="" method="post" enctype="multipart/form-data" name="equipe" id="equipe" class="formulaire"> <table width="60%" border="1" cellpadding="1" cellspacing="2px" class="formulaire"> <tr> <th width="52%" scope="row">NOM</th> <td width="48%"><input type="text" name="nom" id="nom" /></td> </tr> <tr> <th scope="row">PRENOM</th> <td><input type="text" name="prenom" id="prenom" /></td> </tr> <tr> <th scope="row">COURRIEL</th> <td><input type="text" name="mail" id="mail" /></td> </tr> <tr> <th scope="row">FONCTION</th> <td><input type="text" name="fonction" id="fonction" /></td> </tr> <tr> <th scope="row">DIPLOMES OBTENUS</th> <td><input type="text" name="diplome" id="diplome" /></td> </tr> <tr> <th scope="row">ETABLISSEMENT DE FORMATION</th> <td><input type="text" name="lieu" id="lieu" /></td> </tr> <tr> <th scope="row">PHOTO</th> <td><input type="file" name="photo" id="photo" /></td> </tr> <tr> <th scope="row"><input type="submit" name="Envoyer" id="Envoyer" value="Envoyer" /></th> <td><input name="hiddenField" type="hidden" id="hiddenField" value="membre" /></td> </tr> </table> </form> </body> </html> <?php mysql_free_result($RsTeam); ?>[color=#0000FF][/color]
mais j'obtiens une erreur après avoir insérer l'extension sephiroth de dreamweaver PHP Upload voilà ce que cela m'affiche:
Notice: Undefined index: photo in C:\wamp\www\obvrly\php_upload\index.php on line 18

Mon code php de la page index.php:

Code : Tout sélectionner

<?php // --------------------------------------------- // Pure PHP Upload version 1.1 // ------------------------------------------- if (phpversion() > "4.0.6") { $HTTP_POST_FILES = &$_FILES; } define("MAX_SIZE",2000000); define("DESTINATION_FOLDER", "php_upload/avatar"); define("no_error", "sucess.php"); define("yes_error", "error.php"); $_accepted_extensions_ = "jpg,png,gif"; if(strlen($_accepted_extensions_) > 0){ $_accepted_extensions_ = @explode(",",$_accepted_extensions_); } else { $_accepted_extensions_ = array(); } $_file_ = $HTTP_POST_FILES['photo']; if(is_uploaded_file($_file_['tmp_name']) && $HTTP_POST_FILES['photo']['error'] == 0){ $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(@copy($_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; } } mysql_select_db($database_obvrly, $obvrly); $query_RsTeam = "SELECT * FROM team"; $RsTeam = mysql_query($query_RsTeam, $obvrly) or die(mysql_error()); $row_RsTeam = mysql_fetch_assoc($RsTeam); $totalRows_RsTeam = mysql_num_rows($RsTeam); ?>
Je ne comprends pas pourquoi, j'ai vraiment besoin d'un coup de pouce! Merci

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

13 juil. 2011, 18:10

Le message d'erreur t'indique qu'à la ligne 18, tu fais appel à l'index "photo" d'un tableau associatif, alors que cet index n'a pas été défini :
$_file_ = $HTTP_POST_FILES['photo'];
Avant de faire appel à un index, il faut être sur que celui-ci existe bien, soit parce que tu l'as définis toi même, soit parce que tu as vérifié que l'utilisateur l'avait correctement renseigné.

En l'occurrence ici, tu obtiendras ce message d'avertissement chaque fois que l'utilisateur ne sélectionnera pas de fichier. Il convient donc de tester si cette information a bien été envoyée (ex : avec isset()) avant de l'utiliser.

En gros, tout le bloc de traitement du fichier (de la 18 et tout le traitement qui suit) ne devrait avoir lieu que si $HTTP_POST_FILES['photo'] existe bel et bien :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 8 Messages

18 juil. 2011, 17:23

Salut Ryle,
J'en suis toujours au meme point !
Euh Je suis vraiment pas callé en php...
Pour mon cas il faut que je fasse ca :
if (isset($HTTP_POST_FILES['photo'])) {
  $editFormAction .= "?" . htmlentities$HTTP_POST_FILES['photo']);
} 
???