Controllo doppio su registrazione
Controllo doppio su registrazione postato il 06/11/2015 10:58:21 nel forum programmazione, open source e hosting
salve,
Devo dire che il titolo non fa capire bene cosa mi servirebbe, in realtà ho aggiunto un campo dove distinguo nome pg e username questo è il codice originale del controllo:
$result = gdrc_query("SELECT nome FROM personaggio WHERE nome='".gdrc_capital_letter(gdrc_filter('get',$_POST['nome']))."' LIMIT 1", 'result');
if (gdrc_query($result , 'num_rows') > 0)
{
gdrc_query($result , 'free');
$ok=FALSE;
echo '<div class="error">'.gdrc_filter('out',$MESSAGE['register']['error']['name_taken']).'</div>';
}
quello che ho tentato
$result = gdrc_query("SELECT nome FROM personaggio WHERE nome='".gdrc_capital_letter(gdrc_filter('get',$_POST['nome']))."' LIMIT 1", 'result');
$result1 = gdrc_query("SELECT username FROM personaggio WHERE username='".gdrc_capital_letter(gdrc_filter('get',$_POST['username']))."' LIMIT 1", 'result1');
if (gdrc_query($result && $result1, 'num_rows') > 0)
{
gdrc_query($result && $result1 , 'free');
$ok=FALSE;
echo '<div class="error">'.gdrc_filter('out',$MESSAGE['register']['error']['name_taken']).'</div>';
}
Ho provato anche a cambiare la stringa di result1 così:
$result1 = gdrc_query("SELECT username FROM personaggio WHERE username='".gdrc_filter('get',$_POST['username'])."' LIMIT 1", 'result1');
Consigli?
Pagine → 1
06/11/2015 15:18:23
errori:
Errore 1:
$result1 = gdrc_query("SELECT username FROM personaggio WHERE username='".gdrc_capital_letter(gdrc_filter('get',$_POST['username']))."' LIMIT 1", 'result1');
Il secondo parametro della funzione gdrcd_query() è definito all'interno della funzione stessa con dei specifici valori: result,num_rows.ecc non puoi inventartene di nuovi a caso senza averne creato altri nelle funzione stessa, per cui anche in quella query sarà 'result' e non 'result1' dove ho sottolineato il testo
Errore 2:
if (gdrcd_query($result && $result1, 'num_rows') > 0)
{
li è proprio di nuovo sbagliato lì'utilizzo della funzione e di conseguenza dell'if. quello che volevi fare tu dovrebbe essere stato un:
if (gdrcd_query($result,"num_rows") > 0 || gdrcd_query($result1,"num_rows") > 0)
{
- Hai bisogno di usare due volte separatamente la funzione gdrcd_query(), una per ogni numero di righe restituito dalla funzione che vuoi valutare
- Devi usare l'operatore || (or) e non && (and) perchè altrimenti quell'if ti ritorna errore solo se sia l'username che il nome sono gia stati usati, e visto che il nome del pg è la chiave primaria di tutte le tabelle riguardanti il pg hai bisogno di assicurarti che ognuna di quelle due singoli chiavi siano uniche.
Errore 3:
gdrcd_query($result && $result1 , 'free');
Stesso discorso di prima riguardante il sintassi della fuinzione.
CURIOSITA': come mai tutte le funzioni sono passate da gdrcd_query() gdrcd_filter() a gdrc_query(), gdrc_filter() ecc.
27/11/2015 10:38:07
$result = gdrc_query("SELECT nome FROM personaggio WHERE nome='".gdrc_capital_letter(gdrc_filter('get',$_POST['nome']))."' LIMIT 1", 'result');
$result1 = gdrc_query("SELECT username FROM personaggio WHERE username='".gdrc_capital_letter(gdrc_filter('get',$_POST['username']))."' LIMIT 1", 'result');
if (gdrcd_query($result,"num_rows") > 0 || gdrcd_query($result1,"num_rows") > 0)
{
gdrc_query($result, 'free');
$ok=FALSE;
echo '<div class="error">'.gdrc_filter('out',$MESSAGE['register']['error']['name_taken']).'</div>';
}
quindi il risultato dovrebbe esser così?
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
Raja Dunia ↗
War Thunder ↗
Imperion ↗