Erreur récurante de syntaxe

Résolu
Bonjour,

ça fait un moment que j'essaye de régler ce problème mais rien à faire..

J'ai cette erreur qui reviens en permanence et je n'arrive pas à la résoudre.
Parse error: syntax error, unexpected '{' in /var/www/wzh1cj/www/news/recherche.php on line 2


Voilà mon code:
<?php
    try {
        $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
        $bdd = new PDO('mysql:host=host=web2.pulseheberg.net;dbname=wkmfc8_osudl', 'wkmfc8_osudl','macle', $pdo_options);
 }
    catch (Exception $e){
              die('Erreur : ' . $e->getMessage());
    }

 
    $requete = htmlspecialchars($_POST['requete']);
    $req = $bdd->prepare("SELECT * FROM fichiers WHERE name LIKE :requete ORDER BY id DESC");
    $req->execute(array('requete' => $requete . '%'));
 
     
    $nb_resultats = $req->rowCount();
    if($nb_resultats != 0){
 
    ?>
    
    <?php echo $nb_resultats; 
    if($nb_resultats > 1) { echo 'résultats'; } else { echo 'résultat'; } 
    ?>
    trouvé:<br/>
    <br/>
    <?
    
    {
    ?>
    <a href="fonction.php?id=<? echo $donnees['id']; ?>"><? echo $donnees['nom_fonction']; ?></a><br/>
    <?
    } 
    ?><br/>
    <br/>
    <a href="rechercher.php">Nouvelle recherche</a></p>
    <?
    } 
    else
    {
    ?>
    <h3>Pas de résultats</h3>
    <p>Nous n'avons trouvé aucun résultat pour votre requête "<? echo $_POST['requete']; ?>". <a href="rechercher.php">Réessayez</a> avec autre chose.</p>
    <?
    }//
    $req->closeCursor(); /
    }
else {

?>
<p>rechercher</p>
 <form action="deconnexion.php" method="Post">
<input type="text" name="requete" size="10">
<input type="submit" value="Ok">
</form>
<?
}
?>


Merci d'avance...

3 réponses

  1. Modérateur
    Bonjour,

    Essaye ça :
    <?php
    //Affichage des erreurs PHP 
    error_reporting(E_ALL);
    ini_set('display_errors', TRUE);
    ini_set('display_startup_errors', TRUE);
    
    //connexion à la bdd
    try{
      $bdd = new PDO('mysql:host=web2.pulseheberg.net;dbname=wkmfc8_osudl;charset=utf8', 'wkmfc8_osudl','macle');
      $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); 
    } catch(PDOException $e) {
        die('Erreur : ' . $e->getMessage());
    }
    
    
    $requete = !empty($_POST['requete']) ? $_POST['requete'] : NULL ;
    if($requete){
      $sql = "SELECT * FROM fichiers WHERE name LIKE :requete ORDER BY id DESC";
      $datas = array(':requete' => $requete . '%');
      try{
        $req = $bdd->prepare($sql);
        $req->execute($datas);
        $resultat = $req->fetchAll(); //on stocke le resultat dans un array
      } catch(PDOException $e) {
        die('Erreur : ' . $e->getMessage());
      }
     
      $nb_resultats = !empty($resultat) ? count($resultat) : 0;
      if($nb_resultats != 0){ 
        echo $nb_resultats; 
        $res = $nb_resultats>1 ? 's': '';
        echo 'résultat'.$res. ' trouvé'.$res;
        echo "<br><br>";
        foreach($resultat as $donnees){
            echo '<a href="fonction.php?id='.$donnees['id'].'">'.$donnees['nom_fonction'].'</a><br/>';
        }
        ?>
         
        <br/>
        <br/>
        <a href="rechercher.php">Nouvelle recherche</a></p>
     <?php
      } else {
     ?>
        <h3>Pas de résultats</h3>
        <p>Nous n'avons trouvé aucun résultat pour votre requête "<?php echo $requete]; ?>". <a href="rechercher.php">Réessayez</a> avec autre chose.</p>
     <?php
      }
    
    } else {
      ?>
      <p>rechercher</p>
      <form action="deconnexion.php" method="Post">
      <input type="text" name="requete" size="10">
      <input type="submit" value="Ok">
      </form>
    <?php
    }
    ?>
    


    Au passage... je t'invite à lire et à appliquer ceci :
    https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
    et ceci :
    https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code

    0
    1. Parse error: syntax error, unexpected end of file in /var/www/wzh1cj/www/news/recherche.php on line 60

      :'(
      0
    2. Oui j'ai vu ça, j'ai remplacé mais rien ne change..
      0
    3. Modérateur
      Ton fichier est en UTF8 sans BOM ?
      Il n'y a pas d'accolades manquantes ?
      Toutes les balises <? ont été remplacées par <?php ??

      Peux tu nous poster ton code modifié et une capture écran de ta vérification de l'encodage ?
      0
    4. Je fait ça se soir en retenant du taff
      0
  2. Bonjour,

    Juste 2 choses :
    $bdd = new PDO('mysql:host=host=web2.pulseheberg.net;dbname=wkmfc8_osudl', 'wkmfc8_osudl','macle', $pdo_options);


    1- Il y a un host= de trop.
    2- Ce sont tes vrais accès ? Dans ce cas, modifie vite ton post.

    0
    1. Ah autant pour moi ! Et non c'est pas la bonne clé ^^
      0
  3. Problème résolu ! Merci pour tout ! (comme je sus pas très doué il est fort probable que je revienne d'ici 10 min car j'ai de nouveau un problème mais je vais essayer de rechercher de moi même.
    0