Je fais un site, qui nécessite à une connexion à une base de donnée et l'utilisation de sessions.
Lorsque je le faisais marcher sur un serveur interne ou sur un autre site ça fonctionnait. Maintenant que je le mets sur l'hébergeur (OVH), ça ne fonctionne plus.
J'ai bien accès à la base de données donc ça ne vient pas de là :
En fait, ma page principal se présente comme ça :
Code : Tout sélectionner
<?php
include('/include/session.inc.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<link rel="StyleSheet" href="/styleindex.css" type="text/css" />
<script type="text/javascript">
<!--
window.onload=montre;
function montre(id) {
var d = document.getElementById(id);
for (var i = 1; i<=10; i++) {
if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';}
}
if (d) {d.style.display='block';}
}
//-->
</script>
</head>
<body>
<div class="conteneur">
<div class="entetegauche">
</div>
<div class="entetedroite">
<?php
include('/include/identifiant.inc.php');
?>
</div>
<div class="bandeau">
</div>
<div class="menuhorizontal">
<?php
include('/include/menuhorizontal.inc.php');
?>
</div>
<div class="menuvertical">
<?php
include('/include/menuverticalgeneral.inc.php');
?>
</div>
<div class="contenu">
<?php
include('/include/affichage5infos.inc.php');
?>
</div>
<div class="colonnedroite">
<?php
include('/include/colonnedroitegeneral.inc.php');
?>
</div>
<div class="pied">
<?php
include('/include/pied.inc.php');
?>
</div>
</div>
</body>
</html>
Je vous mets les différents include :
session.inc.php :
<?php
ini_set('arg_separator.output', '&');
ini_set("url_rewriter.tags","a=href,area=href,frame=src,iframe=src,input=src");
session_start();
$hote= 'xxx';
$user = 'xxx';
$passe ='xxx';
$base= 'xxx';
$connexion = mysql_connect($hote, $user,$passe);
mysql_select_db($base,$connexion);
?>
et identifiant.inc.php :<?php
if($_SESSION['pseudo'] == '') {
$message = "<p>Pour vous connecter, merci d'indiquer votre <em>identifiant</em> et votre <em>mot de passe</em></p>";
include('/include/identification.inc.php'); }
else {
switch ($_SESSION['categorie']) {
case "admin": $lienhorizontal = '<a href="/espacereserve.php">espace réservé</a>';break;
case "eleve": $lienhorizontal = '<a href="/espacereserve.php">espace réservé</a>';break;
}
echo '<p>Bonjour ', $_SESSION['prenom'], ' ', $_SESSION['nom'], ' |', $lienhorizontal, '</p>';
}
?>
Ca envoie sur le script identification.inc.php :Code : Tout sélectionner
<?php
echo $message;
?>
<form method="post" action="/login.php">
<p><br />
<label for="pseudo">Identifiant : </label><input type="text" name="pseudo" size="15px" id="pseudo" /><br />
<label for="motdepasse">Mot de passe : </label><input type="password" name="motdepasse" size="15px" id="motdepasse" /><br />
<input type="submit" value="connexion" id="connexion" />
</p>
</form>
<?php
if($_SESSION['pseudo'] == '') {
// on regarde si le formulaire est bon pour voir si le champ pseudo est vide
if (isset($_POST) && empty($_POST['pseudo']) && !empty($_POST['motdepasse'])) {
$message = '<p>Vous avez oublié d\'indiquer votre <i>identifiant</i></p>';
include('/include/identification.inc.php');
}
// pour voir si le champ mot de passe est vide
if (isset($_POST) && !empty($_POST['pseudo']) && empty($_POST['motdepasse'])) {
$message = '<p>Vous avez oublié d\'indiquer votre <i>mot de passe</i></p>';
include('/include/identification.inc.php');
}
// pour voir si les champs pseudo et mot de passe sont vides
if(isset($_POST) && empty($_POST['pseudo']) && empty($_POST['motdepasse'])) {
$message = '<p>Merci de rentrer votre <i>identifiant</i> et votre <i>mot de passe</i></p>';
include('/include/identification.inc.php');
}
// Si les deux sont remplis alors :
if(isset($_POST) && !empty($_POST['pseudo']) && !empty($_POST['motdepasse'])) {
// on extrait les données
extract($_POST);
// on va chercher les données pour le pseudo entrée
$sql = "SELECT * FROM identification WHERE pseudo='$pseudo'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
// on récupère les entrées comme il faut
$data = mysql_fetch_assoc($req);
// on compare ce qu'on a entré et le vrai mot de passe
if($data['motdepasse'] != $motdepasse) {
$message = '<p>Les informations rentrées ne sont pas correctes</p>';
include('/include/identification.inc.php');
}
else
{
$_SESSION['logged'] = 1;
$_SESSION['pseudo'] = $data['pseudo'];
$_SESSION['nom'] = $data['nom'];
$_SESSION['prenom'] = $data['prenom'];
$_SESSION['categorie'] = $data['categorie'];
/* on crée la fonction du lien supplémentaire dans le menu. */
switch ($data['categorie']) {
case "admin": $lienhorizontal = '<a href="/espacereserve.php">espace réservé</a>';break;
case "eleve": $lienhorizontal = '<a href="/espacereserve.php">espace réservé</a>';break;
}
// on affiche le nom et le prénom
echo '<p>Bonjour ', $data['prenom'], ' ', $data['nom'], ' | ', $lienhorizontal, '</p>';
}
}
}
else {
switch ($_SESSION['categorie']) {
case "admin": $lienhorizontal = '<a href="/espacereserve.php">espace réservé</a>';break;
case "eleve": $lienhorizontal = '<a href="/eleve">espace réservé</a>';break;
}
echo '<p>Bonjour ', $_SESSION['prenom'], ' ', $_SESSION['nom'], ' |', $lienhorizontal, '</p>';
}
?>
Voilà.Bon ce qui ne marche pas, c'est que le $message de n'affiche jamais, car probablement le session_start(); de mon include session n'est pasp ris en compte. Par ailleurs, ça renvoie bien sur login, masi rien ne s'affiche, Je pensais bien une erreur sur le formulaire mais je n'ai pas trouver !... Mais pourquoi, je n'en ai pas dormi de la nuit !!!
Si quelquu'n a une idée...
Merci
Edit : Précisions : il semble que ce soit le fomulaire qui n'envoie pas le POST à login, car il agit comme si rien ne se passait !