Soutenance demain, bugs sur ma boutique en ligne

Petit nouveau ! | 3 Messages

03 juin 2015, 12:51

Bonjour à tous,
Je viens vous voir en mode vaguement désespéré. Je passe un rattrapage demain sur une épreuve de PHP lors de laquelle je dois présenter une boutique en ligne. Et bien sûr, vous vous en doutez, ma création est bourrée de bugs. Du coup ne sachant absolument pas vers qui me tourner pour que tout soit d'aplomb demain, je viens solliciter votre aide.

et pour commencer, j'ai ma page gestion de commande qui ne s'affiche plus. A la place, j'ai " Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in C:\wamp\www\shopcentral\admin\gestion_commandes.php on line 13"

Voici la portion de code concernée :

Code : Tout sélectionner

// ----------------------- SUPPRESSION DES COMMANDES ------------------------------- if(isset($_GET['action']) && $_GET['action'] == 'suppression'){ $bdd->exec("DELETE FROM commande WHERE id_commande = $_GET['id_commande']"); $msg .= "<h3>L'entrée a bien été supprimée de la base de données.</h3>"; header("location:gestion_commandes.php?action=affichage"); }

Avatar du membre
Mammouth du PHP | 1609 Messages

03 juin 2015, 16:28

Je pense que le parseur n'aime pas cette partie :
"DELETE FROM commande WHERE id_commande = $_GET['id_commande']"
Qu'il faudrait plutôt écrire comme ceci :
'DELETE FROM commande WHERE id_commande = '.$_GET['id_commande']
Ou comme ça :
"DELETE FROM commande WHERE id_commande = {$_GET['id_commande']}"
Et peut être que ça fonctionne aussi comme ça :
"DELETE FROM commande WHERE id_commande = $_GET[id_commande]"
http://php.net/manual/en/language.types ... ing.simple
Développeur web depuis + de 20 ans

Petit nouveau ! | 3 Messages

03 juin 2015, 16:37

Oui
ça fonctionne avec ça :

Code : Tout sélectionner

$bdd->exec('DELETE FROM commande WHERE id_commande = $_GET[\'id_commande\']');
Merci beaucoup.

Question suivante : La page s'affiche, mais le clic sur le bouton correspondant ne produit rien. L'entrée est toujours dans la base.

Le code correspondant :

Code : Tout sélectionner

if(isset($_GET['action']) && $_GET['action'] == 'suppression'){ $bdd->exec('DELETE FROM commande WHERE id_commande = $_GET[\'id_commande\']'); $msg .= "<h3>L'entrée a bien été supprimée de la base de données.</h3>"; //header("location:gestion_commandes.php?action=affichage"); } echo '<td><a href="?action=suppression&id_commande='.$ligne['id_commande'].'" OnClick="return(confirm(\'Etes-vous certain de vouloir supprimer cette commande ?\'));" title="supprimer"><i class="fa fa-minus-circle" style="color:red;margin:5px;"></i></a></td>';

Mammouth du PHP | 688 Messages

03 juin 2015, 16:46

$bdd->exec("DELETE FROM commande WHERE id_commande = $_GET['id_commande']");

et si le paramètre id_commande contient "12345 or 1", à quoi arrive-t-on ?

Petit nouveau ! | 3 Messages

03 juin 2015, 17:00

Je ne suis pas sûr de bien avoir compris la manip..