Probléme de chaine
Résolu
platypus69
Messages postés
108
Date d'inscription
Statut
Membre
Dernière intervention
-
platypus69 Messages postés 108 Date d'inscription Statut Membre Dernière intervention -
platypus69 Messages postés 108 Date d'inscription Statut Membre Dernière intervention -
Bonjour a tous, voici un petit script qui doit en temps normal mettre a jour ma bdd avec des conditions.
La bdd se met à jour quand le champ $_POST['image'] est vide sans aucun probléme mais pas quand il a un fichier à transféré. Je pense que certaines des conditions ne se pas exacte ou mal remplie donc un peu d'aide ne serait pas de refus. Voici le script :
<?
include("config.php");
// Protection des pages Admin
session_start();
if (!session_is_registered("authentification")){
header("erreur.php");
}
$id = $_POST['id'];
$nom = $_POST['nom'];
$variete = $_POST['variete'];
$categorie = $_POST['categorie'];
$prixTTC = $_POST['prixTTC'];
$image = $_POST['image'];
$visible = $_POST['visible'];
if (empty($_POST['image'])) {
$modif_article = ("UPDATE article SET nom='$nom',variete='$variete',categorie='$categorie',prixTTC='$prixTTC',visible='$visible' WHERE id='$id'");
mysql_query($modif_article);
}
else {
if(isset($_FILES['image']))
{
// params
unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
$taille_max = 100000;
$dest_dossier = '../../../images/article/';
// utilisez également des slashes sous windows : $dest_dossier = 'd:/damien/photos/';
// vérifications
if( !in_array( substr(strrchr($_FILES['image']['name'], '.'), 1), $extensions_ok ) )
{
$erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg !';
}
elseif( file_exists($_FILES['image']['tmp_name'])
and filesize($_FILES['image']['tmp_name']) > $taille_max)
{
$erreur = 'Votre fichier doit faire moins de 500Ko !';
}
// copie du fichier
if(!isset($erreur))
{
$dest_fichier = basename($_FILES['image']['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['image']['tmp_name'], $dest_dossier . $dest_fichier);
}
$modif_article = ("UPDATE article SET nom='$nom',variete='$variete',categorie='$categorie',prixTTC='$prixTTC',image='$image',visible='$visible' WHERE id='$id'");
mysql_query($modif_article);
}
}
header("location:../../accueil.php?mdf=ok03");
?>
Merci a tous d'avance
La bdd se met à jour quand le champ $_POST['image'] est vide sans aucun probléme mais pas quand il a un fichier à transféré. Je pense que certaines des conditions ne se pas exacte ou mal remplie donc un peu d'aide ne serait pas de refus. Voici le script :
<?
include("config.php");
// Protection des pages Admin
session_start();
if (!session_is_registered("authentification")){
header("erreur.php");
}
$id = $_POST['id'];
$nom = $_POST['nom'];
$variete = $_POST['variete'];
$categorie = $_POST['categorie'];
$prixTTC = $_POST['prixTTC'];
$image = $_POST['image'];
$visible = $_POST['visible'];
if (empty($_POST['image'])) {
$modif_article = ("UPDATE article SET nom='$nom',variete='$variete',categorie='$categorie',prixTTC='$prixTTC',visible='$visible' WHERE id='$id'");
mysql_query($modif_article);
}
else {
if(isset($_FILES['image']))
{
// params
unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
$taille_max = 100000;
$dest_dossier = '../../../images/article/';
// utilisez également des slashes sous windows : $dest_dossier = 'd:/damien/photos/';
// vérifications
if( !in_array( substr(strrchr($_FILES['image']['name'], '.'), 1), $extensions_ok ) )
{
$erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg !';
}
elseif( file_exists($_FILES['image']['tmp_name'])
and filesize($_FILES['image']['tmp_name']) > $taille_max)
{
$erreur = 'Votre fichier doit faire moins de 500Ko !';
}
// copie du fichier
if(!isset($erreur))
{
$dest_fichier = basename($_FILES['image']['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['image']['tmp_name'], $dest_dossier . $dest_fichier);
}
$modif_article = ("UPDATE article SET nom='$nom',variete='$variete',categorie='$categorie',prixTTC='$prixTTC',image='$image',visible='$visible' WHERE id='$id'");
mysql_query($modif_article);
}
}
header("location:../../accueil.php?mdf=ok03");
?>
Merci a tous d'avance
A voir également:
- Probléme de chaine
- Chaine tnt gratuite sur mobile - Guide
- Plus de chaine tv - Guide
- Chaine radio - Télécharger - Médias et Actualité
- Chaine musique bouygues - Accueil - Guide TV et vidéo
- Probleme recherche chaine tv tcl - Forum TV & Vidéo
6 réponses
hello
d'où vient $_POST['id']; ???
C'est un internaute qui le tape ? Comment est récupérée cette valeur ?
d'où vient $_POST['id']; ???
C'est un internaute qui le tape ? Comment est récupérée cette valeur ?
d'accord parfait.
Et as-tu localisé ce qui fait planter ton insert ?
Une fois qu'il est lancé il ne dois pas planter, sinon ya un souci.
Chaque id qui circule dans ton $_POST est juste ?
A mon avis ça vient de là non ? Sinon il y a un autre champ ou valeur que tu récupère qui fait planter l'insert parce que c'est peut-etre un caractère spécial...
Et as-tu localisé ce qui fait planter ton insert ?
Une fois qu'il est lancé il ne dois pas planter, sinon ya un souci.
Chaque id qui circule dans ton $_POST est juste ?
A mon avis ça vient de là non ? Sinon il y a un autre champ ou valeur que tu récupère qui fait planter l'insert parce que c'est peut-etre un caractère spécial...
a mon avis ca ne viens pas du UPDATE ni des variables ($), je pense que c'est tous simplement un probléme de montage des conditions.
Le montage des IF et ELSE n'est peut étre pas bien monté ou les empty et isset ne sont pas utilisé correctement, si quelqu'un est habitué des conditions, qu'il fasse signe.
Le montage des IF et ELSE n'est peut étre pas bien monté ou les empty et isset ne sont pas utilisé correctement, si quelqu'un est habitué des conditions, qu'il fasse signe.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
c'est à toi de vérifier tes conditions.
On ne connais pas ton programme !
Il ne semble pas y avoir de souci avec des ( ou des } sinon il te le dirait !
bonne chance
On ne connais pas ton programme !
Il ne semble pas y avoir de souci avec des ( ou des } sinon il te le dirait !
bonne chance
j'ai trouvé une partie de la réponse:
else {
if(isset($_FILES['image']))
{
// params
unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
condition else { if(isset($_FILES['image'])) ne serre à rien puis qu'elle a déjà été vérifié avant if (empty($_POST['image'])) { mais sous une forme de formulaire.
Codé réparé :
if (empty($_POST['image'])) {
$modif_article = ("UPDATE article SET nom='$nom',variete='$variete',conditionnement='$conditionnement',categorie='$categorie',prixTTC='$prixTTC',visible='$visible' WHERE id='$id'");
mysql_query($modif_article);
}
else {
// params
unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
else {
if(isset($_FILES['image']))
{
// params
unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
condition else { if(isset($_FILES['image'])) ne serre à rien puis qu'elle a déjà été vérifié avant if (empty($_POST['image'])) { mais sous une forme de formulaire.
Codé réparé :
if (empty($_POST['image'])) {
$modif_article = ("UPDATE article SET nom='$nom',variete='$variete',conditionnement='$conditionnement',categorie='$categorie',prixTTC='$prixTTC',visible='$visible' WHERE id='$id'");
mysql_query($modif_article);
}
else {
// params
unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg');