Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    1,683

    controlli sul punteggio utente

    Ciao a tutti! sto creando un sito che contiene tante voci nel database, che gli utenti possono aggiornare e/o inserirne di nuove.
    ogni aggiornamento/inserimento vorrei venisse "premiato" con una sorta di punteggio.
    quello che voglio evitare è che un utente apra voci e caso e prema il bottone aggiorna senza modificare nulla, solo per aumentare il punteggio.
    che controlli posso fare per dare punti solo a chi sta davvero inserendo informazioni utili?
    grazie e buon natale

    ps: le voci del database sono input text alfanumerici e numerici e una textarea.

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Intanto puoi vedere se la entry viene veramente modificata, così eviti che qualcuno aggiorni senza modificare niente.
    Per farlo basta che vedi cosa ti dice mysqli_affected_rows() dopo aver eseguito l'update, se ti dice 0 vuol dire che non è stato modificato niente.

    Questo però non ti mette al riparo da chi aggiunge o toglie un . per esempio.

    Per valutare un cambiamento significativo tra i vecchi ed i nuovi dati dovresti creare una funzione ad hoc, che di certo non potrà però dirti se le informazioni nuove sono utili o meno.
    Ad esempio una funzione che ti conti il numero di parole del vecchio contenuto, il numero di quelle nel nuovo e in base alla differenza decidi se è cambiato abbastanza o meno.
    Questa è un'idea molto grezza, ma può essere affinata a seconda delle tue esigenze.

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    1,683
    ok, grazie mille della risposta... prima di mettermi a scrivere la prima riga di codice mi è venuto in mente un'altro blocco...
    perchè, se io paragono la nuova stringa con la vecchia, posso vedere la differenza del numero di parole, e io lo posso accettare come "vero" se c'è una differenza di 10 (per eccesso o difetto) ad esempio.
    Ma se uno riscrive interamente o parzialmente il contenuto, e il numero di parole rimane più o meno lo stesso, ad esempio di più 7 parole, lo script penserà che l'utente non ha aggiornato abbastanza l'elemento.
    cosa devo fare? paragonare le singole parole e trovare la percentuale di diversità (si potrebbe rallentare sensibilmente la velocità) o diminuire l'offset da 10 a 3 (con il rischio che i contenuti vengano "accettati" senza che siano sufficientemente modificati), o altro?
    associare anche un sistema che conta i secondi trascorsi da una modifica all'altra e li accetta solo quando passano 30 secondi potrebbe essere una buona idea?

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Sì, potresti anche crearti una funzione che ti calcoli la diversità tra le stringhe, per il tempo di esecuzione, sta tranquillo che neanche te ne accorgerai, non dovrà confrontare 2 versioni di un'enciclopedia da 30 volumi.

    Anche l'intervallo di tempo tra una modifica e l'altra potrebbe scoraggiare eventuali furbi, magari portando l'intervallo a 1 minuto.

    Volendo potresti anche combinare le due cose.

  5. #5
    E' impossibile controllare in automatico che dei contenuti siano utili e/o coerenti!
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Si, sulla corretteza ed utilità infatti non si può fare niente in automatico, ma contrastando le modifiche selvagge magari si riesce a scoraggiare "chi vuole solo i punti" e limitare eventuali danni ai contenuti.

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.