le 12/10/2003 à 15:14
i M@N
Hello !
J'ai un script qui utilise les sessions pour le login.
Le script fonctionnait nickel avant que j'installe la version 1.7 de EasyPHP, et depuis il n'enregistre plus les variables de sessions dans le fichier de session, et il n'affiche plus l'alerte lorsque un des champs du formulaire n'a pas été rempli.
Note importante : dans mon php.ini, les register global sont à off (par défaut dans la 1.7) et je souhaite rester à off et coder mes scripts de façon à ce qu'ils fonctionnent aussi bien en on qu'en off.
Voici mon formulaire :
<html>
<body>
<center>
<b>Pour profiter de l'intégralité du site (sélections, riddims, galleries et images de sounds),<br>merci d'entrez votre prénom et votre email.</b>
<table>
<form method="post" action="./login.php">
<table border="0">
<tr>
<td><font face="tahoma" size="1"><u>Prénom :</u></td>
<td>
<input type="text" name="cPrenom" size="30" value="<? echo $_SESSION['prenom']; ?>">
</td>
</tr>
<tr>
<td><font face="tahoma" size="1"><u>Email :</u></td>
<td>
<input type="text" name="cEmail" size="30" value="<? echo $_SESSION['email']; ?>">
</td>
</tr>
<tr>
<td> </td>
<td>
<center><INPUT TYPE=submit value="login"></center>
</td>
</tr>
</table>
</form>
</body>
</html>
Voici mon fichier login.php :
<?
function email_OK ($email) {
$test_mail=eregi('^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$',$email);
if ($test_mail) {
return TRUE;
}
else {
return FALSE;
}
}
// fonction nous permettant de faire des redirections
function redirection($url){
if (headers_sent()){
print('<meta http-equiv="refresh" content="0;URL='.$url.'">');
}
else {
header("Location: $url");
}
}
// on teste le contenu de la variable $cPrenom
if ($cPrenom=="") {
echo '<body onLoad="alert(\'Aucun prénom de précisé...\')">';
redirection('./iframe.php?page=30');
exit;
}
// on teste le contenu de la variable $cEmail
if ($cEmail=="") {
echo '<body onLoad="alert(\'Aucun email de précisé...\')">';
redirection('./iframe.php?page=30');
exit;
}
else {
// récupération de l'heure courante
$date = date("Y-m-d H:i:s");
// récupération de l'adresse IP du client (on cherche d'abord à savoir si il est derrière un proxy)
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
elseif(isset($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
}
else {
$ip = $_SERVER['REMOTE_ADDR'];
}
// récupération du domaine du client
$host = gethostbyaddr($ip);
// récupération du navigateur et de l'OS du client
$navigateur = $_SERVER['HTTP_USER_AGENT'];
// récupération du REFERER
$nom_domaine = $_SERVER['HTTP_HOST'];
if ($nom_domaine != "imanweb.free.fr") {
$referer = $_SERVER['HTTP_REFERER'];
}
else {
$referer ="";
}
if (email_OK ($cEmail)) {
session_start();
$prenom = $cPrenom;
$email = $cEmail;
session_register("prenom");
session_register("email");
session_register("date");
session_register("ip");
session_register("host");
session_register("navigateur");
session_register("referer");
echo '<head><SCRIPT LANGUAGE="JavaScript">if (parent.frames.length = 1 ){ parent.document.location.href = "http://imanweb.free.fr"; }</SCRIPT></head>';
}
else {
echo '<body onLoad="alert(\'Email invalide...\')">';
redirection('./iframe.php?page=30');
exit;
}
}
?>
Voici mon php.ini :
http://www.lephpfacile.com/wall/lire_wall.php?wall=873
Merci de m'aider parce que là ça fait 3 jours que je galère ...
@+...
J'ai un script qui utilise les sessions pour le login.
Le script fonctionnait nickel avant que j'installe la version 1.7 de EasyPHP, et depuis il n'enregistre plus les variables de sessions dans le fichier de session, et il n'affiche plus l'alerte lorsque un des champs du formulaire n'a pas été rempli.
Note importante : dans mon php.ini, les register global sont à off (par défaut dans la 1.7) et je souhaite rester à off et coder mes scripts de façon à ce qu'ils fonctionnent aussi bien en on qu'en off.
Voici mon formulaire :
<html>
<body>
<center>
<b>Pour profiter de l'intégralité du site (sélections, riddims, galleries et images de sounds),<br>merci d'entrez votre prénom et votre email.</b>
<table>
<form method="post" action="./login.php">
<table border="0">
<tr>
<td><font face="tahoma" size="1"><u>Prénom :</u></td>
<td>
<input type="text" name="cPrenom" size="30" value="<? echo $_SESSION['prenom']; ?>">
</td>
</tr>
<tr>
<td><font face="tahoma" size="1"><u>Email :</u></td>
<td>
<input type="text" name="cEmail" size="30" value="<? echo $_SESSION['email']; ?>">
</td>
</tr>
<tr>
<td> </td>
<td>
<center><INPUT TYPE=submit value="login"></center>
</td>
</tr>
</table>
</form>
</body>
</html>
Voici mon fichier login.php :
<?
function email_OK ($email) {
$test_mail=eregi('^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$',$email);
if ($test_mail) {
return TRUE;
}
else {
return FALSE;
}
}
// fonction nous permettant de faire des redirections
function redirection($url){
if (headers_sent()){
print('<meta http-equiv="refresh" content="0;URL='.$url.'">');
}
else {
header("Location: $url");
}
}
// on teste le contenu de la variable $cPrenom
if ($cPrenom=="") {
echo '<body onLoad="alert(\'Aucun prénom de précisé...\')">';
redirection('./iframe.php?page=30');
exit;
}
// on teste le contenu de la variable $cEmail
if ($cEmail=="") {
echo '<body onLoad="alert(\'Aucun email de précisé...\')">';
redirection('./iframe.php?page=30');
exit;
}
else {
// récupération de l'heure courante
$date = date("Y-m-d H:i:s");
// récupération de l'adresse IP du client (on cherche d'abord à savoir si il est derrière un proxy)
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
elseif(isset($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
}
else {
$ip = $_SERVER['REMOTE_ADDR'];
}
// récupération du domaine du client
$host = gethostbyaddr($ip);
// récupération du navigateur et de l'OS du client
$navigateur = $_SERVER['HTTP_USER_AGENT'];
// récupération du REFERER
$nom_domaine = $_SERVER['HTTP_HOST'];
if ($nom_domaine != "imanweb.free.fr") {
$referer = $_SERVER['HTTP_REFERER'];
}
else {
$referer ="";
}
if (email_OK ($cEmail)) {
session_start();
$prenom = $cPrenom;
$email = $cEmail;
session_register("prenom");
session_register("email");
session_register("date");
session_register("ip");
session_register("host");
session_register("navigateur");
session_register("referer");
echo '<head><SCRIPT LANGUAGE="JavaScript">if (parent.frames.length = 1 ){ parent.document.location.href = "http://imanweb.free.fr"; }</SCRIPT></head>';
}
else {
echo '<body onLoad="alert(\'Email invalide...\')">';
redirection('./iframe.php?page=30');
exit;
}
}
?>
Voici mon php.ini :
http://www.lephpfacile.com/wall/lire_wall.php?wall=873
Merci de m'aider parce que là ça fait 3 jours que je galère ...
@+...