Benvenuto nella nostra community, registra un account gratuito ADESSO!
Oltre 7000 persone hanno già registrato il loro account. Chiedi aiuto, conversa con aziende ed esperti del settore webhosting italiano.
Iscriviti subito! In meno di 2 minuti!




Risultati da 1 a 10 di 10
  1. #1
    HT Member
    Data Registrazione
    Aug 2010
    Messaggi
    35

    Inserire un controllo mysql per verificare se un e-mail esiste già in database

    Salve,
    scusate l'ignoranza ma è da un pomeriggio che sto fondendo dietro a sta cosa.
    Ho questo codice:

    Codice PHP:
    <?php
    # Effettuo la connessione a mysql mediante un file di configurazione:
    include_once("inc/dbconfig.php");
    $get_company mysql_query("SELECT * FROM company");
    $show_company mysql_fetch_array($get_company);
    $get_campaigns mysql_query("SELECT * FROM campaigns WHERE active = 1");
    $get_groups mysql_query("SELECT * FROM groups");
    # Variabili POST del form:
    if(isset($_POST['create'])) {
    $first_name $_POST['first_name'];
    $last_name $_POST['last_name'];
    $company_name $_POST['company_name'];
    $home_number $_POST['home_number'];
    $work_number $_POST['work_number'];
    $mobile_number $_POST['mobile_number'];
    $fax_number $_POST['fax_number'];
    $primary_number $_POST['primary_number'];
    $email_address strtolower($_POST['email_address']);
    $payment_terms $_POST['payment_terms'];
    $discount $_POST['discount'];
    $billing_email_address strtolower($_POST['billing_email_address']);
    # Genero una password in modo casuale:
    $account_password substr(md5(rand().rand()), 05);
    $campaign_id $_POST['campaign_id'];
    $group_id $_POST['group_id'];
    $billing_address $_POST['billing_address'];
    $billing_city $_POST['billing_city'];
    $billing_province $_POST['billing_province'];
    $billing_postal $_POST['billing_postal'];
    $billing_country $_POST['billing_country'];
    $shipping_address $_POST['shipping_address'];
    $shipping_city $_POST['shipping_city'];
    $shipping_province $_POST['shipping_province'];
    $shipping_postal $_POST['shipping_postal'];
    $shipping_country $_POST['shipping_country'];
    #Mi definisco le variabili utili all'invio di una mail di riepilogo
    $oggetto "Registrazione nuovo account";
    $formato "Gentile $first_name $last_name,\n\n In data odierna è stata effettuata la registrazione per diventare nuovo utente. Di seguito troverà tutte le credenziali per accedere al suo account.\nUsername: $billing_email_address\nPassword: $account_password\n\n In caso di problemi, non esiti a contattarci.\nGrazie per la collaborazione";

    # Assegno un id di un dipendente utile per le fatture:
    $employee_id $_SESSION['employee_id'];
    #Provvedo all'inserimento in db
    $doSQL "INSERT INTO clients (first_name, last_name, company_name, home_number, work_number, mobile_number, fax_number, primary_number, email_address, payment_terms, discount, billing_email_address, account_password, campaign_id, group_id, billing_address, billing_city, billing_province, billing_postal, billing_country, shipping_address, shipping_city, shipping_province, shipping_postal, shipping_country, employee_id) VALUES ('$first_name', '$last_name', '$company_name', '$home_number', '$work_number', '$mobile_number', '$fax_number', '$primary_number', '$email_address', '$payment_terms', '$discount', '$billing_email_address', '$account_password', '$campaign_id', '$group_id', '$billing_address', '$billing_city', '$billing_province', '$billing_postal', '$billing_country', '$shipping_address', '$shipping_city', '$shipping_province', '$shipping_postal', '$shipping_country', '$employee_id')";
    mysql_query($doSQL) or die(mysql_error());
    $client_id mysql_insert_id();
    # E poi invio la mail
    mail($billing_email_address$oggetto$formato"From: Prova Email <noreply@provaemail.it>");
    # Alla fine reindirizzo l'utente su questa pagina:
    header("Location: conferma_registrazione.php?client_id=$client_id");
    }
    ?>
    In pratica vorrei fare in modo che prima di inserirmi i dati nel database, venisse fatto un controllo alla cella "email_address" presente nella tabella "clients" in modo che se l'indirizzo e-mail non è ancora presente nel DB, procedesse all'inserimento dei dati nel DB, mentre se l'email è già registrata apparisse un alert javascript che blocchi tutto e non inserisca nulla nel db.

    Aiuto vi prego



  2. #2
    Webhosting Guru Junior L'avatar di TheDarkITA
    Data Registrazione
    Nov 2007
    Località
    Messina
    Messaggi
    628

    Re: Inserire un controllo mysql per verificare se un e-mail esiste già in database

    Ciao salvo89,

    devi fare una query del tipo:
    Codice:
    SELECT campo FROM tabella WHERE email = 'indirizzo@email.ext' LIMIT 1

  3. #3
    HT Member
    Data Registrazione
    Aug 2010
    Messaggi
    35

    Re: Inserire un controllo mysql per verificare se un e-mail esiste già in database

    Citazione Originariamente Scritto da TheDarkITA Visualizza Messaggio
    Ciao salvo89,

    devi fare una query del tipo:
    Codice:
    SELECT campo FROM tabella WHERE email = 'indirizzo@email.ext' LIMIT 1
    Lo avevo fatto dicendogli anche che se il mysql_num_rows($doSQL) >= 1 allora doveva stampartmi l'alert, altrimenti procedeva con l'inserimento, ma inserisce ugualmente e non effettua il controllo.

  4. #4
    HT Member
    Data Registrazione
    Aug 2010
    Località
    Valle d'Aosta - Donnas (AO)
    Messaggi
    48

    Re: Inserire un controllo mysql per verificare se un e-mail esiste già in database

    Io ho fatto così per il mio ex CMS (buttato)

    Codice:
    $email_control = mysql_query("SELECT mail FROM users WHERE mail = '$mail'");
    if(mysql_num_rows($email_control)) {
    print "Email già utilizzata";
    } else {
    //REGISTRAZIONE
    }
    ?>
    Spero sia giusto, in sostanza se il row contato è vero (true) vuol dire che la query è andata buon fine e quindi esiste l'email nella tabella 'users'
    Altrimenti registra

    Vedi tu..
    E' impossibile che con questo codice, anche se fosse sbagliato non effettua il controllo
    Nel momento in cui un uomo ammette di essere un hacker, smette di esserlo
    http://www.getyoursmiley.com/temp/88...1281218158.gif

  5. #5
    HT Member
    Data Registrazione
    Aug 2010
    Messaggi
    35

    Re: Inserire un controllo mysql per verificare se un e-mail esiste già in database

    Citazione Originariamente Scritto da Francesco S. Visualizza Messaggio
    Io ho fatto così per il mio ex CMS (buttato)

    Codice:
    $email_control = mysql_query("SELECT mail FROM users WHERE mail = '$mail'");
    if(mysql_num_rows($email_control)) {
    print "Email già utilizzata";
    } else {
    //REGISTRAZIONE
    }
    ?>
    Spero sia giusto, in sostanza se il row contato è vero (true) vuol dire che la query è andata buon fine e quindi esiste l'email nella tabella 'users'
    Altrimenti registra

    Vedi tu..
    E' impossibile che con questo codice, anche se fosse sbagliato non effettua il controllo
    Funziona. Il mio era simile solo che gli facevo fare un controllo che se campo era uguale o maggiore di 1 mi stampava errore altrimenti no. Così non fungeva.

    Grazie

  6. #6
    HT Member
    Data Registrazione
    Aug 2010
    Località
    Valle d'Aosta - Donnas (AO)
    Messaggi
    48

    Re: Inserire un controllo mysql per verificare se un e-mail esiste già in database

    Citazione Originariamente Scritto da salvo89 Visualizza Messaggio
    Funziona. Il mio era simile solo che gli facevo fare un controllo che se campo era uguale o maggiore di 1 mi stampava errore altrimenti no. Così non fungeva.

    Grazie
    True = 1
    False = 0
    Mi pare sia così
    Se tu fai un controllo del genere drovrebbe funzionare:
    Codice:
    $email_control = mysql_query("SELECT mail FROM users WHERE mail = '$mail'");
    if($email_control == 1) {
    #EMAIL GIA' UTILIZZATA
    } else {
    #PROCEDI CON LA REG.
    }
    Non ne sono comunque sicuro...
    Buona fortuna con il tuo sito/progetto

    Francesco.
    Nel momento in cui un uomo ammette di essere un hacker, smette di esserlo
    http://www.getyoursmiley.com/temp/88...1281218158.gif

  7. #7
    HT Member
    Data Registrazione
    Jul 2011
    Messaggi
    40

    Re: Inserire un controllo mysql per verificare se un e-mail esiste già in database

    Io invece per questo problema nel mio DB usavo un altro sistema, facevo fare il controllo direttamente al DB impostando il campo come unique.
    Poi se ti da un errore in inserimento significa che è un doppione

  8. #8
    HT Admin L'avatar di Antonio
    Data Registrazione
    Jun 2006
    Messaggi
    3,969

    Re: Inserire un controllo mysql per verificare se un e-mail esiste già in database

    Citazione Originariamente Scritto da Fabio2008 Visualizza Messaggio
    Io invece per questo problema nel mio DB usavo un altro sistema, facevo fare il controllo direttamente al DB impostando il campo come unique.
    Poi se ti da un errore in inserimento significa che è un doppione
    Se arrivato giusto con un anno di ritardo
    Antonio Angelino :: LinkedIn | Twitter

  9. #9
    Provider L'avatar di guest
    Data Registrazione
    Nov 2007
    Località
    Riccione
    Messaggi
    6,842

    Re: Inserire un controllo mysql per verificare se un e-mail esiste già in database

    Citazione Originariamente Scritto da Fabio2008 Visualizza Messaggio
    Io invece per questo problema nel mio DB usavo un altro sistema, facevo fare il controllo direttamente al DB impostando il campo come unique.
    Poi se ti da un errore in inserimento significa che è un doppione
    Il che può anche andare, ma poi devi gestire anche tutte le casistiche di errore, perchè un errore in inserimento non è detto che si presenti solo e soltanto nel caso di conflitto.
    Anche domini accentati! Registrazione ed attivazione immediata.

    http://www.web4web.it - Low Cost Hosting a partire da €10 dominio incluso.

  10. #10
    HT Member
    Data Registrazione
    Jul 2011
    Messaggi
    40

    Re: Inserire un controllo mysql per verificare se un e-mail esiste già in database

    Citazione Originariamente Scritto da guest Visualizza Messaggio
    Il che può anche andare, ma poi devi gestire anche tutte le casistiche di errore, perchè un errore in inserimento non è detto che si presenti solo e soltanto nel caso di conflitto.
    Sisi certo, ma in ogni caso è buona cosa gestire il maggior numero di errori per evitare blocchi. Per degli errori in inserimento si possono sempre verificare

Discussioni Simili

  1. Software per gestione e-mail più performante di atmail, esiste?
    Di marchionili nel forum E-mail e Managed Services
    Risposte: 32
    Ultimo Messaggio: 30-01-2012, 21:43
  2. Risposte: 11
    Ultimo Messaggio: 19-01-2012, 10:14
  3. Database MySQL
    Di danimars5 nel forum Shared e Managed Webhosting
    Risposte: 5
    Ultimo Messaggio: 30-04-2010, 13:31
  4. MySQL Database Hosting
    Di Tank nel forum WebHosting - Primi passi
    Risposte: 10
    Ultimo Messaggio: 28-04-2006, 18:52

Informazioni Discussione

Utenti che Stanno Visualizzando Questa Discussione

Ci sono attualmente 1 utenti che stanno visualizzando questa discussione. (0 utenti e 1 ospiti)

Tag per Questa Discussione

Segnalibri

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
  •