Vous n'êtes pas identifié(e).
Pages :: 1
Bonjour à tous,
j'ai un soucis sur un formulaire d'insertion sql.
Je travail en local avec Mamp
Je n'y arrivais pas toute seule donc je l'ai réalisé avec les comportements serveur de dreamweaver cs5.
Le soucis est la récupération de la variable $nomFichier.
Mon
me retourne le message d'erreur "Column 'image' cannot be null"
le traitement :
$chemin = "../images/actu/" ;
if(!empty($_FILES["photo1"]["name"]))
{
//nom du fichier choisi:
$nomFichier = $_FILES["photo1"]["name"] ;
//nom temporaire sur le serveur:
$nomTemporaire = $_FILES["photo1"]["tmp_name"] ;
//type du fichier choisi:
$typeFichier = $_FILES["photo1"]["type"] ;
//poids en octets du fichier choisit:
$poidsFichier = $_FILES["photo1"]["size"] ;
//code de l'erreur si jamais il y en a une:
$codeErreur = $_FILES["photo1"]["error"] ;
if(copy($nomTemporaire, $chemin.$nomFichier))
echo("<br>l'upload 1 a réussi") ;
else
echo("<br>l'upload de la photo 1 a échoué") ;
}//fin if
else
{
echo("Vous n'avez pas choisit de fichier!!") ;
}//fin else
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"] == "form")) {
$insertSQL = sprintf("INSERT INTO actualites (titre, texte, image) VALUES (%s, %s, %s)",
GetSQLValueString($_POST['titre'], "text"),
GetSQLValueString($_POST['texte'], "text"),
GetSQLValueString($_POST['img'], "text"));
mysql_select_db($database_jeu, $jeu);
$Result1 = mysql_query($insertSQL, $jeu) or die(mysql_error());
$insertGoTo = "actualite.php?erreur=ok";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
?>
......
le formulaire
<form action="<?php echo $editFormAction; ?>" name="form" enctype="multipart/form-data" method="POST" >
<input type="hidden" name="MAX_FILE_SIZE" value="1000000">
<input type="hidden" name="image" value="<?php echo $nomFichier; ?>" />
<table width="60%" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td colspan="2">Les champs marqués * sont obligatoires</td>
</tr>
<tr>
<td>Titre *</td>
<td><div class="champ"><input name="titre" type="text" /></div></td>
</tr>
<tr>
<td>Contenu *</td>
<td><div class="champ"><textarea name="texte" cols="50" rows="10"></textarea></div></td>
</tr>
<tr>
<td>Image</td>
<td><input type="file" name="photo1"> </td>
</tr>
<tr>
<td colspan="2" align="center"><input name="Envoyer" type="submit" class="bt" value="Ajouter l'actualité" /></td></tr>
</table>
<input type="hidden" name="MM_insert" value="form" />
</form>
sinon au départ le fichier de traitement "add-actu.php" ressemblait à ça mais il me retourne une page blanche
if(copy($nomTemporaire, $chemin.$nomFichier))
echo("<br>l'upload 1 a réussi") ;
else
echo("<br>l'upload de la photo 1 a échoué") ;
}//fin if
else
{
echo("Vous n'avez pas choisit de fichier!!") ;
echo("<a href=\"./actualite.php\">Retour</a><br>") ;
}//fin else
if(empty($titre) OR empty($texte))
{
echo '<font color="red">Attention, tous les champs * doivent être remplis !</font>';
}
// Aucun champ n'est vide, on peut enregistrer dans la table
else
{
$sql = "INSERT INTO actualites (id,titre,texte,image,creation) VALUES ('','$titre','$texte', '$nomFichier', ''))";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
// on affiche le résultat pour le visiteur
echo '<b>Votre actu a été ajoutée.</b>';
mysql_close(); // on ferme la connexion
}} ?>
un œil avisé serait bienvenu pour résoudre ce problème
Hors ligne
Pages :: 1