Et bien justement, les scripts du tuto sont fonctionnels, et te montrent comment faire.
C'est pas bien compliqué de faire un copier-coller du code et de le tester chez toi en modifiant juste au départ les lignes avec la mention "à modifier...".
Par rapport au tuto, en ayant modifié les deux lignes portant la mention 'A modifier...' dans ton cas cela donne :
<?php
// Indique le bon format des entêtes (par défaut apache risque de les envoyer au standard ISO-8859-1)
header('Content-type: text/html; charset=UTF-8');
/* Création d'une fonction - utilisée dans la récupération des variables - qui teste la configuration get_magic_quotes_gpc du serveur.
Si oui, supprime avec la fonction stripslashes les antislashes "\" insérés dans les chaines de caractère des variables gpc (GET, POST, COOKIE) */
function Verif_magicquotes ($chaine)
{
if (get_magic_quotes_gpc()) $chaine = stripslashes($chaine);
return $chaine;
}
// Initialisation du message de réponse
$message = null;
// Si le formulaire est envoyé
if (isset($_POST['pseudo']))
{
/* Récupération des variables issues du formulaire
Teste l'existence les données post en vérifiant qu'elles existent, qu'elles sont non vides et non composées uniquement d'espaces.
(Ce dernier point est facultatif et l'on pourrait se passer d'utiliser la fonction trim())
En cas de succès, on applique notre fonction Verif_magicquotes pour (éventuellement) nettoyer la variable */
$pseudo = (isset($_POST['pseudo']) && trim($_POST['pseudo']) != '')? Verif_magicquotes($_POST['pseudo']) : null;
$pass = (isset($_POST['pass']) && trim($_POST['pass']) != '')? Verif_magicquotes($_POST['pass']) : null;
// Si $pseudo et $pass différents de null
if(isset($pseudo,$pass))
{
/* Connexion au serveur : dans cet exemple, en local sur le serveur d'évaluation
A MODIFIER avec vos valeurs */
$hostname = "localhost";
$database = "aranhil";
$username = "root";
$password = "";
$connection = mysql_connect($hostname, $username, $password) or die(mysql_error());
// Connexion à la base
mysql_select_db($database, $connection);
// Indique à mySql de travailler en UTF-8 (par défaut mySql risque de travailler au standard ISO-8859-1)
mysql_query("SET NAMES 'utf8'");
// Préparation des données pour les requêtes à l'aide de la fonction mysql_real_escape_string
$nom = mysql_real_escape_string($pseudo);
$password = mysql_real_escape_string($pass);
/* Requête pour récupérer les enregistrements répondant à la clause :
champ du pseudo et champ du mdp de la table = pseudo et mdp postés dans le formulaire*/
$requete = "SELECT * FROM inscription WHERE pseudo = '".$nom."' AND mot_de_passe = '".$password."'";
// Exécution de la requête
$req_exec = mysql_query($requete) or die(mysql_error());
// Création du tableau associatif du résultat
$resultat = mysql_fetch_assoc($req_exec);
// Les valeurs (si elles existent) sont retournées dans le tableau $resultat;
if (isset($resultat['pseudo'],$resultat['pass']))
{
/* Démarre la session et enregistre le pseudo dans la variable de session $_SESSION['login']
qui donne au visiteur la possibilité de visiter les pages protégées. */
session_start();
$_SESSION['login'] = $pseudo;
// A MODIFIER Remplacer le '#' par l'adresse de votre page de destination, sinon ce lien indique la page actuelle.
$message = 'Bonjour '.htmlspecialchars($_SESSION['login']).' <a href = "general.php">Cliquez ici pour vous connecter</a>';
}
else
{ // Le pseudo ou le mot de passe sont incorrect
$message = 'Le pseudo ou le mot de passe sont incorrect';
}
}
else
{ //au moins un des deux champs "pseudo" ou "mot de passe" n'a pas été rempli
$message = 'Les champs Pseudo et Mot de passe doivent être remplis.';
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr"><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Formulaire de connexion</title>
<style type="text/css">
<!--
body, p, h1,form, input {
margin:0;
padding:0;
}
body {
background-color:#FFFFFF
}
#connexion {
width:380px;
background:#FFFFFF;
margin:20px auto;
font-family: Arial, Helvetica, sans-serif;
font-size:1em;
border:2px solid #333333;
}
#connexion h1 {
text-align:center;
font-size:1.2em;
background:#333333;
padding-bottom:5px;
margin-bottom:15px;
color:#FFFFFF;
letter-spacing:0.05em;
}
#connexion p {
padding-top:15px;
padding-right:50px;
text-align:right;
}
#connexion input {
margin-left:30px;
width:150px;
}
#connexion #valider {
width:155px;
font-size:0.8em;
}
#connexion #message {
height:27px;
font-size:0.7em;
font-weight:bold;
text-align:center;
padding:10px 0 0 0;
}
-->
</style>
</head>
<body>
<div id = "connexion">
<form action = "#" method="post">
<h1>Connexion</h1>
<p><label for = "pseudo">Pseudo : </label><input type="text" name="pseudo" id="pseudo" /></p>
<p><label for = "pass">Mot de passe : </label><input type="password" name="pass" id="pass" /></p>
<p><input type="submit" value="Envoyer" id = "valider" /></p>
</form>
<p id = "message"><?php if(isset($message)) echo $message ?></p>
</div>
</body>
</html>
remarques que par rapport au tuto, j'ai modifié en plus la requête
$requete = "SELECT * FROM inscription WHERE pseudo = '".$nom."' AND mot_de_passe = '".$password."'";
pour la faire corresponde à ta table qui apparemment se nomme "inscription" et possède les champs "pseudo" et "mot_de_passe" (alors que dans le tuto original la requête prend en compte la table initialement créée pour la démonstration qui se nomme "membres" avec les champs "pseudo" et "pass").
Voilà c'est tout ce qu'il y avait à modifier. Tu as le code complet (inutile de le séparer en plusieurs blocs) et toutes les pages que les visiteurs pourront visiter (dans ton cas "general.php") en ayant été authentifié devront commencer par
<?php session_start();
if(!isset($_SESSION['login'])) {die('Vous devez être enregistré pour accéder à cette partie du site');}
?>
Bon il est vrai le tuto que j'ai fait ne s'adresse pas tout à fait aux grands débutants, mais aux débutants ayant un "minimum" de base. Disons que le pré requis pour être un peu à l'aise est d'avoir fait les tutos de la colonne de droite de ce site
http://www.phpdebutant.org/ après ça devrait être plus facile.