+ Rispondi alla Discussione
Risultati da 1 a 19 di 19

Controllo dati su MySQL

Ultimo Messaggio di Bacca001 il:
  1. #1
    User
    Data Registrazione
    Jul 2017
    Località
    Cernobbio
    Messaggi
    10

    Controllo dati su MySQL

    Buongiorno a tutti, sono nuovo e appena ho visto questa sezione di php e MySQL ho preso l'occasione per domandare come posso fare un controllo dei dati in MySQL con php.
    Ad esempio: Se l'email e/o lo username sono già esistente sul database allora di mandarti a un'altra pagina. Io ho provato così:

    Codice PHP:
    <include (dbconnect.php)>
    $email addslashes($_POST['email'])
    $user addslashes($_POST['user'])
    check_email db -> prepare("SELECT `user` FROM `users` WHERE ('user = :user OR email' = :email")
    if (
    check_email){
    header("location: err.php")

    L'unico problema è che anche quando i dati inseriti sono diversi da quelli presenti nel database mi rimanda sempre alla pagina err.php; Cosa ho sbagliato e come posso correggere?
    Grazie mille a tutti dell'aiuto

  2. #2
    User L'avatar di Bacca001
    Data Registrazione
    Jan 2016
    Località
    Ferrara
    Messaggi
    178
    Così stai facendo solo il PREPARE non stai eseguendo la query, quindi per forza di cose ritorna TRUE e ti rimanda al file.

    Usa l'execute e poi conta le righe ad esempio, se maggiori di 0 allora mandi alla pagina di errore, se 0 l'utente può registrarsi perchè non esiste nessuno con i suoi dati..
    - Software Web & Application Developer -

  3. #3
    User
    Data Registrazione
    Jul 2017
    Località
    Cernobbio
    Messaggi
    10
    Citazione Originariamente Scritto da Bacca001 Visualizza Messaggio
    Così stai facendo solo il PREPARE non stai eseguendo la query, quindi per forza di cose ritorna TRUE e ti rimanda al file.

    Usa l'execute e poi conta le righe ad esempio, se maggiori di 0 allora mandi alla pagina di errore, se 0 l'utente può registrarsi perchè non esiste nessuno con i suoi dati..
    Grazie mille per la risposta, ma non so come fare il conteggio delle righe.

  4. #4
    User L'avatar di Bacca001
    Data Registrazione
    Jan 2016
    Località
    Ferrara
    Messaggi
    178
    Citazione Originariamente Scritto da superjolly002 Visualizza Messaggio
    Grazie mille per la risposta, ma non so come fare il conteggio delle righe.
    Ah puoi benissimo chiamare rowCount() dopo l'execute

    Ad esempio

    Codice PHP:
    $db->prepare(..);
    $db->execute();

    if (
    $db->rowCount() > 0){
      
    // gia registrato
    }else{
      
    // non registrato

    - Software Web & Application Developer -

  5. #5
    User
    Data Registrazione
    Jul 2017
    Località
    Cernobbio
    Messaggi
    10
    Ah ok, grazie mille dell'aiuto, ora provo e faccio sapere 😉

    Up: Allora io ho riscritto il file così:
    Codice PHP:
    $user addsleshes($_POST['User']);
    $email addsleshes($_POST['Email']);
    $sth db -> prepare("SELECT 'user' FROM 'user' WHERE ('user' = :user OR 'email' = :email)'');
    $sth -> bindParam (':user', $user);
    $sth -> bindParam (':email', $email);
    $sth -> execute ()
    if (
    $sth -> rowCount ()){
    header ("
    locationerr.php");

    Unico problema ora è che in qualsiasi caso mi registra nel database, pure se qual dato esiste. Cosa ho sbagliato?
    Ultima modifica di superjolly002; 26-07-17 alle 17:24

  6. #6
    User L'avatar di Bacca001
    Data Registrazione
    Jan 2016
    Località
    Ferrara
    Messaggi
    178
    Riesci ad incollare il php completo?
    - Software Web & Application Developer -

  7. #7
    User
    Data Registrazione
    Jul 2017
    Località
    Cernobbio
    Messaggi
    10
    Citazione Originariamente Scritto da Bacca001 Visualizza Messaggio
    Riesci ad incollare il php completo?
    Quale php?

  8. #8
    User L'avatar di Bacca001
    Data Registrazione
    Jan 2016
    Località
    Ferrara
    Messaggi
    178
    Il codice dello script
    - Software Web & Application Developer -

  9. #9
    User
    Data Registrazione
    Jul 2017
    Località
    Cernobbio
    Messaggi
    10
    Codice PHP:
    <include (dbconnect.php)>
    $user addsleshes($_POST['User']); 
    $email addsleshes($_POST['Email']); 
    $sth db -> prepare("SELECT 'user' FROM 'user' WHERE ('user' = :user OR 'email' = :email)'');
    $sth -> bindParam (':user', $user); 
    $sth -> bindParam (':email', $email); 
    $sth -> execute () 
    if (
    $sth -> rowCount () > 0){ 
    header ("
    locationerr.php"); 


  10. #10
    User L'avatar di Bacca001
    Data Registrazione
    Jan 2016
    Località
    Ferrara
    Messaggi
    178
    Prova così allora, effettivamente non avevo pensato ad una casistica:
    dopo la execute()
    Codice PHP:
    $row $sth->fetch(PDO::FETCH_ASSOC);
    if (
    $row){
    //errore
    }else{
    //continuo

    - Software Web & Application Developer -

  11. #11
    User
    Data Registrazione
    Jul 2017
    Località
    Cernobbio
    Messaggi
    10
    Continua a non andare... E ho scritto tutto senza errori

  12. #12
    User L'avatar di Bacca001
    Data Registrazione
    Jan 2016
    Località
    Ferrara
    Messaggi
    178
    Oddio mi sembra strano.
    Ad ogni modo non stavo testando.

    Ti incollo il mio codice funzionante (appena testato, mi ero "incagnato" perchè teoricamente doveva funzionare):
    Codice PHP:
    <?php
    try {
            

        
    $name 'test';
        
    $email 'test@ciao.it';

        
    $db_connector = new PDO('mysql:host=localhost;dbname=DBTEST''root''root');
        
        
    $query $db_connector->prepare('SELECT id FROM users WHERE (name = :name OR email = :email)');
        
    $query->bindParam(':name'$namePDO::PARAM_STR);
        
    $query->bindValue(':email'$email);
        
    $query->execute();

        if(
    $query->rowCount()){
            echo 
    "L'utente esiste";
        }else{
            echo 
    "L'utente non esiste";
        }
    } catch (
    PDOException $e) {
        print 
    "Errore: " $e->getMessage() . "<br>";
        die();
    }
    ?>
    Fammi sapere, se ancora non va, c'è qualcosa che non funziona.
    - Software Web & Application Developer -

  13. #13
    User
    Data Registrazione
    Jul 2017
    Località
    Cernobbio
    Messaggi
    10
    Ora non posso provarlo appena lo provo scrivo e faccio sapere 😉

  14. #14
    User
    Data Registrazione
    Jul 2017
    Località
    Cernobbio
    Messaggi
    10
    Ok, scusa il ritardo della risposta, ma sono stato occupato perchè dovevo andare in vacanza. Ho riscritto il codice come l'hai fatto tu, ma nulla non mi va... Altri consigli per favore?

  15. #15
    User L'avatar di Bacca001
    Data Registrazione
    Jan 2016
    Località
    Ferrara
    Messaggi
    178
    Citazione Originariamente Scritto da superjolly002 Visualizza Messaggio
    Ok, scusa il ritardo della risposta, ma sono stato occupato perchè dovevo andare in vacanza. Ho riscritto il codice come l'hai fatto tu, ma nulla non mi va... Altri consigli per favore?
    Hai corretto le vari variabili e la query?
    - Software Web & Application Developer -

  16. #16
    User
    Data Registrazione
    Jul 2017
    Località
    Cernobbio
    Messaggi
    10
    Certo

  17. #17
    User L'avatar di Bacca001
    Data Registrazione
    Jan 2016
    Località
    Ferrara
    Messaggi
    178
    Prova a questo punto a passare le Variabili direttamente come ho fatto io, senza passare per $_POST, e vedi se è quello, magari il form non manda bene i dati.

    Se no, direi che non è il PHP ma è un problema di db, perchè a me funziona benissimo.
    - Software Web & Application Developer -

  18. #18
    User
    Data Registrazione
    Jul 2017
    Località
    Cernobbio
    Messaggi
    10
    Bacca001 mi sono accorto che avevo sbagliato a scrivere una cosa, quindi correggendo mi funziona. Grazie mille 😉

  19. #19
    User L'avatar di Bacca001
    Data Registrazione
    Jan 2016
    Località
    Ferrara
    Messaggi
    178
    Citazione Originariamente Scritto da superjolly002 Visualizza Messaggio
    Bacca001 mi sono accorto che avevo sbagliato a scrivere una cosa, quindi correggendo mi funziona. Grazie mille
    Immaginavo, la magia non esiste! ahah
    Figurati
    - Software Web & Application Developer -

+ Rispondi alla Discussione

Tag per Questa Discussione

^ Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice [VIDEO] è Attivato
  • Il codice HTML è Disattivato
  • Trackbacks Attivato
  • Pingback Attivato
  • Refback Attivato

SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.