sarc, le 03 décembre 2009 - 17:29, dit :
Bonjour,
Pour rajouter à ce qu'a dit Captain, je donne un petit lien au passage. C'est une classe du doux nom de
upload et qui facilite vachement le redimensionnement et upload d'une image... J'aime beaucoup !
Pour le souci que tu rencontres, on va avoir du mal à t'aider sans quelques informations supplémentaires :
- Erreur rencontrée ? Message ou pas ?
- Arrives-tu à rentrer d'autres informations dans ta base de données ?
- Code que tu as écrit...
Bonjour sarc,
Pour te raconter la petite histoire, j'ai d'abord créé un formulaire d'"inscription" il y a quelques temps, dont les données sont enregistrées dans ma base, tout fonctionnait très bien jusqu'à maintenant. Mais j'ai absolument besoin d'ajouter un champ de fichier... et là ça ne fonctionne plus.
Voici mes messages d'erreur quand je teste l'envoi du formulaire : Notice: Undefined index: photo in C:\...\inscription.php on line 55
Column 'photo' cannot be null
Et du coup aucune donnée ne s'enregistre dans la base ni dans le dossier de destination de la photo.
Voici le code php qui gère l'enregistrement sur la base et dans le dossier images :
<?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"] == "titre")) {
$insertSQL = sprintf("INSERT INTO profil ( nom, prenom, photo, ) VALUES (%s, %s, %s, )",
GetSQLValueString($_POST['nom'], "text"),
GetSQLValueString($_POST['prenom'], "text"),
GetSQLValueString($_POST['photo'], "text"),
mysql_select_db($database_ConnexionInscription, $ConnexionInscription);
$Result1 = mysql_query($insertSQL, $ConnexionInscription) or die(mysql_error());
$insertGoTo = "/.../login.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
if(isset($_FILES['photo']))
{
// params
unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
$taille_max = 1000000;
$dest_dossier = '/.../images/';
// vérifications
if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) )
{
$erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg !';
}
elseif( file_exists($_FILES['photo']['tmp_name'])
and filesize($_FILES['photo']['tmp_name']) > $taille_max)
{
$erreur = 'Votre fichier doit faire moins de 1Mo !';
}
// copie du fichier
if(!isset($erreur))
{
$dest_fichier = basename($_FILES['photo']['name']);
// formatage nom fichier
// enlever les accents
$dest_fichier = strtr($dest_fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
// remplacer les caracteres autres que lettres, chiffres et point par _
$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
//enregistrement dans la base
mysql_select_db($database_ConnexionInscription, $ConnexionInscription);
$insertProfil = "INSERT INTO profil (photo) VALUES ('$photo_name')";
mysql_query($insertProfil, $ConnexionInscription) or die(mysql_error());
// copie du fichier
move_uploaded_file($_FILES['photo']['tmp_name'] ,$dest_fichier.$_FILES['photo']['name' ]);
}
}
?>
Merci pour votre aide!