Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777

    mandare commenti con autenticazione mail

    salve tra i blog ormai si è diffuso il fatto che i commenti vengono inviati autenticandosi sul commento stesso con nick mail e facoltativo sito......

    ma è un'esclusiva wordpress o un mezzo script php potrebbe aiutare. non sono riuscito a trovare nulla di questo su google...ho cercato in vari modi...forse non uso le parole adatte...mi date una dritta?

    andrebbe bene adattare uno script per nick e pass con nick ed email?

    pure in inglese va bene

  2. #2
    Allora, su Wordpress mi sembra si possa commentare anche se non sei registrato.
    Per fare in modo di validare i propri dati tramite email devi rendere il campo email UNIQUE in mysql, così da non avere doppioni di email che potrebbero mandare in cenci il sistema.
    Dopodiché fai il semplice invio al commento, controllando che i dati utente immessi vengano trovati nel database.
    Comunque non vieni loggato su wordpress quando aggiungi un commento, semplicemente vengono presi i tuoi dati e controllato se sei nei loro archivi. Se ci sei aggiungono la fotina con il nome linkato ad una pagina scelta nel profilo. Altrimenti sei un visitatore senza questi vantaggi.
    Dai, è di facile realizzazione
    Ce l'ho fatta! - ItalianPixel -

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777
    Originariamente inviato da portapipe
    Allora, su Wordpress mi sembra si possa commentare anche se non sei registrato.
    Per fare in modo di validare i propri dati tramite email devi rendere il campo email UNIQUE in mysql, così da non avere doppioni di email che potrebbero mandare in cenci il sistema.
    Dopodiché fai il semplice invio al commento, controllando che i dati utente immessi vengano trovati nel database.
    Comunque non vieni loggato su wordpress quando aggiungi un commento, semplicemente vengono presi i tuoi dati e controllato se sei nei loro archivi. Se ci sei aggiungono la fotina con il nome linkato ad una pagina scelta nel profilo. Altrimenti sei un visitatore senza questi vantaggi.
    Dai, è di facile realizzazione
    vedi il parametro unique mi mancava
    va bene provo a costruire codice poi magari ripasso...
    credo che sia una cosa del tipo
    insert dati la prima volta
    oppure se l'utente gia esiste si fa una condizione per capire se si è presenti nel database
    nel caso volessi fare l'approvazione devo mettere un campo con 0 o 1 giusto?

  4. #4
    Si. Setti come default nel campo 'attivo'=0 e sei a posto.
    Ti conviene fare un semplice nome - email e inviarlo ad una pagina di controllo.
    Fai una verifica nel database e se esiste l'utente metti i dati relativi, altrimenti metti i dati senza, ad esempio, il link al suo profilo. Ti semplifichi la vita.
    Già che ci siamo: per inserire in modo rapido i dati nel database prova il framework che ho in firma, così mi fai sapere se ti è di aiuto. C'è un sacco di documentazione dettagliata. Lo sto costruendo per evitare di riscrivere da capo ad ogni sito tutte le funzioni, come ad esempio la connessione al database o l'insert piuttosto che date e array.
    Se lo dovessi usare fammi sapere che ti do una mano, così vediamo se ne vale la pena (anche se credo proprio di si!)
    Ce l'ho fatta! - ItalianPixel -

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777
    Originariamente inviato da portapipe
    Si. Setti come default nel campo 'attivo'=0 e sei a posto.
    Ti conviene fare un semplice nome - email e inviarlo ad una pagina di controllo.
    Fai una verifica nel database e se esiste l'utente metti i dati relativi, altrimenti metti i dati senza, ad esempio, il link al suo profilo. Ti semplifichi la vita.
    Già che ci siamo: per inserire in modo rapido i dati nel database prova il framework che ho in firma, così mi fai sapere se ti è di aiuto. C'è un sacco di documentazione dettagliata. Lo sto costruendo per evitare di riscrivere da capo ad ogni sito tutte le funzioni, come ad esempio la connessione al database o l'insert piuttosto che date e array.
    Se lo dovessi usare fammi sapere che ti do una mano, così vediamo se ne vale la pena (anche se credo proprio di si!)
    ok grazie mi metto sotto per il codice poi appena ho tempo ripasso con le nuove

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777
    Originariamente inviato da portapipe
    Si. Setti come default nel campo 'attivo'=0 e sei a posto.
    Ti conviene fare un semplice nome - email e inviarlo ad una pagina di controllo.
    Fai una verifica nel database e se esiste l'utente metti i dati relativi, altrimenti metti i dati senza, ad esempio, il link al suo profilo. Ti semplifichi la vita.
    Già che ci siamo: per inserire in modo rapido i dati nel database prova il framework che ho in firma, così mi fai sapere se ti è di aiuto. C'è un sacco di documentazione dettagliata. Lo sto costruendo per evitare di riscrivere da capo ad ogni sito tutte le funzioni, come ad esempio la connessione al database o l'insert piuttosto che date e array.
    Se lo dovessi usare fammi sapere che ti do una mano, così vediamo se ne vale la pena (anche se credo proprio di si!)
    per il momento ho scritto questo (andiamo per gradi )
    Codice PHP:
    // prelevo i dati dal form--------------------------------------
    $nicknametrim(htmlspecialchars($_POST['nome_utente']));
    $commentotrim(htmlspecialchars($_POST['testo']));
    $sito $_POST['sito'];
    $mail=$_POST['mail'];
    // fine prelievo------------------------------------------------

    //controlli-------------------------------------------------------------------------------------------------
    if(isset($mail) && eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$"$mail)){
    $archivio_utentemysql_query("SELECT * FROM utenti");
        while(
    $raccolta_utentimysql_fetch_array($archivio_utente)){
            
    $mail_utente $raccolta_utenti['mail'];
            

            if(
    $mail_utente != $mail){
            
    $inserisci_utente= ("insert into utenti (nome_utente, mail) values(\"$nickname\",\"$mail\")");
            }
        
            
    $inserimento=mysql_query("insert into commenti (nome_utente, commento, sito, data_ora) values (\"$nickname\", \"$commento\",\"$sito\",now())");
            
            
        }
    }
    else{
    $posta"- Mail scritta non correttamente";
    echo 
    $posta;

    il mio pensiero è stato quello di separare la gestione utenti e i commenti in due tabelle

  7. #7
    Vada per le due tabelle, ma perchè fai una query ed estrai tutti i dati? Essendo il nome e l'email dati univoci insieme, puoi fare una query mirata estraendo i dati dell'utente nome x e mail x@mail.com .

    Codice PHP:
    $query=mysql_query("SELECT * FROM utenti WHERE nome='$_POST[nome]' AND email='$_POST[email]' "); 
    Poi conti quanti record sono stati estratti con mysql_num_rows() e se il numero è 1 vuol dire che un utente con quei dati c'è e quindi è registrato, altrimenti se il numero fosse 0 o hai sbagliato a fare la query oppure l'utente non è registrato e pubblichi il commento come visitatore, il suo nome e l'email te la tieni nel database, nel caso ci fossero problemi.
    Per quanto riguarda i commenti ti consiglio di mettere nel database insieme ai commenti il nome, l'email e un eventuale link per chi è iscritto, così non devi stare ad estrarre i dati ogni volta dalla tabella utenti e, soprattutto, chi non è registrato può postare tranquillamente senza avree la necessità della registrazione stessa. Forse per chi è registrato puoi mettere un campo con l'id dell'utente, magari in un campo apposito, così se in un futuro l'utente cambiasse nome o email, rimarrebbe aggiornato anche il commento, ma i campi per chi non è registrato sono fondamentali.
    Ce l'ho fatta! - ItalianPixel -

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777
    ciao grazie della dritta avevo pensato alla tua possibilità..
    l'email e il nome vanno filtrati vero?
    l'email con l'espressione regolare
    mentre nome con addslashes non ho il magic attivo...

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777
    Originariamente inviato da portapipe
    Vada per le due tabelle, ma perchè fai una query ed estrai tutti i dati? Essendo il nome e l'email dati univoci insieme, puoi fare una query mirata estraendo i dati dell'utente nome x e mail x@mail.com .

    Codice PHP:
    $query=mysql_query("SELECT * FROM utenti WHERE nome='$_POST[nome]' AND email='$_POST[email]' "); 
    Poi conti quanti record sono stati estratti con mysql_num_rows() e se il numero è 1 vuol dire che un utente con quei dati c'è e quindi è registrato, altrimenti se il numero fosse 0 o hai sbagliato a fare la query oppure l'utente non è registrato e pubblichi il commento come visitatore, il suo nome e l'email te la tieni nel database, nel caso ci fossero problemi.
    Per quanto riguarda i commenti ti consiglio di mettere nel database insieme ai commenti il nome, l'email e un eventuale link per chi è iscritto, così non devi stare ad estrarre i dati ogni volta dalla tabella utenti e, soprattutto, chi non è registrato può postare tranquillamente senza avree la necessità della registrazione stessa. Forse per chi è registrato puoi mettere un campo con l'id dell'utente, magari in un campo apposito, così se in un futuro l'utente cambiasse nome o email, rimarrebbe aggiornato anche il commento, ma i campi per chi non è registrato sono fondamentali.
    allora dovrebbe essere
    Codice PHP:
    // prelevo i dati dal form--------------------------------------
    $nicknametrim(htmlspecialchars($_POST['nome_utente']));
    $commentotrim(htmlspecialchars($_POST['testo']));
    $sito $_POST['sito'];
    $mail=$_POST['mail'];
    // fine prelievo------------------------------------------------

    //controlli-------------------------------------------------------------------------------------------------
    if(isset($mail) && eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,3})$"$mail)){
    $archivio_utentemysql_query("SELECT * FROM utenti WHERE name='$nickname' AND mail='$mail'");

            if(
    mysql_num_rows($archivio_utente) == 0){
            
    $inserisci_utente= ("insert into utenti (nome_utente, mail) values(\"$nickname\",\"$mail\")");
    }

     
    $inserimento=mysql_query("insert into commenti (nome_utente, commento, sito, data_ora) values (\"$nickname\", \"$commento\",\"$sito\",now())");    
          
        }

    else{
    $posta"- Mail scritta non correttamente";
    echo 
    $posta;

    quindi AND mi garantisce che se mail e anche name ci sono mi fa tutta la condizione dell'if.

  10. #10
    Bene, mi sembra sia più leggero di prima.
    Sei sicuro però di inserire l'utente nel database? Anche se scrive solo un commento ti trovi sul groppone un utente inutile.
    Metti piuttosto nome e mail nei commenti.
    Fai un campo per l'id degli utenti registrati nella tabella dei commenti. Se il campo è vuoto, quando vai a richiamare il commento, allora prendi i campi nome e email dal commento stesso (utente non registrato) altrimenti estrai i dati dalla tabella utenti.
    Per il resto è perfetto.
    Ce l'ho fatta! - ItalianPixel -

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.