|
Membre confirmé
Inscription : mars 2003 Messages : 674 Détails du profil  Informations forums : Inscription : mars 2003 Messages : 674 Points : 242 Points : 242
|
[Cookies] Problème avec session_start
Bonjour.
Ca va être un peu long mais je préfère tout donner maintenant.
Sur ma page index.php j'ai un bouton qui affiche une page pour s'enregistrer dont voici une partie du code
Code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| <!-- Menu -->
<dl id="menu">
<dt><a href="index.php?page=accueil"><img src="images/menu/accueil.GIF" border="0" onMouseover="this.src='images/menu/accueilh.GIF'"; onMouseout="this.src='images/menu/accueil.GIF'"></a></dt>
<dt><a href="index.php?page=abo"><img src="images/menu/abonnement.GIF" border="0" onMouseover="this.src='images/menu/abonnementh.GIF'"; onMouseout="this.src='images/menu/abonnement.GIF'"></a></dt>
<dt onmouseover="javascript:montre('smenu1');" onmouseout="javascript:montre();"><img src="images/menu/archives.GIF" border="0" onMouseover="this.src='images/menu/archivesh.GIF'"; onMouseout="this.src='images/menu/archives.GIF'"></a></dt>
<dd id="smenu1" onmouseover="javascript:montre('smenu1');" onmouseout="javascript:montre();">
<ul>
<li><a href="index.php?page=2005"> 2005</a></li>
</ul>
</dd>
<dt onmouseover="javascript:montre('smenu4');" onmouseout="javascript:montre();"><a href="#"> Réseaux</a></dt>
<dt onmouseover="javascript:montre('');" onmouseout="javascript:montre();"><a href="index.php?page=reseaux1"> Réseaux (payant)</a></dt>
</dl>
</div>
<div class="frame">
<?php
if (!isset($_GET['page'])) $page= 'accueil'; else $page= $_GET['page'];
switch($page)
{
//menu horizontal
case 'accueil': include ('accueil.php');break;
case 'contacts': include ('contacts.php');break;
//menu vertical
case 'abo': include ('membres/membre_nouveau.php');break;
case 'inscriptions': include ('inscription.php');break;
case 'reseaux1': include ('reseaux_1.php');break;
case 'reseaux': include ('reseaux.php');break;
case 'insc': include ('membres/membre_nouveau.php');break;
case 'enreg_nouveau': include ('membres/enreg_nouveau.php');break;
//liens page d'accueil
case 'fr2s6': include ('revues/fr2s6.php');break;
case 'fr2s5': include ('revues/fr2s5.php');break;
case 'fr2s4': include ('revues/fr2s4.php');break;
}
?> |
Dans un sous-répertoire "membres" j'ai :
-un fichier fns_affichage.php qui contient un formulaire.
-un fichier enreg_nouveau.php qui contient le code suivant
Code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| <?php
require('connect.php');
// include function files for this application
require_once('fns_reseaux.php');
//creation des variables aux noms abrégés
$surname=$_POST['surname'];
$name=$_POST['name'];
$adresse=$_POST['adresse'];
$codep=$_POST['codep'];
$ville=$_POST['ville'];
$username=$_POST['username'];
$email=$_POST['email'];
$passwd=$_POST['passwd'];
$passwd2=$_POST['passwd2'];
$revue=$_POST['revue'];
$revue1=$_POST['revue1'];
$lci=$_POST['lci'];
$li=$_POST['li'];
$reseaux=$_POST['reseaux'];
//enregistrement d'un nouveau membre
//référence d'acces
$ac = "RS";
$acces = "";
$nombre = 0;
$result_sql = mysql_query('Select id_nom, acces From admin order by id_nom',$connexion);
while ($row = mysql_fetch_array($result_sql))
{
$nombre=substr($row['acces'],4);
}
if ($nombre == 0) $nombre = 100110;
else $nombre += 1;
$acces = substr($username,0,2);
$acces = $ac.$acces.$nombre;
// date du jour
$date= $date=date("Y-m-d");
//codage du mot de passe
$passwd=sha1($passwd);
//appel de la fonction d'enregistrement
register($surname, $name, $adresse, $codep, $ville, $revue, $revue1, $lci, $li, $reseaux, $email, $username, $passwd, $acces, $date);
echo "<font face='verdana' size=1><br><br>Nous vous remercions de vous être inscrit(e)<br>Notez votre code confidentiel :<b> $acces</b>";
?> |
-un fichier fns_auth_user.php qui contient ce code
Code :
1 2 3 4 5 6 7 8 9 10 11 12 13
| <?php
require('connect.php');
function register($surname, $name, $adresse, $codep, $ville, $revue, $revue1, $lci, $li, $reseaux, $email, $username, $passwd, $acces, $date)
{
$sql = "INSERT INTO admin(id_nom, nom, prenom, adresse, code_postal, ville, revue, revue1, lettre_ci, lettre_i, reseaux, email, nom_utilisateur, password, acces, date_inscription)
VALUES('','$surname','$name','$adresse','$codep','$ville','$revue','$revue1','$lci','$li','$reseaux','$email','$username','$passwd','$acces','$date')";
$_SESSION['username']=$username;
// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
mysql_close(); // on ferme la connexion
}
?> |
Tous ça fonctionne normalement.
Mon problème se situe ici :
Code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
| <?php
session_start();
if(!empty($_SESSION['username'])) {
header("Location: index.php?page=reseaux");
exit;
}
// connection à la base de données
require ('connect.php');
?>
<style type="text/css">
.hidden {
display: none;
}
.visible {
display: inline;
}
</style>
<Script Language="Javascript">
function hide(identifiant) {
if (document.getElementById(identifiant).className == "hidden") {
document.getElementById(identifiant).className = "visible";
}
}
</script>
<p align="center">
<form name="interro" method="Post" action="index.php?page=reseaux">
<font color="black" size="2" face="Tahoma" >
<table border="0" style="margin-left:40px; margin-top:20px;">
<tr>
<td align="left"><font face="verdana" size="1">
Pour accéder à la liste des réseaux vous devez avoir souscrit un <a href="index.php?page=abo">abonnement</a> aux réseaux.
<br><br>
Pour accéder à la liste, entrer le code confidentiel qui vous a été communiqué puis valider.<br><br>
</td>
<tr>
<td align="left"><font face="verdana" size="1">Code confidentiel : <input type="text" name="codeconf" value="">
<input type="submit" name="valid" value="Valider" style="height:20px; font-size:9px">
<br><br>
</td>
</tr>
<tr>
<td><font face="verdana" size="1">Code d'accès oublié ?
<span class="choix" onclick="hide('mondiv')"><font color="blue">cliquer ici</span></td> </table>
<!--
acces aux réseaux
//-->
<?php
if (isset($_post['codeconf'])) $code=$_post['codeconf'];
else $code="";
$result_sql = mysql_query('Select * From admin',$connexion);
$nombreligne = mysql_num_rows($result_sql);
for ($i = 0; $i < $nombreligne; $i++)
{
$codebdd = mysql_result($result_sql,$i,"acces");
if ($codebdd === $code){
}
}
?>
</form>
<!--
form pour récupérer le code utilisateur
//-->
<div id="mondiv" class="hidden">
<form name="oubli" method="POST">
<table bgcolor="gold" style="margin-left:210px; margin-top:20px;">
<tr>
<td><font face="verdana" size="2">
<?php
$username=$_SESSION['username'];
$result_sql = mysql_query('Select * From admin ',$connexion);
$nombreligne = mysql_num_rows($result_sql);
for ($i = 0; $i < $nombreligne; $i++)
{
$code = mysql_result($result_sql,$i,"acces");
$utilisateurbdd = mysql_result($result_sql,$i,"nom_utilisateur");
if ($utilisateurbdd === $username){
echo "Votre code confidentiel :<b> $code";
}
}
?>
</b></td>
</tr>
</table>
</form>
</div> |
Quand je clic sur (en gras dans le code) Code d'accès oublié ?<span class="choix" onclick="hide('mondiv')"> j'ai le message suivant :
Code :
1 2 3
| Warning: session_start(): Cannot send session cookie - headers already sent by (output started at c:\weblocal\sites\reseauxsante\index.php:10) in c:\weblocal\sites\reseauxsante\reseaux_1.php on line 2
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\weblocal\sites\reseauxsante\index.php:10) in c:\weblocal\sites\reseauxsante\reseaux_1.php on line 2 |
J'avoue que ne comprends pas et donc je ne vois pas ce que je dois faire.
Merci de m'aider
|