Ciao a tutti ragazzi ho un problema con il codice postato qui di seguito, praticamente ho un form di registrazione con il codice sottostante e fin qui ok funziona senza problemi!
************************************************** *********
<?php
include "config.php";
include "funzioni.php";
$DB = new DB();
$DB->connect();
IF($_POST[mail]=='' or $_POST[nick]=='' or $_POST[pass]==''){
if($_POST[mail]=='' and $_POST[invia]!=''){$valore_1 ="Campo Obbligatorio";}
if($_POST[nick]=='' and $_POST[invia]!=''){$valore_2 ="Campo Obbligatorio";}
if($_POST[pass]=='' and $_POST[invia]!=''){$valore_3 ="Campo Obbligatorio";}
if($_POST[cognome]=='' and $_POST[invia]!=''){$valore_4 ="Campo Obbligatorio";}
if($_POST[indirizzo]=='' and $_POST[invia]!=''){$valore_5 ="Campo Obbligatorio";}
if($_POST[citta]=='' and $_POST[invia]!=''){$valore_6 ="Campo Obbligatorio";}
if($_POST[provincia]=='' and $_POST[invia]!=''){$valore_7 ="Campo Obbligatorio";}
if($_POST[stato1]=='' and $_POST[invia]!=''){$valore_8 ="Campo Obbligatorio";}
if($_POST[cap]=='' and $_POST[invia]!=''){$valore_9 ="Campo Obbligatorio";}
if($_POST[telefono]=='' and $_POST[invia]!=''){$valore_10 ="Campo Obbligatorio";}
echo "<form action='' method='post' name='registrazione'>
<table align=center><tr><td>Email</td><td><input type='text' size='35' name='mail' value='";
echo stripslashes($_POST[mail]);
echo"'> $valore_1</td></tr>
<tr><td>Nome</td><td><input type='text' name='nick' size='35' value='";
echo stripslashes($_POST[nick]);
echo"'> $valore_2</td></tr>
<tr><td>Password</td><td><input type='password' name='pass' size='35' value='";
echo stripslashes($_POST[pass]);
echo"'> $valore_3</td></tr>
<tr><td>Cognome</td><td><input type='text' name='cognome' size='35' value='";
echo stripslashes($_POST[cognome]);
echo"'> $valore_4</td></tr>
<tr><td>Indirizzo</td><td><input type='text' name='indirizzo' size='35' value='";
echo stripslashes($_POST[indirizzo]);
echo"'> $valore_5</td></tr>
<tr><td>Città</td><td><input type='text' name='citta' size='35' value='";
echo stripslashes($_POST[citta]);
echo"'> $valore_6</td></tr>
<tr><td>Provincia</td><td><input type='text' name='provincia' size='35' value='";
echo stripslashes($_POST[provincia]);
echo"'> $valore_7</td></tr>
<tr><td>Nazione</td><td><input type='text' name='stato1' size='35' value='";
echo stripslashes($_POST[stato1]);
echo"'> $valore_8</td></tr>
<tr><td>Cap</td><td><input type='text' name='cap' size='35' value='";
echo stripslashes($_POST[cap]);
echo"'> $valore_9</td></tr>
<tr><td>Telefono</td><td><input type='text' name='telefono' size='35' value='";
echo stripslashes($_POST[telefono]);
echo"'> $valore_10</td></tr>
<tr><td><input type='submit' name='invia' value='Registrati'></td><td><input type='reset' name='reset' value='reset'>
</td></tr>
</table>
"; }
else
{
$m = $_POST[mail];
$corrispondenza_email = checkMail($m);
if($corrispondenza_email=="1")
{
$numero_a_caso = rand (1234,5678);
$nickname = trim(addslashes($_POST[nick]));
$pass = trim(addslashes($_POST[pass]));
$controllo_db = mysql_query ("SELECT *
FROM `utenti`
WHERE `email` = '$m'
or `nick` = '$nickname'
LIMIT 0 , 1 ");
$risultato_controllo = mysql_num_rows($controllo_db);
if($risultato_controllo=="0"){
$psw_per_db = criptpass($pass);
$inserisco_dati_di_registrazione = mysql_query("
INSERT INTO `utenti` ( `id` , `email` , `nick` , `pass` , `stato` , `caso` , `cognome` , `indirizzo` , `citta` , `provincia` , `stato1` , `cap` , `telefono`)
VALUES (
NULL , '$m', '$nickname', '$psw_per_db', '0', '$numero_a_caso' , '$cognome' , '$indirizzo' , '$citta' , '$provincia' , '$stato1' , '$cap' , '$telefono')
************************************************** ***********
Il problema nasce ora nelle altre pagine ho inserito una protezione per consentire l'accesso solamente ad utenti registrati.
Vi posto il codice:
2.************************************************ ***************
Questa pagina si preoccupa di controllare il login
<?php
session_start();
if($_SESSION[login]!='' or $_SESSION[psw]!=''){
$cook = "$_SESSION[login]@@$_SESSION[psw]";
setcookie ("login", $cook);
header("Location: index.php");
}
else
{
header("Location: login.php");
}
tutte le altre pagine hanno lìinclusione di questo codice:
<?
session_start();
isset($login) OR die("
<table width=877 border=0 cellspacing=0 cellpadding=0>
<tr>
<td><table border=0 cellspacing=0 cellpadd .. . . .. . . . . ..
Lo script funziona benissimo fà il suo dovere blocca quelli non autorizzati esegue query sul db e memorizza le registrazioni.
Il problema è qui se un utente si logga e non chiude la sessione l'utente che si registra in seguito si registra e nel db nel campo del num di telefono viene memorizzato un num che non centra nulla con quello immesso nel form ma che è comune a tutti quelli che si registrano in seguito ad una sessione chiusa.
Io sappevo che sesssion_start () viene chiusa alla chiusura del browser èvero secondo voi??
Grazie in anticipo
se mi son spiegato male ditelo così mi spiego meglio ciao a tutti

Rispondi quotando
