Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 24
  1. #11
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,316
    Quote Originariamente inviata da luca200 Visualizza il messaggio
    Secondo me dovresti andarci piano con le valutazioni. Qui ti stai arrampicando sugli specchi per giustificare quello che hai scritto prima. Una query per nome utente NON PUO' restituire più di una riga, altrimenti hai un problema a monte sulla progettazione del db.
    Poi che quel codice non sia il massimo non ci sono dubbi, ma in ogni caso fare la select solo sull'utente e controllare la password a valle potrebbe essere utile per capire, in caso di errore, se il problema sta nel nome utente che non esiste o nella password sbagliata. A qualcuno potrebbe servire.

    @curzio.maria: sei in grado di postare qui l'output di phpinfo()? ho un vago sospetto...
    Certo... può essere utile anche se fai il salt e l'encrypt della password tramite algoritmi tuoi o altrui, ma rimane il fatto che quelle righe, per il codice che è stato presentato, sono mal progettate.

    - Accetto che mi fai il fetch della password se ci devi fare delle operazioni sopra;
    - Non accetto che progetti una query per scorrere l'intero database;
    - Non accetto che assegni una variabile soprattutto in un linguaggio a tipizzazione dinamica (anche se qui voglio essere fiscale);
    - Non accetto il senso non logico di: if( $count == 1 && $row['userPass']==$password ), per i motivi che ho già spiegato oltre al fatto che a questo punto era possibile evitare porzione dell'if (nel momento in cui estrai la password puoi semplicemente verificare che non sia vuota e che coincida);

    Se qualcuno posta un codice simile a questo:
    codice:
    <?php
      $email = @$_POST["email"];
      if ($email != "" && isset($email) && !empty($email)) {
        // ...
      } elseif ($email == "" || !isset($email)) {
        // ...
      }
    Mi sento costretto a spiegare che qualcosa che non va...

    Di conseguenza mi dispiace essere stato poco chiaro nei primi post, il mio intento era solo quello di delimitare che ci sono dei gravi problemi strutturali.

  2. #12
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,360
    Una cosa in più.
    Per il controllo dei dati bisogna convertirli in minuscole (o in maiuscole) poiche di default mysql non fa la differenza tra 'pippo' e 'Pippo' o 'PIPPO'
    Quindi senza, si potrebbe inserire più volte la stess e-mail.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #13
    Grazie per le risposte, mi scuso per il ritardo ma ero 'fuori porta', non dispongo di un portatile e (vergogna) uso lo smartphone solo per telefonare ... e guardare serie tv.

    @badaze. Tutti i campi della tabella sono 'validati'. Nel caso della email trasformo la stringa in minuscolo ( non credo abbia un gran senso ma ... mi piace cosi') in VB era piu' semplice perche' agivo direttamente sul controllo che riceveva l'input, ora devo utilizzare delle funzioni dopo il POST, molta piu' ginnastica per la mente.
    Se MySQL non e' case-sensitive pero' la differenza tra PIppo e PIPPO non creerebbe problemi, almeno credo.

    @Luca200, grazie per l'attenzione, in effetti il primo a 'constestare' la logica della doppia select sono stato io ... non avevo neppure preso in considerazione la possibilita' da te esposta : doppio controllo su USER e PASSWORD, otto anni di assoluta distanza dai DB fanno evidentemente effetto, e l'eta' non aiuta.

    Devo postare l'output di phpinfo ? tutto ? (chiedo conferma perche' di tratta di un listato enorme e credevo ci fossero limiti nelle dimensioni dei messaggi.

    Aggiungo pero' una informazione che forse puo' aiutare, come suggerito da @zacca94 (grazie ancora) ho sistemato un po' il codice con la gestione degli errori, ho trovato ottimi suggerimenti in "PHP Missing manual", e in effetti il codice e' funzionante, salva correttamente gli utenti e altrettanto correttamente li estrae con la select. In remoto su 000WebHost continua a non funzionare, su Altervista funziona tutto. Bel mistero.

    Grazie e buona serata a tutti.

  4. #14
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,316
    Boh postalo, mettilo magari fra i tag spoiler così da evitare di allungare la pagina

  5. #15
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,360
    Quote Originariamente inviata da curzio.maria Visualizza il messaggio

    @badaze. Tutti i campi della tabella sono 'validati'. Nel caso della email trasformo la stringa in minuscolo ( non credo abbia un gran senso ma ... mi piace cosi') in VB era piu' semplice perche' agivo direttamente sul controllo che riceveva l'input, ora devo utilizzare delle funzioni dopo il POST, molta piu' ginnastica per la mente.
    Se MySQL non e' case-sensitive pero' la differenza tra PIppo e PIPPO non creerebbe problemi, almeno credo.
    Ha senso salvare le email in minuscolo visto che è il tuo identificativo. Pippo@aaa.it non è uguale a PIppo@aaa.it
    In generale ha senso salvare o contollare i dati d'identicazione in un unico modo. Esempio : Se c'è un utente badaze non uo' essercene un altro che si chiami Badaze o BaDaZe. Se vuoi che uno possa vedere il suo nick name come l'ha battuto allora fai un controllo sulla tabella : select * from utenti where lower(campo_user_name) = lower($variabile_user_name)
    (premettendo che la funzione di conversione in minuscole si chiami lower)
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  6. #16
    @badaze ... premesso hai assolutamente ragione e la formattazione dei dati entro canoni stabiliti è importante, concorderai pero' con me che se nella mia tabella USER posso inserire BADAZe badAZE e badAze ... allora ho sbagliato a impostare la tabella.

    @luca200 ... non riesco a 'organizzarmi' con i tag quindi vado di brutto :

    ... errore troppi caratteri.. se mi indichi la sezione o le sezioni d'interesse le posto.

    Grazie

  7. #17
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,316
    premesso hai assolutamente ragione e la formattazione dei dati entro canoni stabiliti è importante, concorderai pero' con me che se nella mia tabella USER posso inserire BADAZe badAZE e badAze ... allora ho sbagliato a impostare la tabella
    Mah non credo, che codifica di caratteri ti permette di inserire solo minuscole? è normale permettere l'inserimento di badAZE, non è normale non verificare se "badaze" in qualsiasi salsa esista già:

    codice:
    <?php
      // ...
      $new_nick = "BaDAzE";
      $q = mysql_query("SELECT 1 FROM users WHERE LOWER(nick) = LOWER('{$new_nick}') LIMIT 1");
      if (mysql_count($q)) {
        echo "Utente presente";
      }
    Comunque per quanto riguarda il tuo hosting su aruba che versione di PHP hai? Puoi fare un echo PHP_VERSION; e vedere se le API di mysql che usi sono valide...
    perchè non è per fare il guastafeste ma le comuni funzioni "mysql" sono deprecate.
    http://de2.php.net/manual/en/function.mysql-connect.php

  8. #18
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,360
    Quote Originariamente inviata da curzio.maria Visualizza il messaggio
    @badaze ... premesso hai assolutamente ragione e la formattazione dei dati entro canoni stabiliti è importante, concorderai pero' con me che se nella mia tabella USER posso inserire BADAZe badAZE e badAze ... allora ho sbagliato a impostare la tabella.

    @luca200 ... non riesco a 'organizzarmi' con i tag quindi vado di brutto :

    ... errore troppi caratteri.. se mi indichi la sezione o le sezioni d'interesse le posto.

    Grazie
    Nel tuo caso specifico l'identificativo è l'indirizzo email e hai scelto (buona scelta) di convertirlo in minuscolo. Ma se l'identificativo fosse un nick name dovresti salvarlo com'è stato digitato confrontandolo con gli altri nick in minuscolo per entrambi dati.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  9. #19
    @zacca94
    Verifico le versioni del database e di MySQL sia di Altervista sia di 000WebHostApp e le confronto con quelle del mio PC.

    Concordo sulla necessit� di verificare se un valore e' gia' presente in tabella (quando serve) in ACCESS/SQL/VB usavo delle routine che eseguivano un count, qui cerchero', se possibile di preparare qualcosa di simile.

    Devo trasformare :

    n=Unico(tabella,stringa)
    ... eseguivo una query piu' o meno cosi'
    quanti= select count(*) as valore from <tabella> where <regola confronto>
    se n era 0 allora continuavo
    poco elegante ma veloce

    In PHP devo capire se posso :
    1 utilizzare un modulo di include con le funzioni (penso di si)
    2 utilizzarlo come un file BAS di visual basic ( non sono sicuro)

    provo ... e vedo.

    Per quanto attiene MySL, sono passato a MySQLI, oltretutto sintatticamente mi piace di piu',
    anche se lo utilizzo in modo procedurale e non sfrutto le classi.
    Per me, che sono pensionato (leggi anziano) e una storia che parte da DB3 e passa per Clipper FoxPro VBasic le classi sono un muro.

    Guastafeste ? per quanto mi riguarda posso solo ringraziarti.

  10. #20

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 © 2024 vBulletin Solutions, Inc. All rights reserved.