Probleme de modification

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Probleme de modification

Re: Probleme de modification

par Cyrano » 04 nov. 2010, 13:04

Ha ben là effectivement c'est beaucoup plus clair, même moi j'ai appris un truc ;)

Re: Probleme de modification

par stealth35 » 04 nov. 2010, 12:54

par contre tu fais des exceptions sur tes requêtes alors que les exceptions ne sont pas activées pour PDO, il faut donc l'activé sinon t'aura jamais d'erreurs
:shock: stealth35, je demande régulièrement aux posteurs d'être plus explicites dans leurs questions, et là j'avoue que je dois te le demander aussi dans ton affirmation parce que je ne saisis pas à quoi tu fais référence en disant que les exceptions PDO ne sont pas activées... et si moi je ne comprends pas, je me demande comment un débutant en la matière pourra faire mieux :-k

il fait :
try
{
    $req = $bdd->prepare('UPDATE produits SET
                        categorie =:nvcategorie ,
                        sscategorie =:nvsscategorie,
                       ...'
    ));
}
catch(PdoException $e)
{
    die('Erreur : '.$e->getMessage());
}
catch(Exception $e)
{
    die('Erreur : '.$e->getMessage());
}
sauf que la requete ne renvoie pas d'exception si le mode exception n'est pas activé pour PDO, ducoup la meme si y'a une erreur dans ca requête ca va rien rendre, il faut rajouter dans ca connexion le PDO::ERRMODE_EXCEPTION
try
{
    $bdd = new PDO('mysql:host=localhost;dbname=SITE', 'ROOT', 'PASS');
    $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(Exception $e)
{
    die('Erreur : '.$e->getMessage());
}

Re: Probleme de modification

par Cyrano » 04 nov. 2010, 11:15

par contre tu fais des exceptions sur tes requêtes alors que les exceptions ne sont pas activées pour PDO, il faut donc l'activé sinon t'aura jamais d'erreurs
:shock: stealth35, je demande régulièrement aux posteurs d'être plus explicites dans leurs questions, et là j'avoue que je dois te le demander aussi dans ton affirmation parce que je ne saisis pas à quoi tu fais référence en disant que les exceptions PDO ne sont pas activées... et si moi je ne comprends pas, je me demande comment un débutant en la matière pourra faire mieux :-k

Re: Probleme de modification

par stealth35 » 04 nov. 2010, 11:03

par contre tu fais des exceptions sur tes requêtes alors que les exceptions ne sont pas activées pour PDO, il faut donc l'activé sinon t'aura jamais d'erreurs

Re: Probleme de modification

par yllan » 03 nov. 2010, 21:02

grave.. .franchement ca fait plaisir de se pencher un bon moment sur un code et d essayer de le decortiquer
on apprend

je suis vraiment debutant et j'essai de faire des choses sans trop les comprendre des fois... donc quelque fois un peu de copier coller arranger pour que ca donne quelque chose... et la le sentiment d'avoir compris un petit peu plus que d habitude un code... ca fait du bien ; )

bonne soiree et a bientot peut etre :D

Re: Probleme de modification

par Cyrano » 03 nov. 2010, 14:43

Tu auras au moins appris une manière pour déboguer ce genre de problème :)

Re: Probleme de modification

par yllan » 03 nov. 2010, 13:38

et je viens d'uploader le fichier sur mon serveur, et ca marche impec

merci merci :o
=D> =D> =D> =D> =D>

Re: Probleme de modification

par yllan » 03 nov. 2010, 13:31

voila j'ai reecrit la requete en dure directement sur phpmyadmin comme ceci :
UPDATE produits SET 
categorie='Bijoux', 
sscategorie='Bagues', 
accueil='Luxe', 
focus='oui', 
nom='Serpentin', 
ref='BagSer001', 
intro='modifier', 
description='modifier aussi', 
prix='20$', dossier='BagSer001', 
photo1='produits/BagSer001/photo1.jpg', 
photo2='produits/BagSer001/photo2.jpg', 
photo3='produits/BagSer001/photo3', 
photoplus='produits/BagSer001/photoplus' 
WHERE id= 12
et ca a bien modifier le produit


AHHHHHH GENIALLLLLLL

j'ai vue l'erreur et corrige et ca marcheeeee

j'avais confondu la valeur de l upload des photos avec l'entree de leur lien dans la base de donnee...

et en fait c'est le fait d'ecrire en DUR comme tu m'as dit qui m'a permis de voir ca :)))))))

alors la CHAPEAU MONSIEUR ET UN IMMENSE MERCI... : ))))))

Re: Probleme de modification

par Cyrano » 03 nov. 2010, 12:58

Bon tu vas faire un test : tu vas prendre ta requête, la ré-écrire en dur avec des vraies valeurs et coller ça dans phpMyAdmin pour vérifier ce qui se passe. Après on verra selon le résultat.

Re: Probleme de modification

par yllan » 03 nov. 2010, 12:55

je suis passe en mode sq...l rrrrrr : ) je me suis dit que ca devrait etre bon avec ce code :
<?php
error_reporting(E_ALL | E_STRICT);

function upload($index,$destination,$maxsize=FALSE,$extensions=FALSE)
{
    //Test1: fichier correctement uploadé
    if (!isset($_FILES[$index]) || $_FILES[$index]['error'] > 0)
    {
        return FALSE;
    }
    //Test2: taille limite
    if ($maxsize !== FALSE && $_FILES[$index]['size'] > $maxsize)
    {
        return FALSE;
    }
    //Test3: extension
    $ext = substr(strrchr($_FILES[$index]['name'],'.'),1);
    if ($extensions !== FALSE && !in_array($ext,$extensions))
    {
        return FALSE;
    }
    //Déplacement
    return move_uploaded_file($_FILES[$index]['tmp_name'],$destination);
}

if(isset($_POST["Modifier"]))
{
    echo("<pre>\n");
    var_dump($_POST);
    echo("</pre>\n");
    try
    {
        $bdd = new PDO('mysql:host=localhost;dbname=eliate', 'root', '');
    }
    catch(Exception $e)
    {
        die('Erreur : '.$e->getMessage());
    }
    $id           = $_POST['id'];
    $categorie    = $_POST['categorie'];
    $sscategorie  = $_POST['sscategorie'];
    $accueil      = $_POST['accueil'];
    $focus        = $_POST['focus'];
    $nom          = $_POST['nom'];
    $ref          = $_POST['ref'];
    $intro        = $_POST['intro'];
    $description  = $_POST['description'];
    $prix         = $_POST['prix'];
    $dossier      = $_POST['dossier'];
    $photo01      = $_POST['photo01'];
    $photo02      = $_POST['photo02'];
    $photo03      = $_POST['photo03'];
    $photo04      = $_POST['photo04'];
    try
    {
        $req = $bdd->prepare('UPDATE produits SET 
			categorie =:nvcategorie , 
			sscategorie =:nvsscategorie, 
			accueil =:nvaccueil,
			focus =:nvfocus,
			nom =:nvnom,
			ref =:nvref,
			intro =:nvintro,
			description =:nvdescription,
			prix =:nvprix,
			dossier =:nvdossier,
			photo01 =:nvphoto01,
			photo02 =:nvphoto02,
			photo03 =:nvphoto03,
			photo04 =:nvphoto04
			WHERE id =:nvid 
			');
        
        $req->execute(array(
            'nvcategorie' => $categorie,
            'nvsscategorie' => $sscategorie,
            'nvaccueil' => $accueil,
            'nvfocus' => $focus,
            'nvnom' => $nom,
            'nvref' => $ref,
            'nvintro' => $intro,
            'nvdescription' => $description,
            'nvprix' => $prix,
            'nvdossier' => $dossier,
            'nvphoto01' => $photo01,
            'nvphoto02' => $photo02,
            'nvphoto03' => $photo03,
            'nvphoto04' => $photo04,
            'nvid' => $id
        ));
    }
    catch(PdoException $e)
    {
        die('Erreur : '.$e->getMessage());
    }
    catch(Exception $e)
    {
        die('Erreur : '.$e->getMessage());
    }

    $destination = "../produits/";

    //EXEMPLES
    chmod("../produits/$dossier", 0777);

    $upload1 = upload("photo1",    "../$photo01", 10485760, FALSE );
    $upload2 = upload("photo2",    "../$photo02", 10485760, FALSE );
    $upload3 = upload("photo3",    "../$photo03", 10485760, FALSE );
    $upload4 = upload("photoplus", "../$photo04", 10485760, FALSE );                 
    if (!$bdd)
    {
        die('Requête invalide : ' . mysql_error());
    }

else 
{
//Si tout va bien, on informe que la modification est faite
echo '

<table align="center" width="800" height="400" bgcolor="#efe8cc">
	<tr>
			<td align="center" valign="top">
                    <br><br>   
                       <table width="600" height="400">
							<tr>
								<td valign="top" width="720" align="center">
                                
                                <font style="color:#CC3300; font-family:Arial, Helvetica, sans-serif; font-size:24px; font-weight:bold">
                                VOUS AVEZ BIEN MODIFIER LE PRODUIT<br><br>
                                </font> 
								<font style="color:#CC3300; font-family:Arial, Helvetica, sans-serif; font-size:20px; font-weight:bold">
								<a href=admin.php>Revenir à l\'administration.</a>
                                    
								</td>
							</tr>
						</table>
			</td>
	</tr>
</table>

';
}
 
//On ferme if(isset($_POST["Modifier"]))
}
?>
et ben non... je clique sur modifier , le sql me renvoi ca :
array(17) {
  ["categorie"]=>
  string(6) "Bijoux"
  ["nom"]=>
  string(9) "Serpentin"
  ["sscategorie"]=>
  string(6) "Bagues"
  ["accueil"]=>
  string(4) "Luxe"
  ["focus"]=>
  string(3) "Oui"
  ["ref"]=>
  string(9) "BagSer001"
  ["intro"]=>
  string(8) "modifier"
  ["dossier"]=>
  string(9) "BagSer001"
  ["MAX_FILE_SIZE"]=>
  string(8) "10485760"
  ["photo01"]=>
  string(29) "produits/BagSer001/photo1.jpg"
  ["photo02"]=>
  string(29) "produits/BagSer001/photo2.jpg"
  ["photo03"]=>
  string(25) "produits/BagSer001/photo3"
  ["photo04"]=>
  string(28) "produits/BagSer001/photoplus"
  ["description"]=>
  string(8) "modifier"
  ["prix"]=>
  string(2) "20"
  ["id"]=>
  string(2) "12"
  ["Modifier"]=>
  string(8) "Modifier"
}
et rien ne se modifie encore : (

Re: Probleme de modification

par Cyrano » 03 nov. 2010, 12:15

Non, mets-toi en mode « Je pense en SQL » et « Je crée une requête UPDATE » et regarde comme il faut ta requête, tu vas réaliser qu'il ne peut absolument rien se passer du tout.

Re: Probleme de modification

par yllan » 03 nov. 2010, 12:03

j'avais oublie deux virgules

je les ai mise et relance la modification mais toujours le meme resultat...

apres clique sur modification je recois ca :
array(17) {
  ["categorie"]=>
  string(6) "Bijoux"
  ["nom"]=>
  string(9) "Serpentin"
  ["sscategorie"]=>
  string(6) "Bagues"
  ["accueil"]=>
  string(4) "Luxe"
  ["focus"]=>
  string(3) "Oui"
  ["ref"]=>
  string(9) "BagSer001"
  ["intro"]=>
  string(8) "modifier"
  ["dossier"]=>
  string(9) "BagSer001"
  ["MAX_FILE_SIZE"]=>
  string(8) "10485760"
  ["photo01"]=>
  string(29) "produits/BagSer001/photo1.jpg"
  ["photo02"]=>
  string(29) "produits/BagSer001/photo2.jpg"
  ["photo03"]=>
  string(25) "produits/BagSer001/photo3"
  ["photo04"]=>
  string(28) "produits/BagSer001/photoplus"
  ["description"]=>
  string(4) "modi"
  ["prix"]=>
  string(2) "20"
  ["id"]=>
  string(2) "12"
  ["Modifier"]=>
  string(8) "Modifier"
}
ca veut quand meme dire que sql comprend les modifications non ?
et pourtant toujours aucun changement

Re: Probleme de modification

par Cyrano » 03 nov. 2010, 11:37

As-tu bien regardé ta requête ????
$req = $bdd->prepare('UPDATE produits SET
                        categorie ,
                        sscategorie ,
                        accueil ,
                        focus ,
                        nom ,
                        ref ,
                        intro ,
                        description
                        prix ,
                        dossier
                        photo01 ,
                        photo02 ,
                        photo03 ,
                        photo04
                        WHERE id = '.$id.' ');

Re: Probleme de modification

par yllan » 03 nov. 2010, 10:56

Bonjour Cyrano

donc j'ai lu un peu le PDO Stat... j'ai essaye de le mettre en pratique avec le code qui suit :
<?php
error_reporting(E_ALL | E_STRICT);

function upload($index,$destination,$maxsize=FALSE,$extensions=FALSE)
{
    //Test1: fichier correctement uploadé
    if (!isset($_FILES[$index]) || $_FILES[$index]['error'] > 0)
    {
        return FALSE;
    }
    //Test2: taille limite
    if ($maxsize !== FALSE && $_FILES[$index]['size'] > $maxsize)
    {
        return FALSE;
    }
    //Test3: extension
    $ext = substr(strrchr($_FILES[$index]['name'],'.'),1);
    if ($extensions !== FALSE && !in_array($ext,$extensions))
    {
        return FALSE;
    }
    //Déplacement
    return move_uploaded_file($_FILES[$index]['tmp_name'],$destination);
}

if(isset($_POST["Modifier"]))
{
    echo("<pre>\n");
    var_dump($_POST);
    echo("</pre>\n");
    try
    {
        $bdd = new PDO('mysql:host=localhost;dbname=eliate', 'root', '');
    }
    catch(Exception $e)
    {
        die('Erreur : '.$e->getMessage());
    }
    $id           = $_POST['id'];
    $categorie    = $_POST['categorie'];
    $sscategorie  = $_POST['sscategorie'];
    $accueil      = $_POST['accueil'];
    $focus        = $_POST['focus'];
    $nom          = $_POST['nom'];
    $ref          = $_POST['ref'];
    $intro        = $_POST['intro'];
    $description  = $_POST['description'];
    $prix         = $_POST['prix'];
    $dossier      = $_POST['dossier'];
    $photo01      = $_POST['photo01'];
    $photo02      = $_POST['photo02'];
    $photo03      = $_POST['photo03'];
    $photo04      = $_POST['photo04'];
    try
    {
        $req = $bdd->prepare('UPDATE produits SET 
			categorie , 
			sscategorie , 
			accueil ,
			focus ,
			nom ,
			ref ,
			intro ,
			description 
			prix ,
			dossier
			photo01 ,
			photo02 ,
			photo03 ,
			photo04 
			WHERE id = '.$id.' ');
        
        $req->execute(array(
            ':categorie' => $categorie,
            ':sscategorie' => $sscategorie,
            ':accueil' => $accueil,
            ':focus' => $focus,
            ':nom' => $nom,
            ':ref' => $ref,
            ':intro' => $intro,
            ':intro' => $description,
            ':prix' => $prix,
            ':dossier' => $dossier,
            ':photo01' => $photo01,
            ':photo02' => $photo02,
            ':photo03' => $photo03,
            ':photo04' => $photo04,
            ':id' => $id
        ));
    }
    catch(PdoException $e)
    {
        die('Erreur : '.$e->getMessage());
    }
    catch(Exception $e)
    {
        die('Erreur : '.$e->getMessage());
    }

    $destination = "../produits/";

    //EXEMPLES
    chmod("../produits/$dossier", 0777);

    $upload1 = upload("photo1",    "../$photo01", 10485760, FALSE );
    $upload2 = upload("photo2",    "../$photo02", 10485760, FALSE );
    $upload3 = upload("photo3",    "../$photo03", 10485760, FALSE );
    $upload4 = upload("photoplus", "../$photo04", 10485760, FALSE );                 
    if (!$bdd)
    {
        die('Requête invalide : ' . mysql_error());
    }

else 
{
//Si tout va bien, on informe que la modification est faite
echo '

<table align="center" width="800" height="400" bgcolor="#efe8cc">
	<tr>
			<td align="center" valign="top">
                    <br><br>   
                       <table width="600" height="400">
							<tr>
								<td valign="top" width="720" align="center">
                                
                                <font style="color:#CC3300; font-family:Arial, Helvetica, sans-serif; font-size:24px; font-weight:bold">
                                VOUS AVEZ BIEN MODIFIER LE PRODUIT<br><br>
                                </font> 
								<font style="color:#CC3300; font-family:Arial, Helvetica, sans-serif; font-size:20px; font-weight:bold">
								<a href=admin.php>Revenir à l\'administration.</a>
                                    
								</td>
							</tr>
						</table>
			</td>
	</tr>
</table>

';
}
 
//On ferme if(isset($_POST["Modifier"]))
}
?>
Quand je clique sur modifier cela m'affiche :
array(17) {
  ["categorie"]=>
  string(6) "Bijoux"
  ["nom"]=>
  string(9) "Serpentin"
  ["sscategorie"]=>
  string(6) "Bagues"
  ["accueil"]=>
  string(4) "Luxe"
  ["focus"]=>
  string(3) "Oui"
  ["ref"]=>
  string(9) "BagSer001"
  ["intro"]=>
  string(8) "modifier"
  ["dossier"]=>
  string(9) "BagSer001"
  ["MAX_FILE_SIZE"]=>
  string(8) "10485760"
  ["photo01"]=>
  string(29) "produits/BagSer001/photo1.jpg"
  ["photo02"]=>
  string(29) "produits/BagSer001/photo2.jpg"
  ["photo03"]=>
  string(25) "produits/BagSer001/photo3"
  ["photo04"]=>
  string(28) "produits/BagSer001/photoplus"
  ["description"]=>
  string(39) "				Or blanc

Crystal Swarovski
"
  ["prix"]=>
  string(2) "20"
  ["id"]=>
  string(2) "12"
  ["Modifier"]=>
  string(8) "Modifier"
}
voila et ca ne m'ecrit aucun mesasge d'erreur quand je valide, mais par contre le code ne modifi rien du tout :(((((
help help..

ou alors j aurai jamais du essaye de me mettre a la page avec PDO : )))

Re: Probleme de modification

par Cyrano » 02 nov. 2010, 11:27

Mouais, tu t'es surtout mélangé les crayons entre PDO et PDOStatement. Regarde mieux la documentation et surtout les exemples. Dans les liens que je t'ai donné et en particulier le second, tu as l'exemple #2 avec tous les éléments dont tu as besoin pour que ça fonctionne avec une requête préparée.

Mais une fois de plus, ne reviens pas juste me dire « Ça ne marche pas » : montre en même temps le code que tu as fait. Comment veux-tu qu'on sache où tu t'es planté si on ne sait pas exactement ce que tu as fait ??