par
totie » 03 mai 2007, 22:15
Bonjour,
Je travaille sur la réalisation d'un forum, et je me trouve confrontée à quelques problèmes (2) que je n'arrive pas à résoudre. Peut-être que votre savoir pourra m'aider...
Voici mon code pour insérer un nouveau message dans le forum:
//connexion au serveur
include("connexion.php");
//Connection à mysql et sélection de la base de données
$select = mysql_select_db($nomdelabase);
//récupération des valeurs des champs:
//Sujet:
$Sujet = $_POST['Sujet'] ;
//Contenu:
$Contenu = $_POST['Contenu'];
//Type de message:
$LibelleTypeMessage = $_POST['LibelleTypeMessage'];
//Qualifiant:
$LibelleQualifiant = $_POST['LibelleQualifiant'];
//Fichier Joint:
$FichierAttache = $_POST['FichierAttache'];
//Date de création du message:
$DateCreation=date("d/m/Y");
//Fichier Attaché:
$FichierAttache = $_FILES["file"]["name"];
// Login:
$Utilisateur_Login = $_SESSION['Login']; ;
//création de la requête SQL- insertion des champs dans la BDD
$requete = "INSERT INTO message (idMessage,Message_idMessage, Utilisateur_Login, Sujet, Contenu, FichierAttache, DateCreation) VALUES ('','$Message_idMessage','$Utilisateur_Login','$Sujet','$Contenu','$FichierAttache', now())" ;
// exécution de la requête : on envoie la requête au serveur qui nous retourne le résultat
$result = mysql_query($requete);
if ($result = mysql_query ($requete))
echo "Votre message est enregistré";
else
echo mysql_error();
//***Upload du fichier***//
if(isset($_FILES['FichierAttache']))
{
// parametres
unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg','pdf','doc');
$taille_max = 100000;
$dest_dossier = 'FichierAttache/';
// vérifications
if( !in_array( substr(strrchr($_FILES['FichierAttache']['name'], '.'), 1), $extensions_ok ) )
{
$erreur = 'Veuillez sélectionner un fichier de type png, gif, jpg, pfd, ou doc !';
}
elseif( file_exists($_FILES['FichierAttache']['tmp_name'])
and filesize($_FILES['FichierAttache']['tmp_name']) > $taille_max)
{
$erreur = 'Votre fichier doit faire moins de 500Ko !';
}
// copie du fichier
if(!isset($erreur))
{
$dest_fichier = basename($_FILES['FichierAttache']['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);
// copie du fichier
move_uploaded_file($_FILES['FichierAttache']['tmp_name'], $dest_dossier . $dest_fichier);
}
}
mysql_close(); // on ferme la connexion
}
Mes 2 problèmes sont les suivants:
1. Les données s'insèrent en double dans la base ( je ne comprends vraiment pas pourquoi)
2. Le nom du fichier joint ne s'insère pas dans la base.
Je sais que mon code est long, si c'est génant dites le moi et je vous donnerai la partie du code qui vous intéresse.
J'espère que vous pourrez m'aider, car je bloque là dessus depuis un moment.
Merci par avance!
Bonjour,
Je travaille sur la réalisation d'un forum, et je me trouve confrontée à quelques problèmes (2) que je n'arrive pas à résoudre. Peut-être que votre savoir pourra m'aider... O:)
Voici mon code pour insérer un nouveau message dans le forum:
[php]
//connexion au serveur
include("connexion.php");
//Connection à mysql et sélection de la base de données
$select = mysql_select_db($nomdelabase);
//récupération des valeurs des champs:
//Sujet:
$Sujet = $_POST['Sujet'] ;
//Contenu:
$Contenu = $_POST['Contenu'];
//Type de message:
$LibelleTypeMessage = $_POST['LibelleTypeMessage'];
//Qualifiant:
$LibelleQualifiant = $_POST['LibelleQualifiant'];
//Fichier Joint:
$FichierAttache = $_POST['FichierAttache'];
//Date de création du message:
$DateCreation=date("d/m/Y");
//Fichier Attaché:
$FichierAttache = $_FILES["file"]["name"];
// Login:
$Utilisateur_Login = $_SESSION['Login']; ;
//création de la requête SQL- insertion des champs dans la BDD
$requete = "INSERT INTO message (idMessage,Message_idMessage, Utilisateur_Login, Sujet, Contenu, FichierAttache, DateCreation) VALUES ('','$Message_idMessage','$Utilisateur_Login','$Sujet','$Contenu','$FichierAttache', now())" ;
// exécution de la requête : on envoie la requête au serveur qui nous retourne le résultat
$result = mysql_query($requete);
if ($result = mysql_query ($requete))
echo "Votre message est enregistré";
else
echo mysql_error();
//***Upload du fichier***//
if(isset($_FILES['FichierAttache']))
{
// parametres
unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg','pdf','doc');
$taille_max = 100000;
$dest_dossier = 'FichierAttache/';
// vérifications
if( !in_array( substr(strrchr($_FILES['FichierAttache']['name'], '.'), 1), $extensions_ok ) )
{
$erreur = 'Veuillez sélectionner un fichier de type png, gif, jpg, pfd, ou doc !';
}
elseif( file_exists($_FILES['FichierAttache']['tmp_name'])
and filesize($_FILES['FichierAttache']['tmp_name']) > $taille_max)
{
$erreur = 'Votre fichier doit faire moins de 500Ko !';
}
// copie du fichier
if(!isset($erreur))
{
$dest_fichier = basename($_FILES['FichierAttache']['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);
// copie du fichier
move_uploaded_file($_FILES['FichierAttache']['tmp_name'], $dest_dossier . $dest_fichier);
}
}
mysql_close(); // on ferme la connexion
}
[/php]
Mes 2 problèmes sont les suivants:
1. Les données s'insèrent en double dans la base ( je ne comprends vraiment pas pourquoi)
2. Le nom du fichier joint ne s'insère pas dans la base.
Je sais que mon code est long, si c'est génant dites le moi et je vous donnerai la partie du code qui vous intéresse.
J'espère que vous pourrez m'aider, car je bloque là dessus depuis un moment.#-o
Merci par avance!