Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. Coding
    5. Controllo dati su MySQL
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • S
      superjolly002 User Newbie • ultima modifica di

      Ah ok, grazie mille dell'aiuto, ora provo e faccio sapere 😉

      Up: Allora io ho riscritto il file così:
      [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 ("location: err.php");
      }
      [/PHP]

      Unico problema ora è che in qualsiasi caso mi registra nel database, pure se qual dato esiste. Cosa ho sbagliato?

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • B
        bacca001 User Attivo • ultima modifica di

        Riesci ad incollare il php completo?

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • S
          superjolly002 User Newbie • ultima modifica di

          @Bacca001 said:

          Riesci ad incollare il php completo?
          Quale php?

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • B
            bacca001 User Attivo • ultima modifica di

            Il codice dello script

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • S
              superjolly002 User Newbie • ultima modifica di

              [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 ("location: err.php");
              }
              [/PHP]

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • B
                bacca001 User Attivo • ultima modifica di

                Prova così allora, effettivamente non avevo pensato ad una casistica:
                dopo la execute()
                [PHP]
                $row = $sth->fetch(PDO::FETCH_ASSOC);
                if ($row){
                //errore
                }else{
                //continuo
                }
                [/PHP]

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • S
                  superjolly002 User Newbie • ultima modifica di

                  Continua a non andare... E ho scritto tutto senza errori

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • B
                    bacca001 User Attivo • ultima modifica di

                    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):
                    [PHP]
                    <?php
                    try {

                    $name = 'test';
                    $email = '[email protected]';
                    
                    $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', $name, PDO::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();
                    }
                    ?>
                    [/PHP]

                    Fammi sapere, se ancora non va, c'è qualcosa che non funziona.

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • S
                      superjolly002 User Newbie • ultima modifica di

                      Ora non posso provarlo appena lo provo scrivo e faccio sapere 😉

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • S
                        superjolly002 User Newbie • ultima modifica di

                        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?

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        • B
                          bacca001 User Attivo • ultima modifica di

                          @superjolly002 said:

                          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?

                          0 Miglior Risposta Ringrazia Cita Rispondi

                            1 Risposta Ultima Risposta
                          • S
                            superjolly002 User Newbie • ultima modifica di

                            Certo

                            0 Miglior Risposta Ringrazia Cita Rispondi

                              1 Risposta Ultima Risposta
                            • B
                              bacca001 User Attivo • ultima modifica di

                              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.

                              0 Miglior Risposta Ringrazia Cita Rispondi

                                1 Risposta Ultima Risposta
                              • S
                                superjolly002 User Newbie • ultima modifica di

                                Bacca001 mi sono accorto che avevo sbagliato a scrivere una cosa, quindi correggendo mi funziona. Grazie mille 😉

                                0 Miglior Risposta Ringrazia Cita Rispondi

                                  1 Risposta Ultima Risposta
                                • B
                                  bacca001 User Attivo • ultima modifica di

                                  @superjolly002 said:

                                  Bacca001 mi sono accorto che avevo sbagliato a scrivere una cosa, quindi correggendo mi funziona. Grazie mille

                                  Immaginavo, la magia non esiste! ahah
                                  Figurati 🙂

                                  0 Miglior Risposta Ringrazia Cita Rispondi

                                    1 Risposta Ultima Risposta
                                  Caricamento altri post
                                  Rispondi
                                  • Topic risposta
                                  Effettua l'accesso per rispondere
                                  • Da Vecchi a Nuovi
                                  • Da Nuovi a Vecchi
                                  • Più Voti