Problème avec un tuto pour réaliser un forum.
luluwebmaster Messages postés 430 Statut Membre -
j'ai suivie le tuto ici :
https://openclassrooms.com/fr/courses
Mais je rencontre un problème au niveau de mes pages "inscription" "connection" quand je les tests, il me met ça :
( ! ) Parse error: syntax error, unexpected T_ELSE in C:\wamp\www\test_forum\forum\register.php on line 43
Les codes de chaque pages :
connextion.php :
<?php
session_start();
$titre="Connexion";
include("includes/identifiants.php");
include("includes/debut.php");
include("includes/menu.php");
echo '<p><i>Vous êtes ici</i> : <a href="./index.php">Index du forum</a> --> Connexion';
?>
<?php
echo '<h1>Connexion</h1>';
if ($id!=0) erreur(ERR_IS_CO);
?>
<?php
exit('<div id="error"><p>'.$mess.'</p>
<p>Cliquez <a href="./index.php">ici</a> pour revenir à la page d\'accueil</p></div></div></body></html>');
?>
<?php
if (!isset($_POST['pseudo'])) //On est dans la page de formulaire
{
echo '<form method="post" action="connexion.php">
<fieldset>
<legend>Connexion</legend>
<p>
<label for="pseudo">Pseudo :</label><input name="pseudo" type="text" id="pseudo" /><br />
<label for="password">Mot de Passe :</label><input type="password" name="password" id="password" />
</p>
</fieldset>
<p><input type="submit" value="Connexion" /></p></form>
<a href="./register.php">Pas encore inscrit ?</a>
</div>
</body>
</html>';
}
?>
<?php
//On reprend la suite du code
else
{
$message='';
if (empty($_POST['pseudo']) || empty($_POST['password']) ) //Oublie d'un champ
{
$message = '<p>une erreur s\'est produite pendant votre identification.
Vous devez remplir tous les champs</p>
<p>Cliquez <a href="./connexion.php">ici</a> pour revenir</p>';
}
else //On check le mot de passe
{
$query=$db->prepare('SELECT membre_mdp, membre_id, membre_rang, membre_pseudo
FROM forum_membres WHERE membre_pseudo = :pseudo');
$query->bindValue(':pseudo',$_POST['pseudo'], PDO::PARAM_STR);
$query->execute();
$data=$query->fetch();
if ($data['membre_mdp'] == md5($_POST['password'])) // Acces OK !
{
$_SESSION['pseudo'] = $data['membre_pseudo'];
$_SESSION['level'] = $data['membre_rang'];
$_SESSION['id'] = $data['membre_id'];
$message = '<p>Bienvenue '.$data['membre_pseudo'].',
vous êtes maintenant connecté!</p>
<p>Cliquez <a href="./index.php">ici</a>
pour revenir à la page d accueil</p>';
}
else // Acces pas OK !
{
$message = '<p>Une erreur s\'est produite
pendant votre identification.<br /> Le mot de passe ou le pseudo
entré n\'est pas correcte.</p><p>Cliquez <a href="./connexion.php">ici</a>
pour revenir à la page précédente
<br /><br />Cliquez <a href="./index.php">ici</a>
pour revenir à la page d accueil</p>';
}
$query->CloseCursor();
}
echo $message.'</div></body></html>';
}
?>
register.php :
<?php
session_start();
$titre="Enregistrement";
include("includes/identifiants.php");
include("includes/debut.php");
include("includes/menu.php");
echo '<p><i>Vous êtes ici</i> : <a href="./index.php">Index du forum</a> --> Enregistrement';
if ($id!=0) erreur(ERR_IS_CO);
?>
<?php
if (empty($_POST['pseudo'])) // Si on la variable est vide, on peut considérer qu'on est sur la page de formulaire
{
echo '<h1>Inscription 1/2</h1>';
echo '<form method="post" action="register.php" enctype="multipart/form-data">
<fieldset><legend>Identifiants</legend>
<label for="pseudo">* Pseudo :</label> <input name="pseudo" type="text" id="pseudo" /> (le pseudo doit contenir entre 3 et 15 caractères)<br />
<label for="password">* Mot de Passe :</label><input type="password" name="password" id="password" /><br />
<label for="confirm">* Confirmer le mot de passe :</label><input type="password" name="confirm" id="confirm" />
</fieldset>
<fieldset><legend>Contacts</legend>
<label for="email">* Votre adresse Mail :</label><input type="text" name="email" id="email" /><br />
<label for="msn">Votre adresse MSN :</label><input type="text" name="msn" id="msn" /><br />
<label for="website">Votre site web :</label><input type="text" name="website" id="website" />
</fieldset>
<fieldset><legend>Informations supplémentaires</legend>
<label for="localisation">Localisation :</label><input type="text" name="localisation" id="localisation" />
</fieldset>
<fieldset><legend>Profil sur le forum</legend>
<label for="avatar">Choisissez votre avatar :</label><input type="file" name="avatar" id="avatar" />(Taille max : 10Ko<br />
<label for="signature">Signature :</label><textarea cols="40" rows="4" name="signature" id="signature">La signature est limitée à 200 caractères</textarea>
</fieldset>
<p>Les champs précédés d un * sont obligatoires</p>
<p><input type="submit" value="S\'inscrire" /></p></form>
</div>
</body>
</html>';
} //Fin de la partie formulaire
?>
<?php
else //On est dans le cas traitement
{
$pseudo_erreur1 = NULL;
$pseudo_erreur2 = NULL;
$mdp_erreur = NULL;
$email_erreur1 = NULL;
$email_erreur2 = NULL;
$msn_erreur = NULL;
$signature_erreur = NULL;
$avatar_erreur = NULL;
$avatar_erreur1 = NULL;
$avatar_erreur2 = NULL;
$avatar_erreur3 = NULL;
?>
<?php
//On récupère les variables
$i = 0;
$temps = time();
$pseudo=$_POST['pseudo'];
$signature = $_POST['signature'];
$email = $_POST['email'];
$msn = $_POST['msn'];
$website = $_POST['website'];
$localisation = $_POST['localisation'];
$pass = md5($_POST['password']);
$confirm = md5($_POST['confirm']);
//Vérification du pseudo
$query=$db->prepare('SELECT COUNT(*) AS nbr FROM forum_membres WHERE membre_pseudo =:pseudo');
$query->bindValue(':pseudo',$pseudo, PDO::PARAM_STR);
$query->execute();
$pseudo_free=($query->fetchColumn()==0)?1:0;
$query->CloseCursor();
if(!$pseudo_free)
{
$pseudo_erreur1 = "Votre pseudo est déjà utilisé par un membre";
$i++;
}
if (strlen($pseudo) < 3 || strlen($pseudo) > 15)
{
$pseudo_erreur2 = "Votre pseudo est soit trop grand, soit trop petit";
$i++;
}
//Vérification du mdp
if ($pass != $confirm || empty($confirm) || empty($pass))
{
$mdp_erreur = "Votre mot de passe et votre confirmation diffèrent, ou sont vides";
$i++;
}
?>
functions.php :
<?php
function erreur($err='')
{
$mess=($err!='')? $err:'Une erreur inconnue s\'est produite';
exit('<p>'.$mess.'</p>
<p>Cliquez <a href="./index.php">ici</a> pour revenir à la page d\'accueil</p></div></body></html>');
}
?>
constants.php :
<?php
define('VISITEUR',1);
define('INSCRIT',2);
define('MODO',3);
define('ADMIN',4);
?>
<?php
define('ERR_IS_CO','Vous ne pouvez pas accéder à cette page si vous n\'êtes pas connecté');
?>
Merci d'avance a celui qui saura me repondre.
--
Merci a tout ceux qui répondrons a mes problème ^^
8 réponses
Des erreurs de syntaxe PHP provoquent des parse errors, notamment 'unexpected T_ELSE', sur les pages d'inscription et de profil, liées à des balises PHP mal gérées et à des blocs if/else fermés.
Plusieurs répondants conseillent de repérer des fermetures PHP superflues et de vérifier des lignes critiques (par exemple la ligne 94) où une condition peut être mal reliée à un else.
Des éléments de discussion pointent aussi des anomalies de syntaxe comme un 'default;' écrit dans un switch au lieu de 'default:', et des balises qui cassent la structure.
Des pratiques proposées incluent la suppression des balises PHP superflues, la correction des structures switch/if/else et la réorganisation du code pour éviter les injections HTML entre les blocs PHP.
-
Salut,
essaye de retirer les :
?>
<?php
en ligne 41 et 42
et il te manque un } en fin de fichier -
En retirant les ?> et <?php, ça ne fonctionne pas.
et pour le } c'est sur quelle fichier ?
-
Bien sur,
voici le nouveau code du fichier connexion :<?php session_start(); $titre="Connexion"; include("includes/identifiants.php"); include("includes/debut.php"); include("includes/menu.php"); echo '<p><i>Vous êtes ici</i> : <a href="./index.php">Index du forum</a> --> Connexion'; echo '<h1>Connexion</h1>'; if ($id!=0) erreur(ERR_IS_CO); exit('<div id="error"><p>'.$mess.'</p> <p>Cliquez <a href="./index.php">ici</a> pour revenir à la page d\'accueil</p></div></div></body></html>'); if (!isset($_POST['pseudo'])) //On est dans la page de formulaire { echo '<form method="post" action="connexion.php"> <fieldset> <legend>Connexion</legend> <p> <label for="pseudo">Pseudo :</label><input name="pseudo" type="text" id="pseudo" /><br /> <label for="password">Mot de Passe :</label><input type="password" name="password" id="password" /> </p> </fieldset> <p><input type="submit" value="Connexion" /></p></form> <a href="./register.php">Pas encore inscrit ?</a> </div> </body> </html>'; } //On reprend la suite du code else { $message=''; if (empty($_POST['pseudo']) || empty($_POST['password']) ) //Oublie d'un champ { $message = '<p>une erreur s\'est produite pendant votre identification. Vous devez remplir tous les champs</p> <p>Cliquez <a href="./connexion.php">ici</a> pour revenir</p>'; } else //On check le mot de passe { $query=$db->prepare('SELECT membre_mdp, membre_id, membre_rang, membre_pseudo FROM forum_membres WHERE membre_pseudo = :pseudo'); $query->bindValue(':pseudo',$_POST['pseudo'], PDO::PARAM_STR); $query->execute(); $data=$query->fetch(); if ($data['membre_mdp'] == md5($_POST['password'])) // Acces OK ! { $_SESSION['pseudo'] = $data['membre_pseudo']; $_SESSION['level'] = $data['membre_rang']; $_SESSION['id'] = $data['membre_id']; $message = '<p>Bienvenue '.$data['membre_pseudo'].', vous êtes maintenant connecté!</p> <p>Cliquez <a href="./index.php">ici</a> pour revenir à la page d accueil</p>'; } else // Acces pas OK ! { $message = '<p>Une erreur s\'est produite pendant votre identification.<br /> Le mot de passe ou le pseudo entré n\'est pas correcte.</p><p>Cliquez <a href="./connexion.php">ici</a> pour revenir à la page précédente <br /><br />Cliquez <a href="./index.php">ici</a> pour revenir à la page d accueil</p>'; } $query->CloseCursor(); } echo $message.'</div></body></html>'; } ?>
-
-
C'est bon, ça marche,
il fallait enlever se code :exit('<div id="error"><p>'.$mess.'</p> <p>Cliquez <a href="./index.php">ici</a> pour revenir à la page d\'accueil</p></div></div></body></html>');
Par contre, j'ai un autre problème :
lorsque j'essais de m'enregistrer, quand je clique sur le bouton enregistrer, ça me met ça :
Vous êtes ici : Index du forum --> Enregistrement
et ça ne m'enregistre pas. -
Bon problème resolu pour le message, mais j'ai un nouveau problème :
Quand je veux m'inscrire, il m'affiche des erreur en bas, alors que je n'ai même pas cliquer sur le bouton enregistrer ...
Voici le code register :<?php error_reporting(E_ERROR | E_WARNING | E_PARSE); session_start(); $titre="Enregistrement"; include("includes/identifiants.php"); include("includes/debut.php"); include("includes/menu.php"); echo '<p><i>Vous êtes ici</i> : <a href="./index.php">Index du forum</a> --> Enregistrement'; if (empty($_POST['pseudo'])) // Si on la variable est vide, on peut considérer qu'on est sur la page de formulaire { echo '<h1>Inscription 1/2</h1>'; echo '<form method="post" action="register.php" enctype="multipart/form-data"> <fieldset><legend>Identifiants</legend> <label for="pseudo">* Pseudo :</label> <input name="pseudo" type="text" id="pseudo" /> (le pseudo doit contenir entre 3 et 15 caractères)<br /> <label for="password">* Mot de Passe :</label><input type="password" name="password" id="password" /><br /> <label for="confirm">* Confirmer le mot de passe :</label><input type="password" name="confirm" id="confirm" /> </fieldset> <fieldset><legend>Contacts</legend> <label for="email">* Votre adresse Mail :</label><input type="text" name="email" id="email" /><br /> <label for="msn">Votre adresse MSN :</label><input type="text" name="msn" id="msn" /><br /> <label for="website">Votre site web :</label><input type="text" name="website" id="website" /> </fieldset> <fieldset><legend>Informations supplémentaires</legend> <label for="localisation">Localisation :</label><input type="text" name="localisation" id="localisation" /> </fieldset> <fieldset><legend>Profil sur le forum</legend> <label for="avatar">Choisissez votre avatar :</label><input type="file" name="avatar" id="avatar" />(Taille max : 10Ko<br /> <label for="signature">Signature :</label><textarea cols="40" rows="4" name="signature" id="signature">La signature est limitée à 200 caractères</textarea> </fieldset> <label>Se souvenir de moi ?</label><input type="checkbox" name="souvenir" /><br /> <p>Les champs précédés d un * sont obligatoires</p> <p><input type="submit" value="S\'inscrire" /></p></form> </div> </body> </html>'; } //Fin de la partie formulaire else //On est dans le cas traitement { $pseudo_erreur1 = NULL; $pseudo_erreur2 = NULL; $mdp_erreur = NULL; $email_erreur1 = NULL; $email_erreur2 = NULL; $msn_erreur = NULL; $signature_erreur = NULL; $avatar_erreur = NULL; $avatar_erreur1 = NULL; $avatar_erreur2 = NULL; $avatar_erreur3 = NULL; } { //On récupère les variables $i = 0; $temps = time(); $pseudo=$_POST['pseudo']; $signature = $_POST['signature']; $email = $_POST['email']; $msn = $_POST['msn']; $website = $_POST['website']; $localisation = $_POST['localisation']; $pass = md5($_POST['password']); $confirm = md5($_POST['confirm']); //Vérification du pseudo $query=$db->prepare('SELECT COUNT(*) AS nbr FROM forum_membres WHERE membre_pseudo =:pseudo'); $query->bindValue(':pseudo',$pseudo, PDO::PARAM_STR); $query->execute(); $pseudo_free=($query->fetchColumn()==0)?1:0; $query->CloseCursor(); if(!$pseudo_free) { $pseudo_erreur1 = "Votre pseudo est déjà utilisé par un membre"; $i++; } if (strlen($pseudo) < 3 || strlen($pseudo) > 15) { $pseudo_erreur2 = "Votre pseudo est soit trop grand, soit trop petit"; $i++; } //Vérification du mdp if ($pass != $confirm || empty($confirm) || empty($pass)) { $mdp_erreur = "Votre mot de passe et votre confirmation diffèrent, ou sont vides"; $i++; } $query=$db->prepare('SELECT COUNT(*) AS nbr FROM forum_membres WHERE membre_pseudo =:pseudo'); $query->bindValue(':pseudo',$pseudo, PDO::PARAM_STR); $query->execute(); $pseudo_free=($query->fetchColumn()==0)?1:0; //Vérification de l'adresse email //Il faut que l'adresse email n'ait jamais été utilisée $query=$db->prepare('SELECT COUNT(*) AS nbr FROM forum_membres WHERE membre_email =:mail'); $query->bindValue(':mail',$email, PDO::PARAM_STR); $query->execute(); $mail_free=($query->fetchColumn()==0)?1:0; $query->CloseCursor(); if(!$mail_free) { $email_erreur1 = "Votre adresse email est déjà utilisée par un membre"; $i++; } //On vérifie la forme maintenant if (!preg_match("#^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-z]{2,4}$#", $email) || empty($email)) { $email_erreur2 = "Votre adresse E-Mail n'a pas un format valide"; $i++; } //Vérification de l'adresse MSN if (!preg_match("#^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-z]{2,4}$#", $msn) && !empty($msn)) { $msn_erreur = "Votre adresse MSN n'a pas un format valide"; $i++; } //Vérification de la signature if (strlen($signature) > 200) { $signature_erreur = "Votre signature est trop longue"; $i++; } //Vérification de l'avatar : if (!empty($_FILES['avatar']['size'])) { //On définit les variables : $maxsize = 10024; //Poid de l'image $maxwidth = 100; //Largeur de l'image $maxheight = 100; //Longueur de l'image $extensions_valides = array( 'jpg' , 'jpeg' , 'gif' , 'png', 'bmp' ); //Liste des extensions valides if ($_FILES['avatar']['error'] > 0) { $avatar_erreur = "Erreur lors du transfert de l'avatar : "; } if ($_FILES['avatar']['size'] > $maxsize) { $i++; $avatar_erreur1 = "Le fichier est trop gros : (<strong>".$_FILES['avatar']['size']." Octets</strong> contre <strong>".$maxsize." Octets</strong>)"; } $image_sizes = getimagesize($_FILES['avatar']['tmp_name']); if ($image_sizes[0] > $maxwidth OR $image_sizes[1] > $maxheight) { $i++; $avatar_erreur2 = "Image trop large ou trop longue : (<strong>".$image_sizes[0]."x".$image_sizes[1]."</strong> contre <strong>".$maxwidth."x".$maxheight."</strong>)"; } $extension_upload = strtolower(substr( strrchr($_FILES['avatar']['name'], '.') ,1)); if (!in_array($extension_upload,$extensions_valides) ) { $i++; $avatar_erreur3 = "Extension de l'avatar incorrecte"; } } if ($i==0) { echo'<h1>Inscription terminée</h1>'; echo'<p>Bienvenue '.stripslashes(htmlspecialchars($_POST['pseudo'])).' vous êtes maintenant inscrit sur le forum</p> <p>Cliquez <a href="./index.php">ici</a> pour revenir à la page d accueil</p>'; //La ligne suivante sera commentée plus bas $nomavatar=(!empty($_FILES['avatar']['size']))?move_avatar($_FILES['avatar']):''; $query=$db->prepare('INSERT INTO forum_membres (membre_pseudo, membre_mdp, membre_email, membre_msn, membre_siteweb, membre_avatar, membre_signature, membre_localisation, membre_inscrit, membre_derniere_visite) VALUES (:pseudo, :pass, :email, :msn, :website, :nomavatar, :signature, :localisation, :temps, :temps)'); $query->bindValue(':pseudo', $pseudo, PDO::PARAM_STR); $query->bindValue(':pass', $pass, PDO::PARAM_INT); $query->bindValue(':email', $email, PDO::PARAM_STR); $query->bindValue(':msn', $msn, PDO::PARAM_STR); $query->bindValue(':website', $website, PDO::PARAM_STR); $query->bindValue(':nomavatar', $nomavatar, PDO::PARAM_STR); $query->bindValue(':signature', $signature, PDO::PARAM_STR); $query->bindValue(':localisation', $localisation, PDO::PARAM_STR); $query->bindValue(':temps', $temps, PDO::PARAM_INT); $query->execute(); //Et on définit les variables de sessions $_SESSION['pseudo'] = $pseudo; $_SESSION['id'] = $db->lastInsertId(); ; $_SESSION['level'] = 2; $query->CloseCursor(); } else { echo'<h1>Inscription interrompue</h1>'; echo'<p>Une ou plusieurs erreurs se sont produites pendant l incription</p>'; echo'<p>'.$i.' erreur(s)</p>'; echo'<p>'.$pseudo_erreur1.'</p>'; echo'<p>'.$pseudo_erreur2.'</p>'; echo'<p>'.$mdp_erreur.'</p>'; echo'<p>'.$email_erreur1.'</p>'; echo'<p>'.$email_erreur2.'</p>'; echo'<p>'.$msn_erreur.'</p>'; echo'<p>'.$signature_erreur.'</p>'; echo'<p>'.$avatar_erreur.'</p>'; echo'<p>'.$avatar_erreur1.'</p>'; echo'<p>'.$avatar_erreur2.'</p>'; echo'<p>'.$avatar_erreur3.'</p>'; echo'<p>Cliquez <a href="./register.php">ici</a> pour recommencer</p>'; } } ?> </div> </body> </html> -
-
-
-
Bon,
la je suis a cette partie du tuto :
https://openclassrooms.com/fr/courses
Je rencontre un nouveau problème,
quand je met le code de traitement pour modifier le profil j'ai se message d'erreur :
( ! ) Parse error: syntax error, unexpected T_ELSE in C:\wamp\www\test_forum\forum\voirprofil.php on line 138
Voici le code avec le traitement :<?php session_start(); $titre="Profil"; include("includes/identifiants.php"); include("includes/debut.php"); include("includes/menu.php"); //On récupère la valeur de nos variables passées par URL $action = isset($_GET['action'])?htmlspecialchars($_GET['action']):'consulter'; $membre = isset($_GET['m'])?(int) $_GET['m']:''; //On regarde la valeur de la variable $action switch($action) { //Si c'est "consulter" case "consulter": //On récupère les infos du membre $query=$db->prepare('SELECT membre_pseudo, membre_avatar, membre_email, membre_msn, membre_signature, membre_siteweb, membre_post, membre_inscrit, membre_localisation FROM forum_membres WHERE membre_id=:membre'); $query->bindValue(':membre',$membre, PDO::PARAM_INT); $query->execute(); $data=$query->fetch(); //On affiche les infos sur le membre echo '<p><i>Vous êtes ici</i> : <a href="./index.php">Index du forum</a> --> profil de '.stripslashes(htmlspecialchars($data['membre_pseudo'])); echo'<h1>Profil de '.stripslashes(htmlspecialchars($data['membre_pseudo'])).'</h1>'; echo'<img src="./images/avatars/'.$data['membre_avatar'].'" alt="Ce membre n a pas d avatar" />'; echo'<p><strong>Adresse E-Mail : </strong> <a href="mailto:'.stripslashes($data['membre_email']).'"> '.stripslashes(htmlspecialchars($data['membre_email'])).'</a><br />'; echo'<strong>MSN Messenger : </strong>'.stripslashes(htmlspecialchars($data['membre_msn'])).'<br />'; echo'<strong>Site Web : </strong> <a href="'.stripslashes($data['membre_siteweb']).'">'.stripslashes(htmlspecialchars($data['membre_siteweb'])).'</a> <br /><br />'; echo'Ce membre est inscrit depuis le <strong>'.date('d/m/Y',$data['membre_inscrit']).'</strong> et a posté <strong>'.$data['membre_post'].'</strong> messages <br /><br />'; echo'<strong>Localisation : </strong>'.stripslashes(htmlspecialchars($data['membre_localisation'])).' </p>'; $query->CloseCursor(); break; //Si on choisit de modifier son profil case "modifier": if (empty($_POST['sent'])) // Si on la variable est vide, on peut considérer qu'on est sur la page de formulaire { //On commence par s'assurer que le membre est connecté if ($id==0) erreur(ERR_IS_NOT_CO); //On prend les infos du membre $query=$db->prepare('SELECT membre_pseudo, membre_email, membre_siteweb, membre_signature, membre_msn, membre_localisation, membre_avatar FROM forum_membres WHERE membre_id=:id'); $query->bindValue(':id',$id,PDO::PARAM_INT); $query->execute(); $data=$query->fetch(); echo '<p><i>Vous êtes ici</i> : <a href="./index.php">Index du forum</a> --> Modification du profil'; echo '<h1>Modifier son profil</h1>'; echo '<form method="post" action="voirprofil.php?action=modifier" enctype="multipart/form-data"> <fieldset><legend>Identifiants</legend> Pseudo : <strong>'.stripslashes(htmlspecialchars($data['membre_pseudo'])).'</strong><br /> <label for="password">Nouveau mot de Passe :</label> <input type="password" name="password" id="password" /><br /> <label for="confirm">Confirmer le mot de passe :</label> <input type="password" name="confirm" id="confirm" /> </fieldset> <fieldset><legend>Contacts</legend> <label for="email">Votre adresse E_Mail :</label> <input type="text" name="email" id="email" value="'.stripslashes($data['membre_email']).'" /><br /> <label for="msn">Votre adresse MSN :</label> <input type="text" name="msn" id="msn" value="'.stripslashes($data['membre_msn']).'" /><br /> <label for="website">Votre site web :</label> <input type="text" name="website" id="website" value="'.stripslashes($data['membre_siteweb']).'" /><br /> </fieldset> <fieldset><legend>Informations supplémentaires</legend> <label for="localisation">Localisation :</label> <input type="text" name="localisation" id="localisation" value="'.stripslashes($data['membre_localisation']).'" /><br /> </fieldset> <fieldset><legend>Profil sur le forum</legend> <label for="avatar">Changer votre avatar :</label> <input type="file" name="avatar" id="avatar" /> (Taille max : 10 ko)<br /><br /> <label><input type="checkbox" name="delete" value="Delete" /> Supprimer l avatar</label> Avatar actuel : <img src="./images/avatars/'.$data['membre_avatar'].'" alt="pas d avatar" /> <br /><br /> <label for="signature">Signature :</label> <textarea cols="40" rows="4" name="signature" id="signature"> '.stripslashes($data['membre_signature']).'</textarea> </fieldset> <p> <input type="submit" value="Modifier son profil" /> <input type="hidden" id="sent" name="sent" value="1" /> </p></form>'; $query->CloseCursor(); } else //Sinon on est dans la page de traitement { //Traitement (voir plus bas) } break; default; //Si jamais c'est aucun de ceux-là c'est qu'il y a eu un problème :o echo'<p>Cette action est impossible</p>'; } //Fin du switch ?> <?php else //Cas du traitement { //On déclare les variables $mdp_erreur = NULL; $email_erreur1 = NULL; $email_erreur2 = NULL; $msn_erreur = NULL; $signature_erreur = NULL; $avatar_erreur = NULL; $avatar_erreur1 = NULL; $avatar_erreur2 = NULL; $avatar_erreur3 = NULL; //Encore et toujours notre belle variable $i :p $i = 0; $temps = time(); $signature = $_POST['signature']; $email = $_POST['email']; $msn = $_POST['msn']; $website = $_POST['website']; $localisation = $_POST['localisation']; $pass = md5($_POST['password']); $confirm = md5($_POST['confirm']); //Vérification du mdp if ($pass != $confirm || empty($confirm) || empty($pass)) { $mdp_erreur = "Votre mot de passe et votre confirmation diffèrent ou sont vides"; $i++; } //Vérification de l'adresse email //Il faut que l'adresse email n'ait jamais été utilisée (sauf si elle n'a pas été modifiée) //On commence donc par récupérer le mail $query=$db->prepare('SELECT membre_email FROM forum_membres WHERE membre_id =:id'); $query->bindValue(':id',$id,PDO::PARAM_INT); $query->execute(); $data=$query->fetch(); if (strtolower($data['membre_email']) != strtolower($email)) { //Il faut que l'adresse email n'ait jamais été utilisée $query=$db->prepare('SELECT COUNT(*) AS nbr FROM forum_membres WHERE membre_email =:mail'); $query->bindValue(':mail',$email,PDO::PARAM_STR); $query->execute(); $mail_free=($query->fetchColumn()==0)?1:0; $query->CloseCursor(); if(!$mail_free) { $email_erreur1 = "Votre adresse email est déjà utilisé par un membre"; $i++; } //On vérifie la forme maintenant if (!preg_match("#^[a-z0-9A-Z._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $email) || empty($email)) { $email_erreur2 = "Votre nouvelle adresse E-Mail n'a pas un format valide"; $i++; } } //Vérification de l'adresse MSN if (!preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $msn) && !empty($msn)) { $msn_erreur = "Votre nouvelle adresse MSN n'a pas un format valide"; $i++; } //Vérification de la signature if (strlen($signature) > 200) { $signature_erreur = "Votre nouvelle signature est trop longue"; $i++; } //Vérification de l'avatar if (!empty($_FILES['avatar']['size'])) { //On définit les variables : $maxsize = 30072; //Poid de l'image $maxwidth = 100; //Largeur de l'image $maxheight = 100; //Longueur de l'image //Liste des extensions valides $extensions_valides = array( 'jpg' , 'jpeg' , 'gif' , 'png', 'bmp' ); if ($_FILES['avatar']['error'] > 0) { $avatar_erreur = "Erreur lors du tranfsert de l'avatar : "; } if ($_FILES['avatar']['size'] > $maxsize) { $i++; $avatar_erreur1 = "Le fichier est trop gros : (<strong>".$_FILES['avatar']['size']." Octets</strong> contre <strong>".$maxsize." Octets</strong>)"; } $image_sizes = getimagesize($_FILES['avatar']['tmp_name']); if ($image_sizes[0] > $maxwidth OR $image_sizes[1] > $maxheight) { $i++; $avatar_erreur2 = "Image trop large ou trop longue : (<strong>".$image_sizes[0]."x".$image_sizes[1]."</strong> contre <strong>".$maxwidth."x".$maxheight."</strong>)"; } $extension_upload = strtolower(substr( strrchr($_FILES['avatar']['name'], '.') ,1)); if (!in_array($extension_upload,$extensions_valides) ) { $i++; $avatar_erreur3 = "Extension de l'avatar incorrecte"; } } ?> </div> </body> </html> <?php echo '<p><i>Vous êtes ici</i> : <a href="./index.php">Index du forum</a> --> Modification du profil'; echo '<h1>Modification d\'un profil</h1>'; if ($i == 0) // Si $i est vide, il n'y a pas d'erreur { if (!empty($_FILES['avatar']['size'])) { $nomavatar=move_avatar($_FILES['avatar']); $query=$db->prepare('UPDATE forum_membres SET membre_avatar = :avatar WHERE membre_id = :id'); $query->bindValue(':avatar',$nomavatar,PDO::PARAM_STR); $query->bindValue(':id',$id,PDO::PARAM_INT); $query->execute(); $query->CloseCursor(); } //Une nouveauté ici : on peut choisis de supprimer l'avatar if (isset($_POST['delete'])) { $query=$db->prepare('UPDATE forum_membres SET membre_avatar=0 WHERE membre_id = :id'); $query->bindValue(':id',$id,PDO::PARAM_INT); $query->execute(); $query->CloseCursor(); } echo'<h1>Modification terminée</h1>'; echo'<p>Votre profil a été modifié avec succès !</p>'; echo'<p>Cliquez <a href="./index.php">ici</a> pour revenir à la page d accueil</p>'; //On modifie la table $query=$db->prepare('UPDATE forum_membres SET membre_mdp = :mdp, membre_email=:mail, membre_msn=:msn, membre_siteweb=:website, membre_signature=:sign, membre_localisation=:loc WHERE membre_id=:id'); $query->bindValue(':mdp',$pass,PDO::PARAM_INT); $query->bindValue(':mail',$email,PDO::PARAM_STR); $query->bindValue(':msn',$msn,PDO::PARAM_STR); $query->bindValue(':website',$website,PDO::PARAM_STR); $query->bindValue(':sign',$signature,PDO::PARAM_STR); $query->bindValue(':loc',$localisation,PDO::PARAM_STR); $query->bindValue(':id',$id,PDO::PARAM_INT); $query->execute(); $query->CloseCursor(); } else { echo'<h1>Modification interrompue</h1>'; echo'<p>Une ou plusieurs erreurs se sont produites pendant la modification du profil</p>'; echo'<p>'.$i.' erreur(s)</p>'; echo'<p>'.$mdp_erreur.'</p>'; echo'<p>'.$email_erreur1.'</p>'; echo'<p>'.$email_erreur2.'</p>'; echo'<p>'.$msn_erreur.'</p>'; echo'<p>'.$signature_erreur.'</p>'; echo'<p>'.$avatar_erreur.'</p>'; echo'<p>'.$avatar_erreur1.'</p>'; echo'<p>'.$avatar_erreur2.'</p>'; echo'<p>'.$avatar_erreur3.'</p>'; echo'<p> Cliquez <a href="./voirprofil.php?action=modifier">ici</a> pour recommencer</p>'; } } //Fin du else break; default; //Si jamais c'est aucun de ceux là c'est qu'il y a eu un problème :o echo'<p>Cette action est impossible</p>'; } //Fin du switch ?> </div> </body> </html> </html>
En tout cas, merci pour tout l'aide que vous m'avez apporté déjà ^^ -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Je remarque que j'ai énormément de problème avec ce tuto, maintenant, j'ai une erreur :
( ! ) Parse error: syntax error, unexpected '<' in C:\wamp\www\test_forum\forum\voirtopic.php on line 94
qui correspond a cette page :
voirtopic.php
sont code :<?php error_reporting(E_ERROR | E_WARNING | E_PARSE); session_start(); $titre="Voir un sujet"; include("includes/identifiants.php"); include("includes/debut.php"); include("includes/menu.php"); include("includes/bbcode.php"); //On verra plus tard ce qu'est ce fichier //On récupère la valeur de t $topic = (int) $_GET['t']; //A partir d'ici, on va compter le nombre de messages pour n'afficher que les 15 premiers $query=$db->prepare('SELECT topic_titre, topic_post, forum_topic.forum_id, topic_last_post, forum_name, auth_view, auth_topic, auth_post FROM forum_topic LEFT JOIN forum_forum ON forum_topic.forum_id = forum_forum.forum_id WHERE topic_id = :topic'); $query->bindValue(':topic',$topic,PDO::PARAM_INT); $query->execute(); $data=$query->fetch(); $forum=$data['forum_id']; $totalDesMessages = $data['topic_post'] + 1; $nombreDeMessagesParPage = 15; $nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage); echo '<p><i>Vous êtes ici</i> : <a href="./index.php">Index du forum</a> --> <a href="./voirforum.php?f='.$forum.'">'.stripslashes(htmlspecialchars($data['forum_name'])).'</a> --> <a href="./voirtopic.php?t='.$topic.'">'.stripslashes(htmlspecialchars($data['topic_titre'])).'</a>'; echo '<h1>'.stripslashes(htmlspecialchars($data['topic_titre'])).'</h1><br /><br />'; //Nombre de pages $page = (isset($_GET['page']))?intval($_GET['page']):1; //On affiche les pages 1-2-3 etc... echo '<p>Page : '; for ($i = 1 ; $i <= $nombreDePages ; $i++) { if ($i == $page) //On affiche pas la page actuelle en lien { echo $i; } else { echo '<a href="voirtopic.php?t='.$topic.'&page='.$i.'"> ' . $i . '</a> '; } } echo'</p>'; $premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage; //On affiche l'image répondre echo'<a href="./poster.php?action=repondre&t='.$topic.'"> <img src="./images/repondre.gif" alt="Répondre" title="Répondre à ce topic" /></a>'; //On affiche l'image nouveau topic echo'<a href="./poster.php?action=nouveautopic&f='.$data['forum_id'].'"> <img src="./images/nouveau.gif" alt="Nouveau topic" title="Poster un nouveau topic" /></a>'; $query->CloseCursor(); //Enfin on commence la boucle ! $query=$db->prepare('SELECT post_id , post_createur , post_texte , post_time , membre_id, membre_pseudo, membre_inscrit, membre_avatar, membre_localisation, membre_post, membre_signature FROM forum_post LEFT JOIN forum_membres ON forum_membres.membre_id = forum_post.post_createur WHERE topic_id =:topic ORDER BY post_id LIMIT :premier, :nombre'); $query->bindValue(':topic',$topic,PDO::PARAM_INT); $query->bindValue(':premier',(int) $premierMessageAafficher,PDO::PARAM_INT); $query->bindValue(':nombre',(int) $nombreDeMessagesParPage,PDO::PARAM_INT); $query->execute(); //On vérifie que la requête a bien retourné des messages if ($query->rowCount()<1) { echo'<p>Il n y a aucun post sur ce topic, vérifiez l url et reessayez</p>'; } else { //Si tout roule on affiche notre tableau puis on remplit avec une boucle ?> <table> <tr> <th class="vt_auteur"><strong>Auteurs</strong></th> <th class="vt_mess"><strong>Messages</strong></th> </tr> <?php while ($data = $query->fetch()) { <?php //On commence à afficher le pseudo du créateur du message : //On vérifie les droits du membre //(partie du code commentée plus tard) echo'<tr><td><strong> <a href="./voirprofil.php?m='.$data['membre_id'].'&action=consulter"> '.stripslashes(htmlspecialchars($data['membre_pseudo'])).'</a></strong></td>'; /* Si on est l'auteur du message, on affiche des liens pour Modérer celui-ci. Les modérateurs pourront aussi le faire, il faudra donc revenir sur ce code un peu plus tard ! */ if ($id == $data['post_createur']) { echo'<td id=p_'.$data['post_id'].'>Posté à '.date('H\hi \l\e d M y',$data['post_time']).' <a href="./poster.php?p='.$data['post_id'].'&action=delete"> <img src="./images/supprimer.gif" alt="Supprimer" title="Supprimer ce message" /></a> <a href="./poster.php?p='.$data['post_id'].'&action=edit"> <img src="./images/editer.gif" alt="Editer" title="Editer ce message" /></a></td></tr>'; } else { echo'<td> Posté à '.date('H\hi \l\e d M y',$data['post_time']).' </td></tr>'; } //Détails sur le membre qui a posté echo'<tr><td> <img src="./images/avatars/'.$data['membre_avatar'].'" alt="" /> <br />Membre inscrit le '.date('d/m/Y',$data['membre_inscrit']).' <br />Messages : '.$data['membre_post'].'<br /> Localisation : '.stripslashes(htmlspecialchars($data['membre_localisation'])).'</td>'; //Message echo'<td>'.code(nl2br(stripslashes(htmlspecialchars($data['post_texte'])))).' <br /><hr />'.code(nl2br(stripslashes(htmlspecialchars($data['membre_signature'])))).'</td></tr>'; } //Fin de la boucle ! \o/ $query->CloseCursor(); ?> </table> <?php echo '<p>Page : '; for ($i = 1 ; $i <= $nombreDePages ; $i++) { if ($i == $page) //On affiche pas la page actuelle en lien { echo $i; } else { echo '<a href="voirtopic.php?t='.$topic.'&page='.$i.'"> ' . $i . '</a> '; } } echo'</p>'; //On ajoute 1 au nombre de visites de ce topic $query=$db->prepare('UPDATE forum_topic SET topic_vu = topic_vu + 1 WHERE topic_id = :topic'); $query->bindValue(':topic',$topic,PDO::PARAM_INT); $query->execute(); $query->CloseCursor(); } //Fin du if qui vérifiait si le topic contenait au moins un message ?> </div> </body> </html> -
Encore une erreur, mais cette fois quand on veux voir un sujet :
( ! ) Fatal error: Call to undefined function code() in C:\wamp\www\test_forum\forum\voirtopic.php on line 131
Call Stack
# Time Memory Function Location
1 0.0040 409296 {main}( ) ..\voirtopic.php:0
Code du fichier voirtopic.php :
<?php error_reporting(E_ERROR | E_WARNING | E_PARSE); session_start(); $titre="Voir un sujet"; include("includes/identifiants.php"); include("includes/debut.php"); include("includes/menu.php"); include("includes/bbcode.php"); //On verra plus tard ce qu'est ce fichier //On récupère la valeur de t $topic = (int) $_GET['t']; //A partir d'ici, on va compter le nombre de messages pour n'afficher que les 15 premiers $query=$db->prepare('SELECT topic_titre, topic_post, forum_topic.forum_id, topic_last_post, forum_name, auth_view, auth_topic, auth_post FROM forum_topic LEFT JOIN forum_forum ON forum_topic.forum_id = forum_forum.forum_id WHERE topic_id = :topic'); $query->bindValue(':topic',$topic,PDO::PARAM_INT); $query->execute(); $data=$query->fetch(); $forum=$data['forum_id']; $totalDesMessages = $data['topic_post'] + 1; $nombreDeMessagesParPage = 15; $nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage); echo '<p><i>Vous êtes ici</i> : <a href="./index.php">Index du forum</a> --> <a href="./voirforum.php?f='.$forum.'">'.stripslashes(htmlspecialchars($data['forum_name'])).'</a> --> <a href="./voirtopic.php?t='.$topic.'">'.stripslashes(htmlspecialchars($data['topic_titre'])).'</a>'; echo '<h1>'.stripslashes(htmlspecialchars($data['topic_titre'])).'</h1><br /><br />'; //Nombre de pages $page = (isset($_GET['page']))?intval($_GET['page']):1; //On affiche les pages 1-2-3 etc... echo '<p>Page : '; for ($i = 1 ; $i <= $nombreDePages ; $i++) { if ($i == $page) //On affiche pas la page actuelle en lien { echo $i; } else { echo '<a href="voirtopic.php?t='.$topic.'&page='.$i.'"> ' . $i . '</a> '; } } echo'</p>'; $premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage; //On affiche l'image répondre echo'<a href="./poster.php?action=repondre&t='.$topic.'"> <img src="./images/40790.gif" alt="Répondre" title="Répondre à ce topic" /></a>'; //On affiche l'image nouveau topic echo'<a href="./poster.php?action=nouveautopic&f='.$data['forum_id'].'"> <img src="./images/40789.gif" alt="Nouveau topic" title="Poster un nouveau topic" /></a>'; $query->CloseCursor(); //Enfin on commence la boucle ! $query=$db->prepare('SELECT post_id , post_createur , post_texte , post_time , membre_id, membre_pseudo, membre_inscrit, membre_avatar, membre_localisation, membre_post, membre_signature FROM forum_post LEFT JOIN forum_membres ON forum_membres.membre_id = forum_post.post_createur WHERE topic_id =:topic ORDER BY post_id LIMIT :premier, :nombre'); $query->bindValue(':topic',$topic,PDO::PARAM_INT); $query->bindValue(':premier',(int) $premierMessageAafficher,PDO::PARAM_INT); $query->bindValue(':nombre',(int) $nombreDeMessagesParPage,PDO::PARAM_INT); $query->execute(); //On vérifie que la requête a bien retourné des messages if ($query->rowCount()<1) { echo'<p>Il n y a aucun post sur ce topic, vérifiez l url et reessayez</p>'; } else { //Si tout roule on affiche notre tableau puis on remplit avec une boucle ?> <table> <tr> <th class="vt_auteur"><strong>Auteurs</strong></th> <th class="vt_mess"><strong>Messages</strong></th> </tr> <?php while ($data = $query->fetch()) { //On commence à afficher le pseudo du créateur du message : //On vérifie les droits du membre //(partie du code commentée plus tard) echo'<tr><td><strong> <a href="./voirprofil.php?m='.$data['membre_id'].'&action=consulter"> '.stripslashes(htmlspecialchars($data['membre_pseudo'])).'</a></strong></td>'; /* Si on est l'auteur du message, on affiche des liens pour Modérer celui-ci. Les modérateurs pourront aussi le faire, il faudra donc revenir sur ce code un peu plus tard ! */ if ($id == $data['post_createur']) { echo'<td id=p_'.$data['post_id'].'>Posté à '.date('H\hi \l\e d M y',$data['post_time']).' <a href="./poster.php?p='.$data['post_id'].'&action=delete"> <img src="./images/supprimer.gif" alt="Supprimer" title="Supprimer ce message" /></a> <a href="./poster.php?p='.$data['post_id'].'&action=edit"> <img src="./images/editer.gif" alt="Editer" title="Editer ce message" /></a></td></tr>'; } else { echo'<td> Posté à '.date('H\hi \l\e d M y',$data['post_time']).' </td></tr>'; } //Détails sur le membre qui a posté echo'<tr><td> <img src="./images/avatars/'.$data['membre_avatar'].'" alt="" /> <br />Membre inscrit le '.date('d/m/Y',$data['membre_inscrit']).' <br />Messages : '.$data['membre_post'].'<br /> Localisation : '.stripslashes(htmlspecialchars($data['membre_localisation'])).'</td>'; //Message echo'<td>'.code(nl2br(stripslashes(htmlspecialchars($data['post_texte'])))).' <br /><hr />'.code(nl2br(stripslashes(htmlspecialchars($data['membre_signature'])))).'</td></tr>'; } //Fin de la boucle ! \o/ $query->CloseCursor(); ?> </table> <?php echo '<p>Page : '; for ($i = 1 ; $i <= $nombreDePages ; $i++) { if ($i == $page) //On affiche pas la page actuelle en lien { echo $i; } else { echo '<a href="voirtopic.php?t='.$topic.'&page='.$i.'"> ' . $i . '</a> '; } } echo'</p>'; //On ajoute 1 au nombre de visites de ce topic $query=$db->prepare('UPDATE forum_topic SET topic_vu = topic_vu + 1 WHERE topic_id = :topic'); $query->bindValue(':topic',$topic,PDO::PARAM_INT); $query->execute(); $query->CloseCursor(); } //Fin du if qui vérifiait si le topic contenait au moins un message ?> </div> </body> </html>
-
-
-
En effet ^^
C'est bien cela ^^
Par contre j'ai ce message :
( ! ) Fatal error: Call to undefined function code() in C:\wamp\www\test_forum\forum\voirtopic.php on line 130
Call Stack
# Time Memory Function Location
1 0.0048 408576 {main}( ) ..\voirtopic.php:0
Et je n'est pas le message que j'ai posté sur la page voirtopic.php -
-
-
J'ai encore un autre problème avec l'administration cette fois.
Je me suis mis admin sur le compte que j'ai créer, mais il y as un problème,
quand j'essais d'accéder au panneau d'admin, je ne peux pas, il met un un message d'erreur comme quoi je ne suis pas admin.
Voici le code du fichier functions.php :<?php function erreur($err='') { $mess=($err!='')? $err:'Une erreur inconnue s\'est produite'; exit('<p>'.$mess.'</p> <p>Cliquez <a href="./index.php">ici</a> pour revenir à la page d\'accueil</p></div></body></html>'); } function move_avatar($avatar) { $extension_upload = strtolower(substr( strrchr($avatar['name'], '.') ,1)); $name = time(); $nomavatar = str_replace(' ','',$name).".".$extension_upload; $name = "./images/avatars/".str_replace(' ','',$name).".".$extension_upload; move_uploaded_file($avatar['tmp_name'],$name); return $nomavatar; } function verif_auth($auth_necessaire) { $level=(isset($_SESSION['level']))?$_SESSION['level']:1; return ($auth_necessaire <= intval($level)); } ?>
Et le code du fichier admin.php :<?php error_reporting(E_ERROR | E_WARNING | E_PARSE); session_start(); $titre="Administration"; $balises = true; include("includes/identifiants.php"); include("includes/debut.php"); include("includes/menu.php"); // On indique o l'on se trouve $cat = (isset($_GET['cat']))?htmlspecialchars($_GET['cat']):''; echo'<p><i>Vous êtes ici</i> : <a href="./index.php">Index du forum</a> --> <a href="./admin.php">Administration du forum</a>'; if (!verif_auth(ADMIN)) erreur(ERR_AUTH_ADMIN); switch($cat) //1er switch { case "config": //ici configuration echo'<h1>Configuration du forum</h1>'; echo '<form method="post" action="adminok.php?cat=config">'; //Le tableau associatif $config_name = array( "avatar_maxsize" => "Taille maximale de l avatar", "avatar_maxh" => "Hauteur maximale de l avatar", "avatar_maxl" => "Largeur maximale de l avatar", "sign_maxl" => "Taille maximale de la signature", "auth_bbcode_sign" => "Autoriser le bbcode dans la signature", "pseudo_maxsize" => "Taille maximale du pseudo", "pseudo_minsize" => "Taille minimale du pseudo", "topic_par_page" => "Nombre de topics par page", "post_par_page" => "Nombre de posts par page", "forum_titre" => "Titre du forum" ); $query = $db->query('SELECT config_nom, config_valeur FROM forum_config'); while($data=$query->fetch()) { echo '<p><label for='.$data['config_nom'].'>'.$config_name[$data['config_nom']].' </label> : <input type="text" id="'.$data['config_nom'].'" value="'.$data['config_valeur'].'" name="'.$data['config_nom'].'"></p>'; } echo '<p><input type="submit" value="Envoyer" /></p></form>'; $query->CloseCursor(); break; case "forum": //Ici forum $action = htmlspecialchars($_GET['action']); //On récupère la valeur de action switch($action) //2eme switch { case "creer": //Création d'un forum //1er cas : pas de variable c if(empty($_GET['c'])) { echo'<br /><br /><br />Que voulez-vous faire?<br /> <a href="./admin.php?cat=forum&action=creer&c=f">Créer un forum</a><br /> <a href="./admin.php?cat=forum&action=creer&c=c">Créer une catégorie</a></br>'; } //2ème cas : on cherche à créer un forum (c=f) elseif($_GET['c'] == "f") { $query=$db->query('SELECT cat_id, cat_nom FROM forum_categorie ORDER BY cat_ordre DESC'); echo'<h1>Création d un forum</h1>'; echo'<form method="post" action="./adminok.php?cat=forum&action=creer&c=f">'; echo'<label>Nom :</label><input type="text" id="nom" name="nom" /><br /><br /> <label>Description :</label> <textarea cols=40 rows=4 name="desc" id="desc"></textarea> <br /><br /> <label>Catégorie : </label><select name="cat">'; while($data = $query->fetch()) { echo'<option value="'.$data['cat_id'].'">'.$data['cat_nom'].'</option>'; } echo'</select><br /><br /> <input type="submit" value="Envoyer"></form>'; $query->CloseCursor(); } //3ème cas : on cherche à créer une catégorie (c=c) elseif($_GET['c'] == "c") { echo'<h1>Création d une catégorie</h1>'; echo'<form method="post" action="./adminok.php?cat=forum&action=creer&c=c">'; echo'<label> Indiquez le nom de la catégorie :</label> <input type="text" id="nom" name="nom" /><br /><br /> <input type="submit" value="Envoyer"></form>'; } break; case "edit": //Edition d'un forum break; case "droits": //Gestion des droits break; default; //action n'est pas remplie, on affiche le menu echo'<h1>Administration des forums</h1>'; echo'<p>Bonjour, cher administrateur :p, que veux tu faire ? <br /> <a href="./admin.php?cat=forum&action=creer">Créer un forum</a> <br /> <a href="./admin.php?cat=forum&action=edit">Modifier un forum</a> <br /> <a href="./admin.php?cat=forum&action=droits"> Modifier les droits d un forum</a><br /></p>'; break; } break; case "membres": //Ici membres $action = htmlspecialchars($_GET['action']); //On récupère la valeur de action switch($action) //2eme switch { case "edit": //Edition d'un membre break; case "droits": //Droits d'un membre (rang) break; case "ban": //Bannissement break; default; //action n'est pas remplie, on affiche le menu echo'<h1>Administration des membres</h1>'; echo'<p>Salut mon ptit, alors tu veux faire quoi ?<br /> <a href="./admin.php?cat=membres&action=edit"> Editer le profil d un membre</a><br /> <a href="./admin.php?cat=membres&action=droits"> Modifier les droits d un membre</a><br /> <a href="./admin.php?cat=membres&action=ban"> Bannir / Debannir un membre</a><br /></p>'; break; } break; default; //cat n'est pas remplie, on affiche le menu général echo'<h1>Index de l administration</h1>'; echo'<p>Bienvenue sur la page d administration.<br /> <a href="./admin.php?cat=config">Configuration du forum</a><br /> <a href="./admin.php?cat=forum">Administration des forums</a><br /> <a href="./admin.php?cat=membres">Administration des membres</a><br /></p>'; break; } ?>
Merci d'avance, car la je suis bien embêté ^^ -