if...include

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : if...include

Re: if...include

par Cyrano » 29 sept. 2010, 13:10

Sobs, soit dit sans aucunement vouloir être désagréable : le UP ne sert à rien et le précédent message nous montre pas mal de code sans la moindre explication.

Pour pouvoir t'apporter une aide quelconque, n'oublie pas qu'on doit pouvoir comprendre quels sont tes raisonnements logiques, par quelles étapes tu passes pour obtenir le résultat souhaité, pas juste ton code source.

Encore une fois, et je crois qu'on ne le répètera jamais assez, la programmation, c'est de la logique pure. La machine ne comprend strictement rien, elle exécute des instructions telles qu'elles lui sont données. La machine ne fait pas d'erreur, les erreurs sont dans les instructions. Donc, si tu n'obtiens pas le résultat attendu, c'est qu'au moins une des instruction est erronée ou manquante.

Je n'ai pas regardé le sujet traité ici, mais quel qu'il soit, c'est toujours un problème de logique basé sur ta compréhension du fonctionnement général de ton application. Tente de te représenter les situation successives à partir de la réception par le serveur de la demande d'une page jusqu'à l'affichage du résultat : quels paramètres sont reçus, quelle page est demandée, et à chaque situation, vérifie si les éléments sont bien ceux qui devraient être pour la situation en question.

Re: if...include

par Sobs » 29 sept. 2010, 12:56

up 8-|

Re: if...include

par Sobs » 28 sept. 2010, 18:34

Je gére en session !

ma page connexion.php :
<?php
if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
	if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {

		$base = mysql_connect ('*****.1and1.fr', '*******', '********');
		mysql_select_db ('******', $base);

		$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.mysql_escape_string(md5($_POST['pass'])).'"';
		$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
		$data = mysql_fetch_array($req);

		mysql_free_result($req);
		mysql_close();

		if ($data[0] == 1) {
			session_start();
			$_SESSION['login'] = $_POST['login'];
			header('Location: membre.php');
			exit();
		}

		elseif ($data[0] == 0) {
			$erreur = 'Compte non reconnu.';
		}

		else {
			$erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
		}
	}
	else {
		$erreur = 'Au moins un des champs est vide.';
	}
}
?>


ça c'est ma page membre :
<?php
session_start();
if (!isset($_SESSION['login'])) {
	header ('Location: connexion.php');
	exit();
}
?>

<html>
<head>
<title>Espace membre</title>
</head>
<body>
<div id="connexion">
	<span>
		Bienvenue<?php echo htmlentities(trim($_SESSION['login'])); ?>!<br /><br>
		<a href="deconnexion.php">Déconnexion</a>
	</span>
</div>	
</body>
</html>

Re: if...include

par Gatt » 28 sept. 2010, 18:05

Bah tu gère comment l'état de connexion ? en variable globale ou en session ?
Dans mon exemple c'est $authentification qui sert à cela. Dans ton cas, je sais pas comment c'est fait donc non tu ne peux pas appliquer cela en l'état mais avec une autre variable que $authentification

Re: if...include

par Sobs » 28 sept. 2010, 17:36

J'ai juste à mettre ça dans mon code dans la bonne div ?
switch ($authentification) {
case 0: include ("connexion.php");break;
case 1: include ("membre.php");break;
case 2: include ("inscription.php");break;
case 3: include ("deconnexion.php");break;
default: break;
}

Re: if...include

par Gatt » 28 sept. 2010, 16:33

En fait tu peux utiliser un controleur qui gère ton affichage mais aussi faire cela directement par un switch suivant l'état de ta connexion.

Exemple : disons que
$authentification = 0 // non connecté
$authentification = 1 // connecté
$authentification = 2 // inscription
$authentification = 3 // déconnexion
switch ($authentification) {
case 0: include ("connexion.php");break;
case 1: include ("membre.php");break;
case 2: include ("inscription.php");break;
case 3: include ("deconnexion.php");break;
default: break;
}

Re: if...include

par Sobs » 28 sept. 2010, 16:21

Le probléme est que je ne sais pas comment écrire mon code if-else avec les includes...

Re: if...include

par xTG » 28 sept. 2010, 16:17

Exactement, une série de if-else ou bien un switch-case.

if...include

par Sobs » 28 sept. 2010, 15:52

Bonjour
J'ai crée 4 pages : connexion.php inscription.php membre.php et deconnexion.php.

Mon probléme est le suivant : j'aimerais que toutes les pages apparaissent aux même endroit.

Exemple je me connecte = alors le formulaire de connexion disparait et le code de la page membre.php apparait a la place.

Je pense que cela se traduira pas un if... include.

Merci d'avance.