Newsgroup: it.comp.www.php
Titolo: Ulteriori problemi misteriosi

Questo è il contenuto della form che invia i dati:
<input name="user" type="text" value="" size="30">
<input name="pass" type="password" size="30">
<input name="to_admin_main" type="submit" value=" ENTRA ">
e questa è la pagina che li riceve:
<?php
session_start();
?>
[...]
<?php
if ($to_admin_main)
    {
    if(isset($user) && isset($pass))
        {
        $user = htmlspecialchars($user);
        $pass = htmlspecialchars($pass);
        $sql = "select id from users where username = '$user' and password =
password('$pass')";
        $query = mysql_query($sql, $conn);
        $num_rows = mysql_num_rows($query);
        if ($num_rows == 1)
            {
            session_register("user");
            session_register("pass");
            form_init("admin_2.php");
            echo "<br><br><br><br><br><br>";
            submit("to_admin_2_art", "GESTIONE_ARTICOLI");
            echo "<br><br><br>";
            submit("to_admin_2_ang", "GESTIONE_ANGOLINO");
            form_close();
            }
        else msg("<br><br><br><br><br><br>ACCESSO NEGATO QUERY");
        }
    else msg("<br><br><br><br><br><br>ACCESSO NEGATO ISSET");
    }
else msg("<br><br><br><br><br><br>ACCESSO NEGATO SUBMIT");
?>
Come potete vedere, il primo if controlla che l'accesso avvenga tramite il
pulsante giusto, il secondo che le variabili siano state riempite con
qualcosa e il terzo che user e pwd corrispondano a qualcosa di
effettivamente esistente (a scopo di debug ho anche chiamato diversamente i
messaggi di Accesso Negato in modo da vedere dove eventualmente si incastra)
Morale: si incastra sul submit. Il bello è che se commento il pezzo del
controllo sul submit, si incastra sull'isset e così via fino a che, avendo
ormai commentato tutte le condizioni, mi segnala che c'è anche qualcosa che
non va nell'uso delle sessioni perché sto facendo qualcosa che si poteva
fare fino alla release 4.2.3.
Insomma è il caos.
Dov'è il problema?
Uso php 4.3.2 su Apache 2.0.47
Grazie.

 ha scritto nel messaggio
news:Iy6Va.33484$Za4.1...@news2.tin.it...

Mi sa che non hai abilitato nel PHP ini l'opzone che ti permette di
registrare le var passate via GET o POST come variabili globali; per questo
motivo non
puoi accedere a $to_admin_main. Prova aggiungendo
 (strtolower($_SERVER['REQUEST_METHOD']) == 'get') ? $vars = &$_GET : $vars
= &$_POST;
 foreach($vars as $var_name=>$var_value)
  ${$var_name} = $var_value;
all'inizio dello script, ma ricorda he conviene sempre usare
$_GET['varname'] o $_POST['varname'] al posto di $varname.
ciao

 registrare le var passate via GET o POST come variabili globali;
l'opzione è register_globals

 l'opzione č register_globals
Ok, capito.
Effettivamente register_globals č settato a "off" e leggendo il commento ho
capito che č bene sia cosě, quindi ho modificato gli if in questo senso (il
method della form di invio ovviamente č "post"):
if ($_POST['to_admin_main'])
    {
    if (isset($_POST['user']) && isset($_POST['pass']))
        {
        etc etc
Solo che non funziona ugualmente, continua a bloccarsi su quel
"to_admin_main"

 news:Ga7Va.33729$Za4.1...@news2.tin.it...
hai provato anche con $HTTP_POST_VARS['pippo'] o solo la forma 'breve'?
Ciao Gianfranzo
-- 
--
ICQ#: 21258924
Nick Gianfranzo
Home page 
http://www.gianfranzo.it
Gianfranzo è contro la guerra
--

 hai provato anche con $HTTP_POST_VARS['pippo'] o solo la forma 'breve'?
Provato, niente da fare.
A questo punto comincio a pensare che ci sia qualcosa di bacato nel mio php
(tanto più che va in conflitto con l'adsl, vedi post apposito su
it.comp.os.win.win2000).
Tra un po' sarei comunque passato a linux però 'sta cosa mi fa troppo girare
i coglioni...
Oltretutto un phpinfo() sul server dove dovrà alloggiare il tutto mi ha
svelato che register_globals è attivato.

> A questo punto comincio a pensare che ci sia qualcosa di bacato nel mio
php
non penso...
posta il codice del form di invio dati

 wrote in message
news:8hdVa.24533$Df5.7...@news1.tin.it...

<form name="form1" method="post" action=".././admin/admin_main.php">
<input name="user" type="text" value="" size="30"></td>
<input name="pass" type="password" size="30"></td>
<input name="to_admin_main" type="submit" value=" ENTRA ">
</form>