Newsgroup: it.comp.www.php
Titolo: controllo session id e morte del form

salve a tutti
ho questo script che aggiunge delle info in un db
(non ci sono i controlli lo so ^_^.. ma lo uso solo io e 2 amici fidati :-))
il problema è  che da quando ho aggiunto la verifica del sid utente e il
conseguente blocco if  inviando il form non funziona +
se qualcuno vede o sa dove è il problema mi farebbe un piacere xchè io non
so + dove sbattere la testa :)
(il form si vede, e se non ci si è loggati in anticipo appare il msg di
errore finale come dovrebbe essere "accesso negato!!!")
code :
<?php
session_start("login");
$sid=session_id();
include("include.php");
$titolo = "Admin Page";
show_header($titolo);
        mysql_connect("localhost","xxxxxxxx","xxxxxxx") or die
(mysql_error());
        mysql_select_db("xxxxxxx_db") or die (mysql_error());
        $controllo = "SELECT * FROM diablo_admin WHERE sid = '$sid' and
nome= '$admin_nome' ";
        $risultato = mysql_query($controllo) or die ("sessione non
riconosciuta");
if ($row=mysql_fetch_array($risultato))
                                           {
echo "benvenuto $row[nome]<br><br>";
$form="
<form action=\"$PHP_SELF\" method=\"get\">
Nome player conosciuto:<br>
<input type=\"text\" name=\"nome_player\"><br>
Nome personaggio del player:<br>
<input type=\"text\" name=\"nome_pg\"><br>
Il player sta attualmente giocando:<br>
<select name=\"pg_giocante\">
<option value=\"si\">si
<option value=\"no\">no
</select>
<input type=\"submit\" name=\"controllo\" value=\"ok\">
</form>
";
if ($controllo != "ok")
  {
  echo $form;
  }
elseif ($controllo == "ok" && empty($nome_player) && empty($nome_pg))
   {
  echo "Nomi account e player mancanti !!!";
   }
elseif ($controllo == "ok"  && empty($nome_player))
  {
  echo "Nome player mancante !!!";
  }
elseif ($controllo == "ok" && empty($nome_pg))
   {
  echo "Nome pg mancante !!!";
   }
elseif ($controllo == "ok")
   {
  $inserisci = "INSERT INTO $nome_tabella VALUES
('','$nome_player','$nome_pg','$pg_giocante','$admin_nome')";
  mysql_query($inserisci) or die (mysql_error());
  echo "Modifica effettuatta correttamente !!!<br><br>$form";
   }
else
  {
   $af = fopen($file_log, "a+");
   fputs($af, "$REMOTE_ADDR|$nome_player|$nome_pg|$pg_giocante\n");
   fclose($af);
   echo "non fare il furbo il tuo accesso è stato loggato<br><br>$form";
  }
                                        }
else
  {
echo "accesso negato !!!";
  }
show_footer;
?>

alla fine ho risolto cosi' , ma bo
non sono soddisfatto :-((
<?php
session_start("login");
session_register();
$sid=session_id();
include("include.php");
$titolo = "Admin Page";
show_header($titolo);
        mysql_connect("localhost","xxxx","xxxxx") or die (mysql_error());
        mysql_select_db("xxxxxxx") or die (mysql_error());
        $controllo = "SELECT * FROM diablo_admin WHERE sid = '$sid' and
nome= '$admin_nome' ";
        $risultato = mysql_query($controllo) or die ("sessione non
riconosciuta");
if ($row=mysql_fetch_array($risultato))
                                           {
echo "benvenuto $row[nome]<br><br>";
$form="
<form action=\"$PHP_SELF\" method=\"get\">
<input type=\"hidden\" name=\"controllo\" value=\"ok\">
Nome player conosciuto:<br>
<input type=\"text\" name=\"nome_player\"><br>
Nome personaggio del player:<br>
<input type=\"text\" name=\"nome_pg\"><br>
Il player sta attualmente giocando:<br>
<select name=\"pg_giocante\">
<option value=\"si\">si
<option value=\"no\">no
</select><br><br>
<input type=\"submit\"  value=\"invia\">
</form>
";
echo $form;
if (isset($controllo) && (empty($nome_player) || empty($nome_pg)))
 {
echo "Prego , completare tutti i campi!";
 }
elseif (isset($controllo))
 {
$inserisci = "INSERT INTO $nome_tabella VALUES
('','$nome_player','$nome_pg','$pg_giocante','$admin_nome')";
mysql_query($inserisci) or die (mysql_error());
echo "Modifica effettuatta correttamente !!!";
 }
else
  {
   $af = fopen($file_log, "a+");
   fputs($af, "$REMOTE_ADDR|$nome_player|$nome_pg|$pg_giocante\n");
   fclose($af);
   echo "non fare il furbo il tuo accesso č stato loggato<br><br>$form";
