Probleme simple syntaxe php
Résolu
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 :
mais ca me met unexpected end of file.. pourtant si je met l'accolade en haut comme si-dessous, tout fonctionne bien :'/
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 ! :)
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
-
ModérateurBonjour,
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 unexit();
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.
-
up ?
-
-
@jordane45nan 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 ^^"
-