Probleme simple syntaxe php

Résolu/Fermé
Messages postés
119
Date d'inscription
samedi 30 mai 2015
Statut
Membre
Dernière intervention
8 mars 2019
-
Messages postés
119
Date d'inscription
samedi 30 mai 2015
Statut
Membre
Dernière intervention
8 mars 2019
-
juste une petite erreur mais je ne comprend pas pourquoi cela fait ca,
je veux que tout le contenu sois affiché en fonction du if, je fais donc ca :

<?php
include('includes/header.php');
include('php/php_bdd.php');
include('php/php_login.php');
include('includes/infos.php');
include('includes/sidebar.php');
?>
<?php
if(isset($_GET['pseudo']) && isset($_GET['type']) && $_GET['type'] == "view")
{
$requser = $bdd->prepare("SELECT * FROM users WHERE pseudo = ?");
$requser->execute(array($_GET['pseudo']));
$account_info = $requser->fetch();

?>

PARTIE HTML...

<?
}
else
{
header("Location: index.php?info=vous ne pouvez pas acceder à cette page");
}

include('includes/footer.php');
?>

mais ca me met unexpected end of file.. pourtant si je met l'accolade en haut comme si-dessous, tout fonctionne bien :'/


<?php
include('includes/header.php');
include('php/php_bdd.php');
include('php/php_login.php');
include('includes/infos.php');
include('includes/sidebar.php');
?>
<?php
if(isset($_GET['pseudo']) && isset($_GET['type']) && $_GET['type'] == "view")
{
$requser = $bdd->prepare("SELECT * FROM users WHERE pseudo = ?");
$requser->execute(array($_GET['pseudo']));
$account_info = $requser->fetch();
}

?>

PARTIE HTML...

<?
else
{
header("Location: index.php?info=vous ne pouvez pas acceder à cette page");
}

include('includes/footer.php');
?>


ca ne vient pas des includes j'ai déjà vérifié en les mettants 1 par 1 un commentaire, et jai compter à plusieurs reprises les accolades et parenthèses mais je ne vois pas l'erreur de mon code... :/

merci beaucoup ! :)

2 réponses

Messages postés
34726
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
27 janvier 2022
4 003
Bonjour,

1 - TOUJOURS Récupérer proprement les variables AVANT de les utiliser
2 - Utiliser
 <?php 
et pas juste
 <? 
pour ouvrir les balises php
3 - Mettre les requêtes dans des blocs try/catch pour intercepter les erreurs éventuelles de requêtes
4 - Toujours faire un
 exit();
après un header location.

<?php 
require_once 'includes/header.php';
require_once 'php/php_bdd.php';
include('php/php_login.php');
include('includes/infos.php');
include('includes/sidebar.php');

//récupération PROPRE des variables AVANT de les utiliser
$pseudo = !empty($_GET['pseudo']) ? $_GET['pseudo'] : NULL;
$type = !empty($_GET['type']) ? $_GET['type'] : NULL;

if($pseudo && $type == "view") {
  $sql = "SELECT * FROM users WHERE pseudo = :pseudo";
  $datas = array(":pseudo"=>$pseudo);
  try{
    $requser = $bdd->prepare($sql);
    $requser->execute($datas);
  }catch(Exception $e){
   //en cas d'erreur dans la requête
   echo "Erreur : ".$e->getMessage();
  }
  $account_info = $requser->fetch();
?>

  PARTIE HTML...

<?php // utiliser <?php ... et pas juste <?
} else {
 header("Location: index.php?info=vous ne pouvez pas acceder à cette page");
 exit(); //toujours mettre un exit après une redirection
}

include('includes/footer.php');
?>


NB: Plutôt que d'utiliser des variables GET pour faire transiter des "info" (contenant des phrases....) il est préférable d'utiliser les variables de session.

Messages postés
119
Date d'inscription
samedi 30 mai 2015
Statut
Membre
Dernière intervention
8 mars 2019

up ?
Messages postés
34726
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
27 janvier 2022
4 003
UP de quoi ???
Tu as lu ma réponse ???
Tu en a tenu compte pour corriger ton code ???
Messages postés
119
Date d'inscription
samedi 30 mai 2015
Statut
Membre
Dernière intervention
8 mars 2019
>
Messages postés
34726
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
27 janvier 2022

nan désolé j'avais pas vu ta réponse :x par contre mon erreur c'est une faute de frappe j'avais juste oublié le ?>php au debut de mon else, et pour le exit(); je savais pas merci beaucoup encore une fois ^^"