Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [sql]Err di sintassi ... vicino a '2' linea 1

    Prima di tutto saluto tutti visto che mi sono appena registrato.

    Ho un problema con una semplicissima query di login ...
    Anche se inserisco i valori di login giusti ho una mysql_num_rows(..) sempre con valore '0'...
    Cosi mi sono detto... proviamo a mettere or die (mysql_error()); dopo mysql_query... e cosi facendo ho come output questo messaggio:
    Errore di sintassi nella query SQL vicino a '2' linea 1
    mentre questa è la query:
    $query = "SELECT utenti.* FROM utenti WHERE nickname = '" + $_POST['nick'] + "' AND password = '" + $_POST['pass'] + "'";
    Inoltre posto tutto le poche righe di codice magari possono servire alla risuluzione del mio problema, ecco qui:
    Codice PHP:
    <?php
    /*includo le variabili per la connessione*/
    include("../var_conn.php");

    /*connessione*/
    $conn=mysql_connect($host$user$password) or die("Connessione non riuscita: " mysql_error()); 

    /*selezione del database*/
    mysql_select_db($database,$conn) or die("Selezione del DB non riuscita: " mysql_error()); 

    $query "SELECT utenti.* FROM utenti WHERE nickname = '" $_POST['nick'] + "' AND password = '" $_POST['pass'] + "'";
                      
    $log mysql_query($query,$conn) or die (mysql_error());

    $num mysql_num_rows($log); 

    echo 
    ""+$num;
    /*if(@mysql_num_rows($log) == 1)
    {
    echo "log ok" + $num;
    }
    else
    {
    echo "log failed" + $num;
    }*/
    mysql_close($conn);

    ?>
    Se qualcuno mi può aiutare lo ringrazio molto...

    ah dimenticavo sto usando EasyPhp... non credo cambi qualcosa però...

  2. #2
    cosa dovrebbero rappresentare quei + nella query?

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it L'avatar di mariox
    Registrato dal
    Nov 2006
    Messaggi
    837
    perchè usi i "+" ?!
    Codice PHP:
    $query "SELECT utenti.* FROM utenti WHERE nickname = '$_POST[nick]' AND password = '  $_POST[pass]' "
    Cmq non ti conviene passare le variabili $_POSt direttamente dentro la query, dovresti eseguire prima dei controlli di sicurezza alle variabili.


  4. #4
    Per i più mi hanno insegnato cosi però ho visto che mettendo come dite l'errore sparisce... e quindi non li usero anche perchè con quei ventimila apici diventavo matto...

    Però c'è qualche altro problema evidente... poichè nonostante ho messo un controllo
    Codice PHP:
    $nick $_POST['nick'];
    $pass $_POST['pass'];
    echo 
    ""+$pass;echo ""+$nick;
    if (isset(
    $nick) and isset($pass)) 
    anche se i campi nella form li lascio vuoti mi entra nella prima condizione del se, come se non fossero vuoti...
    Ci deve essere qualcosa che non va... per forza... ma cosa

    Aggiungo:
    Inoltre ho notato che se nella form inserisco il valore "admin" sia per il nickname che per la password, quando vado a stampare
    Codice PHP:
    echo ""+$pass;
    echo 
    ""+$nick
    ricevo a video un 00...
    Bho non capisco come mai questi problemi... nessuno saprebbe dirmi cos'è???

    Aggiungo2:
    Provando ad inserire (sempre nella form) il valore '1' sepre per nick e pass... esso rimane 1 quando stampo a video...
    però anche inserendo un utente in tabella con 1 sia per il nick che per la pass la mysql_num_rows($log) da risultato 0... bho sto sclerando... se le cose più semplici non funzionano sono apposto

  5. #5
    Utente di HTML.it L'avatar di mariox
    Registrato dal
    Nov 2006
    Messaggi
    837
    allora x concatenare non si usa il "+" ma bensì il "."
    poi per controllare la presenza di spazi bianchi in una form si usa la funzione di libreria empty()
    Codice PHP:
    $nick $_POST['nick'];
    $pass $_POST['pass'];
    echo 
    "password=".$pass;
    echo 
    "nick=".$nick;

    if (empty(
    $nick) && empty($pass))
    {
    echo 
    "spazi bianchi non ammessi!";


  6. #6
    Originariamente inviato da mariox
    allora x concatenare non si usa il "+" ma bensì il "."
    poi per controllare la presenza di spazi bianchi in una form si usa la funzione di libreria empty()
    Codice PHP:
    $nick $_POST['nick'];
    $pass $_POST['pass'];
    echo 
    "password=".$pass;
    echo 
    "nick=".$nick;

    if (empty(
    $nick) && empty($pass))
    {
    echo 
    "spazi bianchi non ammessi!";

    Quella dell'empty mi è nuova...grazie...
    daltronde ho imparato come mi hanno insegnato... e divo dire che lo hanno fatto male...

    E qualcosa si inizia a risolvere...

    Però il risultato della query non è come quello da mè aspettato... infatti continua a darmi
    Codice PHP:
    mysql_num_rows($log)=
    mentre dovrebbe essere = 1... Intanto grazie mille

    Aggiungo:
    ahh ora il controllo è con l'or e non con l'and...
    Codice PHP:
    if (empty($nick) OR empty($pass)) 

    echo 
    "Attenzione valori di login non inseriti";
    }
    else


  7. #7
    Utente di HTML.it L'avatar di mariox
    Registrato dal
    Nov 2006
    Messaggi
    837
    il risultato è 0 evidentemente xchè sbagli la query.
    Controlla bene se ha selezionato la tabella giusta è soprattutto se le varibile sono corrette.
    puoi fare così

    Codice PHP:
    $query "SELECT * FROM table .....bla bla";

    //poi stampi il tutto
    echo $query

  8. #8
    errore trovato... mio dio che idiota... nella query ho scritto
    codice:
    password = '  $pass' ";
    Come si può notare tra l'apice e $pass ci sono due spazi... e ti credo che non funzionava ... Grazie mille... ti ringrazio molto... sopratutto perchè mi hai fatto capire che la mia prof di php non ne sà poi tanto...

    Bye bye



    p.s: mettete pure il tag risolto... grasias

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.