Mélanger du php dans du html
Résolu
Thetcha
-
Thetcha -
Thetcha -
Bonjour,
Voila, je suis en train de créer une console d'admin et je voudrais gérer un menu une fois la connexion effectuée.
Mais j'ai un petit soucis de mélange entre le php et le HTML.
En fait, je voudrais afficher un menu de 3 choix si la personne connectée est un admin sinon un menu de 2 chois si la personne connectée est simple membre mais j'ai un soucis de coordination.
Voici le code :
Mon soucis vient du 'else' de cette partie :
D'avance merci si vous voyez ce que c'est l'erreur.
Voila, je suis en train de créer une console d'admin et je voudrais gérer un menu une fois la connexion effectuée.
Mais j'ai un petit soucis de mélange entre le php et le HTML.
En fait, je voudrais afficher un menu de 3 choix si la personne connectée est un admin sinon un menu de 2 chois si la personne connectée est simple membre mais j'ai un soucis de coordination.
Voici le code :
<a href="index.php">Déconnection</a><br><br>
<?php
session_start();
?>
<?php
//affichage des données:
echo(
" Vous etes connecte en tant que : {$_SESSION['Pseudo']} "
);
?>
<?php
if ($results)
{
session_register("authentification");
$_SESSION['Pseudo'] = $user_infos['Pseudo'];
if ($user_infos['Statut'] == "Administrateur")
{
?>
<br></br>
<center>
<fieldset><legend><b><FONT size="4pt">Veuillez choisir une option :</FONT></b></legend>
<br></br>
<TABLE BORDER="2" cellpadding="12" cellspacing="10">
<TR>
<TH> <form method="post" action="inserer.php">
<input type="submit" value="Inserer donnees">
</form>
</TH>
</TR>
<TR>
<TH>
<form method="post" action="affichage.php">
<input type="submit" value="Afficher donnees">
</form>
</TH>
</TR>
<TR>
<TH>
<form method="post" action="suppression.php">
<input type="submit" value="Supprimer donnees">
</form>
</TH>
</TR>
</TABLE></fieldset>
</center>
<?php
else
if ($user_infos['Statut'] == "Membre")
}
?>
<br></br>
<center>
<fieldset><legend><b><FONT size="4pt">Veuillez choisir une option :</FONT></b></legend>
<br></br>
<TABLE BORDER="2" cellpadding="12" cellspacing="10">
<TR>
<TH> <form method="post" action="inserer.php">
<input type="submit" value="Inserer donnees">
</form>
</TH>
</TR>
<TR>
<TH>
<form method="post" action="affichage.php">
<input type="submit" value="Afficher donnees">
</form>
</TH>
</TR>
</TABLE></fieldset>
</center>
<?php
}
}
?>
Mon soucis vient du 'else' de cette partie :
<?php
else
if ($user_infos['Statut'] == "Membre")
}
?>
D'avance merci si vous voyez ce que c'est l'erreur.
8 réponses
-
NON malheureux ! je t'arrête avant de lire le tout ! jamais un session_start(); avant un affichage quelconque !
Peut-être de là que vient le problème ? -
Je pense que c'est surtout l'absence d'accolade avant son else qui pose problème.
Tu l'ouvre au précédent if sans jamais la refermer.
essaye donc de remplacerelse if ($user_infos['Statut'] == "Membre") }
par un truc du genre :} else if ($user_infos['Statut'] == "Membre"){ -
-
Merci à tous pour vos réponse !!
L'erreur affichée est la suivante : Parse error: syntax error, unexpected T_ELSE in C:\wamp\www\Formulaire\menu.php on line 47
D'avance merci -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
et bien oui tu mets
<?php else if ($user_infos['Statut'] == "Membre") } ?>
c'est plutôt clair p: c'est syntaxiquement incorrect :p
https://www.php.net/manual/fr/control-structures.elseif.php
Même une feuille de papier est plus légère si on la porte à deux.-
-
-
-
-
Voici :
<a href="index.php">Déconnection</a><br><br> <?php session_start(); ?> <?php //affichage des données: echo( " Vous etes connecte en tant que : {$_SESSION['Pseudo']} " ); ?> <?php // Connexion au serveur $hostname= "localhost"; $database = "azerty"; $username= "root"; $password= "azerty"; $db = mysql_pconnect($hostname, $username, $password) or trigger_error(mysql_error(),E_USER_ERROR); // Récupération des données depuis la base de données mysql_select_db($database, $db); $verif_query = sprintf("SELECT * FROM inscription "); $verif = mysql_query($verif_query, $db) or die(mysql_error()); $user_infos = mysql_fetch_assoc($verif); $results = mysql_num_rows($verif); if ($results) { $_SESSION['Pseudo'] = $user_infos['Pseudo']; if ($user_infos['Statut'] == "Administrateur") { ?> <br></br> <center> <fieldset><legend><b><FONT size="4pt">Veuillez choisir une option :</FONT></b></legend> <br></br> <TABLE BORDER="2" cellpadding="12" cellspacing="10"> <TR> <TH> <form method="post" action="inserer.php"> <input type="submit" value="Inserer donnees"> </form> </TH> </TR> <TR> <TH> <form method="post" action="affichage.php"> <input type="submit" value="Afficher donnees"> </form> </TH> </TR> <TR> <TH> <form method="post" action="suppression.php"> <input type="submit" value="Supprimer donnees"> </form> </TH> </TR> </TABLE></fieldset> </center> <?php if ($results) { $_SESSION['Pseudo'] = $user_infos['Pseudo']; if ($user_infos['Statut'] == "Membre") { ?> <br></br> <center> <fieldset><legend><b><FONT size="4pt">Veuillez choisir une option :</FONT></b></legend> <br></br> <TABLE BORDER="2" cellpadding="12" cellspacing="10"> <TR> <TH> <form method="post" action="inserer.php"> <input type="submit" value="Inserer donnees"> </form> </TH> </TR> <TR> <TH> <form method="post" action="affichage.php"> <input type="submit" value="Afficher donnees"> </form> </TH> </TR> </TABLE></fieldset> </center> <?php }}}} ?>
Le problème est que je ne récupère pas correctement le pseudo de la page de connexion, du coup il affiche toujours le menu complet
-
-
Je me suis permis de corrigé un peu ton code afin que tu y voies plus clair déjà
(session_start(); doit être avant tout affichage !! c'est impératif !<?php session_start(); //affichage des données: echo "<a href="index.php">Déconnection</a><br><br>"; echo "Vous etes connecte en tant que : {$_SESSION['Pseudo']}"; // Connexion au serveur $hostname= "localhost"; $database = "azerty"; $username= "root"; $password= "azerty"; $db = mysql_pconnect($hostname, $username, $password) or trigger_error(mysql_error(),E_USER_ERROR); // Récupération des données depuis la base de données mysql_select_db($database, $db); $verif_query = sprintf("SELECT * FROM inscription "); $verif = mysql_query($verif_query, $db) or die(mysql_error()); $user_infos = mysql_fetch_assoc($verif); $results = mysql_num_rows($verif); if ($results) { $_SESSION['Pseudo'] = $user_infos['Pseudo']; if ($user_infos['Statut'] == "Administrateur") { ?> <br/> <center> <fieldset><legend><b><FONT size="4pt">Veuillez choisir une option :</FONT></b></legend> <br></br> <TABLE BORDER="2" cellpadding="12" cellspacing="10"> <TR> <TH> <form method="post" action="inserer.php"> <input type="submit" value="Inserer donnees"> </form> </TH> </TR> <TR> <TH> <form method="post" action="affichage.php"> <input type="submit" value="Afficher donnees"> </form> </TH> </TR> <TR> <TH> <form method="post" action="suppression.php"> <input type="submit" value="Supprimer donnees"> </form> </TH> </TR> </TABLE></fieldset> </center> <?php elseif ($user_infos['Statut'] == "Membre") { ?> <br></br> <center> <fieldset><legend><b><FONT size="4pt">Veuillez choisir une option :</FONT></b></legend> <br></br> <TABLE BORDER="2" cellpadding="12" cellspacing="10"> <TR> <TH> <form method="post" action="inserer.php"> <input type="submit" value="Inserer donnees"> </form> </TH> </TR> <TR> <TH> <form method="post" action="affichage.php"> <input type="submit" value="Afficher donnees"> </form> </TH> </TR> </TABLE></fieldset> </center> <?php }}} ?>
EDIT : J'ai encore corrigé une ligne
Même une feuille de papier est plus légère si on la porte à deux. -
Ha oui mais c'est logique ! ^-^
$verif_query = sprintf("SELECT * FROM inscription ");
Si tu n'as pas de WHERE dans ta requête tu risques à coup sûr de toujours prendre la première ligne de ta table !!
Jisig
Même une feuille de papier est plus légère si on la porte à deux.-
-
-
-
mmh bon je vais te faire un petit formulaire :
<form action='nom_de_la_page_ou_tu_l_envoies.php' method='post'> <input type='text' name='pseudo'/> <input type='submit' value='envoyer'/> </form>
ensuite dans ta page
$verif_query = sprintf("SELECT * FROM inscription WHERE Pseudo = " . $_POST['Pseudo']);
Tu peux déjà tester ça ! -
-
-
Donc si j'ai bien compris tu dois juste changer ta requête comme cela
$verif_query = sprintf("SELECT * FROM inscription WHERE Pseudo = " . $_SESSION['Pseudo']);
Même une feuille de papier est plus légère si on la porte à deux.-
J'ai fais ça :
session_start(); //affichage des données: echo "Vous etes connecte en tant que : {$_SESSION['Pseudo']}"; // Connexion au serveur $hostname= "localhost"; $database = "azerty"; $username= "root"; $password= "azerty"; $db = mysql_pconnect($hostname, $username, $password) or trigger_error(mysql_error(),E_USER_ERROR); $pseudo = $_SESSION['Pseudo']; // Récupération des données depuis la base de données mysql_select_db($database, $db); $verif_query = sprintf("SELECT * FROM inscription where Pseudo = '$pseudo'"); $verif = mysql_query($verif_query, $db) or die(mysql_error()); $user_infos = mysql_fetch_assoc($verif); $results = mysql_num_rows($verif); if ($results) { $_SESSION['Pseudo'] = $user_infos['Pseudo']; if ($user_infos['Statut'] == "Administrateur") { -
-
-
-
-