[PHP] Probleme de syntaxe

Par Wave59, il y a 11 ans


Bonjour,
Je vous demande de l'aide aujourd'hui car j'ai un problème de syntaxe de mon site :

Voici l'erreur :
Parse error: syntax error, unexpected end of file in C:\wamp\www\site\admin\admin.php on line 76

Voici mon code :

<?php session_start(); try{ $db = new PDO('mysql:host=localhost;dbname=bdd_e-commerce','root',''); $db->setAttribute(PDO::ATTR_CASE,PDO::CASE_LOWER); // les noms de champs seront en minuscule $db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); // les erreurs lanceront des exceptions } catch(Exception $e){ echo "Erreur: ".$e->getMessage(); die(); } // Si une session avec un username if(isset($_SESSION['username'])) { // Si une action est défini if(isset($_GET['action'])) { if($_GET['action']=='add') { if(isset($_POST['submit'])){ $title=$_POST['title']; $description=$_POST['description']; $price=$_POST['price']; if($title&&$description&&$price){ $insert = $db->prepare("INSERT INTO products VALUES('','$title','$description','$price')"); $insert->execute(); } else { echo'Veuillez remplir tous les champs'; } } ?> <form action="" method="post"> <h3>Titre du produit :</h3><input type="text" name="title"/> <h3>Description du produit :</h3><input type="text" name="description"/> <h3>Prix du produit :</h3><input type="text" name="price"/><br/><br/> <input type="submit" name="submit"/> </form> <?php } elseif($_GET['action']=='modifyanddelete') { $select = $db->prepare("SELECT * FROM products"); $select->execute(); while($s=$select->fetch(PDO::FETCH_OBJ)){ echo $s->title; ?> <a href="?action=modify&amp;id=<?php echo $s->id; ?>"Modifier</a> <a href="?action=delete&amp;id=<?php echo $s->id; ?>"X</a><br/></br> <?php } } elseif($_GET['action']=='modify') { // NOT Implemented dans la video } elseif($_GET['action']=='delete') { // NOT Implemented dans la video } else { die('Une Erreur s\'est produite.'); } } else { header('Location: ../index.php'); } ?> <link href="../style/bootstrap.css" type="text/css" rel="stylesheet" /> <h1>Bienvenue, <?php echo $_SESSION['username']; ?></h1> <br/> <a href="?action=add">Ajouter un produit</a> <?php // ici l'erreur ?> <a href="?action=modifyanddelete">Modifier / Supprimer un produit</a>

MERCI De m'aider :)
Bonne fin de soirée ,
Wave59

12 réponses

Carouge10, il y a 11 ans

Comme je disais, il ne fait pas en enlever mais en AJOUTER une.

Je pense que l'accolade fermante manquante viens de ce bout de code

if($_GET['action']=='add') { if(isset($_POST['submit'])){ $title=$_POST['title']; $description=$_POST['description']; $price=$_POST['price']; if($title&&$description&&$price){ $insert = $db->prepare("INSERT INTO products VALUES('','$title','$description','$price')"); $insert->execute(); } else { echo'Veuillez remplir tous les champs'; } }
Carouge10, il y a 11 ans

Bonjour,

Il manque une accolade fermante à :

// Si une session avec un username if(isset($_SESSION['username'])) {

Enfin ce n'est pas forcément ici, mais il en manque une.

Wave59, il y a 11 ans

ok je vais voir sa x)

Ludovic Le Henaff, il y a 11 ans

Salut,
Ce n'est pas dans la question mais j'ai remarquer un petit truc :

<a href="?action=modify&amp;id=<?php echo $s->id; ?>"Modifier</a>

Il manque le '>'

Je crois voir une accolade en trop si je me trompe pas.

} } elseif($_GET['action']=='modify') {
Wave59, il y a 11 ans

Bonjour Ludovic ,
J'ai essayer ton idée mais cela ne marche pas car si j'enlèève une accolade avant elseif il me fait UNEXPECTED elseif ..... x)
Merci de ton aide ,
Wave59

Wave59, il y a 11 ans

L'accolade ne marche pas à ce bout de code . Mais je pense plutôt Quelle Ce situe après l'ACollade du Header ('location: ../index.php');

Carouge10, il y a 11 ans

C'est votre code donc vous le connaissez mieux que moi.
Après c'est peut-être l'affiche ici; pensez à bien faire une tabulation dès que vous ouvrez une accolade, comme cela vous voyez plus facilement où il en manquerait une.

Wave59, il y a 11 ans

Ok mais en fait maintenant des que j'ai mis lacollade après le location Normalement il doit me re diriger vers la page D'administration mais il Me ré dirige Vers mon Index.php

Carouge10, il y a 11 ans

Avant votre 1er if, vérifier que $_SESSION['username'] est rempli avec un var_dump($_SESSION);
Car il semble vide.

Wave59, il y a 11 ans

Je vais le faire et je vs dis

Wave59, il y a 11 ans

Le Vardump m'indique En haut de ma Page Array (Size=1)
'Username' => string 'admin' (length=5)

Par contre quand je clique sur modifier /supprimer un produit sa me faIt un gros code d'erreur en haut .
Merci de m'aider

Carouge10, il y a 11 ans

Puis-je avoir le code, pour avoir la bonne accolade. Merci