8721 sujets

Développement web côté serveur, CMS

Bonjour,

Je rencontre une difficulté avec l'utilisation des $_SESSION et d'un mot de passe d'accès.

Voici les deux pages que j'ai créé :


<?php 
session_start(); 
?>

<!DOCTYPE html>
<html>
    <head>
		
		<title>.:: Admin - Concerts ::.</title>
	
		<meta charset="utf-8" />
		<meta name="description" content="Administration de la page concert."/>
		<meta name="author" content="Alexandre BENCHERIF"/>
        
		<link rel="stylesheet" href="style_admin.css"/>
		<link rel="shortcut icon" href="../images/the_viewers.ico"/>
		<!--[if lt IE 9]>
        <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
        <![endif]-->
		<!--[if lte IE 7]>
        <link rel="stylesheet" href="style_ie.css" />
        <![endif]-->
		
    </head>

	<body>
		<?php if (!isset($_SESSION['accesok']) OR $_SESSION['accesok'] == "faux")
		{
		include("verif_acces.php");
		}
		else
		{?>
			<h1> ADMINISTRATION </h1>
			<p> Bienvenue sur la page d'administration des dates de concerts. </p>	
			<p> Pour ajouter une date de concert, merci de bien vouloir remplir le formulaire ci-après.</p>

			<form method="post" action="concerts_admin.php" enctype="multipart/form-data">
				<label for="icone">Image de la date du concert : (PNG max 5000 Ko) :</label><br />
				<input type="file" name="icone" id="icone" /><br />
				<input type="hidden" name="max_file_size" value="5242880" /> <!--5242880 = 5 MO -->
				<label for="titre">Nom de l'image (MOIS(3-4 lettres) + - + jour(2 chiffres) + - + année(4 chiffres), par exemple : OCT-07-2014 pour le 07/10/2014) :</label><br />
				<input type="text" name="titre" value="Titre du fichier" id="titre" /><br />
				<input type="submit" name="submit" value="Envoyer" />
			</form>
				<?php echo $_FILES['icone']['name'];?></br><?php     //Le nom original du fichier, comme sur le disque du visiteur (exemple : mon_icone.png).
				echo $_FILES['icone']['type']; ?></br><?php   //Le type du fichier. Par exemple, cela peut être « image/png ».
				echo $_FILES['icone']['size']; ?></br><?php   //La taille du fichier en octets.
				echo $_FILES['icone']['tmp_name'];?></br><?php //L'adresse vers le fichier uploadé dans le répertoire temporaire.
				echo $_FILES['icone']['error'];  ?></br><?php //Le code d'erreur, qui permet de savoir si le fichier a bien été uploadé.
				?>
				<?php
				if ($_FILES['icone']['error'] > 0) $erreur = "Erreur lors du transfert";
				?>
				<?php
				if ($_FILES['icone']['size'] > $_POST['max_file_size']) $erreur = "Le fichier est trop gros";
				?>
				<?php echo $_SESSION['accesok'];?>
		<?php
		}?>
	</body>
</html>


et celle qui est inclue :
verif_acces.php :
	<?php
		if (!isset($_POST['mot_de_passe']) OR $_POST['mot_de_passe'] != "test") // Le mot de passe n'a pas été envoyé ou n'est pas bon
			{
	?>
				<!--Afficher le formulaire de saisie du mot de passe-->
				<p>Veuillez entrer le mot de passe pour acceder à cette page :</p>
				<form action="concerts_admin.php" method="post">
					<p>
					<input type="password" name="mot_de_passe" required/>
					<input type="submit" value="Valider" />
					</p>
				</form>
			    <p>Cette page est réservée aux administrateurs du site.</p>
	<?php
			}
		else // Le mot de passe a été envoyé et il est bon
			{
				$_SESSION['accesok'] = 'vrai';
			}
	?>


en effet, après avoir mis le mot de passe, la page ne s'affiche pas tout de suite, il faut réactualiser...
Je ne sais plus quoi faire, et j'ai l'impression de m'embrouiller un peu avec toute les solutions que je vois sur le net.

Voici le lien de la page accessible via le mot de passe "test" :
http://www.theviewers.fr/admin/concerts_admin.php

Par avance, je vous remercie de votre aide.
Modifié par Alexbass (08 Oct 2014 - 15:43)
En faite, j'aimerais pouvoir créer un espace d'administration pour que les membres du groupe puissent ajouter des dates de concerts facilement.

Avant je codais tout à la main. D'ailleurs, tout le site est codé à la mimine. www.theviewers.fr
Aujourd'hui, j'ai fais en sorte que cette page soit dynamique et liée à une table mysql : http://www.theviewers.fr/concerts.php

J'aimerais via l'interface d'administration, que les autres membres du groupe puissent renseigner la table mysql via un formulaire. D'où le début de formulaire avec l'upload d'image ici : http://www.theviewers.fr/admin/concerts_admin.php

Rassurez-vous, toutes images uploadées en phase "test" seront supprimées. Smiley cligne

Par avance, je vous remercie grandement de vos conseils et pistes éventuelles.
Re-bonjour,

Je galère toujours avec mon include.
Je suis obligé de recharger la page et d'envoyer de nouveau le formulaire pour que ça fonctionne.
Dans ma page principale, http://www.theviewers.fr/admin/concerts_admin.php , je fais ce test pour bloquer l'accès uniquement aux utilisateurs ayant connaissance du mot de passe :

<?php if (!isset($_SESSION['accesok']) OR $_SESSION['accesok'] == "faux") { include("verif_acces.php"); exit();} else {}?>

Voici le code de la page verif_acces.php :

<?php
   if (!isset($_POST['mot_de_passe']) OR $_POST['mot_de_passe'] != "test") // Le mot de passe n'a pas été envoyé ou n'est pas bon
   {
?>
   <!--Afficher le formulaire de saisie du mot de passe-->
	<p>Veuillez entrer le mot de passe pour acceder à cette page :</p>
	<form action="concerts_admin.php" method="post">
	<p>
	<input type="password" name="mot_de_passe" required/>
	<input type="submit" value="Valider" />
	</p>
	</form>
	<p>Cette page est réservée aux administrateurs du site.</p>
<?php
    }
    else // Le mot de passe a été envoyé et il est bon
   {
	$_SESSION['accesok'] = 'vrai';
   }
?>


Je vous remercie vivement de votre aide.
Modifié par Alexbass (08 Oct 2014 - 15:40)
J'ai reussi !!! hourra !!!

J'ai enlevé le exit(); dans mon test de départ. J'ai aussi enlevé le else qui servait à rien.

<?php if (!isset($_SESSION['accesok']) OR $_SESSION['accesok'] == "faux") { include("verif_acces.php");} ?>

Et j'ai rajouté mon exit(); sur la page verif_acces.php :

<?php
   if (!isset($_POST['mot_de_passe']) OR $_POST['mot_de_passe'] != "test") // Le mot de passe n'a pas été envoyé ou n'est pas bon
   {
?>
   <!--Afficher le formulaire de saisie du mot de passe-->
	<p>Veuillez entrer le mot de passe pour acceder à cette page :</p>
	<form action="concerts_admin.php" method="post">
	<p>
	<input type="password" name="mot_de_passe" required/>
	<input type="submit" value="Valider" />
	</p>
	</form>
	<p>Cette page est réservée aux administrateurs du site.</p>
<?php
    Exit();
    }
    else // Le mot de passe a été envoyé et il est bon
   {
	$_SESSION['accesok'] = 'vrai';
   }
?>


voilà voilà. C'est en forgeant que l'on devient forgeron !!!
Modifié par Alexbass (09 Oct 2014 - 13:21)