Newsgroup: it.comp.www.php
Titolo: Form, username e WHERE

Ciao ragazzi,,
ho trovato questo script:
http://hvassing.com/2007/simple-php-login-script-using-session-and-mysql/#comment-31549
Ora, se cerco di richiamare la variabile "username" in altre pagine con
$_POST['username'], non mi da alcun risultato. Come fare?
Penso che la soluzione sia da ricercare nelle ultime 8 linee di codice
di "manage-check.php" ma non so perchè ;)
Per esempio se inserisco in "members-only.php":
---------------------------------------
<?
$db=mysql_connect('XXXX.YYYYYYYYYYYY.ZZZ','user','123456') or
die(mysql_error());
mysql_select_db("XXXX",$db);
$result=mysql_query("SELECT * FROM members
WHERE username="$_POST[username]"",$db);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
while ($record = mysql_fetch_row($result)){
echo "id: ".$record[0]."<br />";
echo "NOME: ".$record[1]."<br />";
echo "<br />";
}
---------------------------------------
NON FUNZIONA...perchè?
Come posso richiamare il valore che l'utente inserisce in fase di login
(username) e usarlo in "WHERE username="?????????" ???
TNX da un, chiaramente, newbie!

 (username) e usarlo in "WHERE username="?????????" ???
Così a occhio, per conoscere il nome dell'utente che si è autenticato
puoi usare la funzione user_info(), definita nel file functions.php.
Ciao.
-- 
Federico

 Ciao.
Ci ho provato:
-----------------------------------------------------
<?php
// Start a session
session_start();
// Sends the user to the login-page if not logged in
if(!session_is_registered('member_ID')) :
   header('Location: index.php?msg=requires_login');
endif;
// Include database information and connectivity
include 'db.php';
// We store all our functions in one file
include 'functions.php';
?>
<body>
//questo lo stampa:
Welcome <?php  print user_info('username'); ?>
//questo non lo stampa:
<?
$db=mysql_connect('XXXX.YYYYYYYYYYYY.ZZZ','user','123456') or
die(mysql_error());
mysql_select_db("XXXX",$db);
// QUI C'È IL PROBLEMA:
$result=mysql_query("SELECT * FROM members WHERE
username=user_info('username')",$db );
while ($record = mysql_fetch_row($result)){
echo "id: ".$record[0]."<br />";
echo "nome: ".$record[1]."<br />";
}
?>
<a href="logout.php" title="Log out of the member area">Log out</a>
</body>
--------------------------------------------------------------------
Nel browser tutto diventa:
-------------------------------------
Welcome PIPPO
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL
result resource in
/home/gdsfgsdfg/dsfgsdfgsdg/ldsfgsdg.fff/sdfgsdfg/sdfgsd/members-only.php
on line 27
LOG OUT
------------------------------------
La linea 27 è quella dove c'è il "while".
Onestamente non so dove mettere le mani!
TNX!!!

 result resource in
[cut]
Nella query c'è un errore di sintassi pertanto $result non è un resource
corretto, ma vale false. La funzione mysql_fetch_row() si aspetta un
resource e quando le passi false viene sollevato il warning "supplied
argument is not a valid MySQL result resource..." 
Prova con qualcosa del genere:
...
$sql = 'select * from members
        where username = "'.user_info('username').'"';
$result = @mysql_query($sql, $db);
if (is_resource($result)) {
    if (mysql_num_rows($result) == 1) {
        $record = mysql_fetch_row($result));
        echo "id: ".$record[0]."<br />";
        echo "nome: ".$record[1]."<br />";
    } else {
        echo 'Nessun record trovato';
    }
} else {
    echo 'Errore: '.mysql_error();
}
Visto che la funzione user_info() già interroga il database forse ti
conviene modificarla in modo che ti restituisca direttamente un array
contenente i dati che ti interessano.
Ciao.
-- 
Federico

Federico ha scritto:

Grazie, funziona! :)))))