- Home
- Categorie
- Coding e Sistemistica
- Coding
- Un numero prestabilito di richieste
-
Un numero prestabilito di richieste
Ciao a tutti.
Non ho trovato nulla in rete, ne sul forum, forse perché non so quali parole cercare...
Ho una tabella in MySql da cui vorrei far estrarre agli utenti solo un certo numero di risultati.
Mi spiego con un esempio: ci sono 30 risultati possibili, ma vorrei che gli utenti possano fare 3 richieste e vedere i 3 risultati voluti.
Alla quarta richiesta che venisse un messaggio tipo "Hai superato le richieste che potevi fare, per conoscere le altre etc. etc..." o qualcosa del genere.
Naturalmente se esce e rientra nel sito deve vedere i soliti risultati e non fare altre richieste.Esiste uno script già pronto da cui possa iniziare?
Se ho un punto di partenza magari riesco a fare le modifiche che mi servono, ma da zero non so proprio cosa fare.
-
Beh, devi salvare gli ip sul database, per forza.
A meno che non salvi tutto su un cookie (rischioso se capiscono il trucco e cancellano il cookie, ma poi nemmeno tanto) e ad ogni richiesta di quell'utente aumenti il valore del cookie di 1. Se il cookie è a 3, allora visualizzi il messaggio.
Chiaramente dai validità un giorno (immagino il metodo sia quello) o una settimana, dopodiché il cookie scade e possono ripetere la ricerca.
Rapidissimo e assolutamente indolore.
Altrimenti ti tocca salvarti l'ip dell'utente, aggiornare il campo "richieste" di uno ad ogni richiesta e quando arriva a tre allora viene visualizzato un messaggio.
Così però devi creare una query iniziale per calcolare, in base all'ip, le richieste effettuate (se presenti).
-
Gli utenti che vedono quella specifica pagina sono gli iscritti al mio e-commerce. Quindi non ho problemi per salvare gli IP
.
Ma come realizzo materialmente questa cosa?
-
Se sono registrari allora dell'ip non ne hai bisogno.
Devi crearti una tabella apposita (consiglio per essere più ordinato, anche se in realtà puoi aggiungere 2 campi alla tabella utenti e vai molto più lisci).Se aggiungi 2 campi è più facile:
richieste
time
quando un utente loggato entra nella pagina X, una query aumenterà, nel record dell'utente loggato, il campo richieste di 1, salvandone il timestamp ( time() )nel campo apposito.
Quando l'utente visualizzerà altre 2 volte la pagina X, se il campo richieste è minore di 3, riuscirà senza problemi, mentre la stessa query di prima aumenta di 2 il campo richieste e aggiornerà il timestamp.Arrivati alla terza volta, la condizione che controlla il campo richieste noterà che il valore è 3 (quindi 3 richieste effettuate) e boccerà la richiesta di visualizzazione, facendo uscire a video un messaggio:
echo "Troppe richieste per oggi";Ho tralasciato un punto apposta: il timestamp.
Prima della condizione di controllo richieste dovrai farti un controllo sul tempo. Il ragionamento è semplice:
SE il timestamp è maggiore di 86400 (1 giorno) allora modifica il campo Richieste con il valore 0.In questo modo, partendo dall'inizio:
Quando l'utente visualizza la pagina viene controllato il tempo dall'ultima visita.
SE il timestamp è maggiore di 86400 viene resettato il campo richieste.
SE le richieste non sono uguali a 3 allora visualizza il contenuto
e viene salvano il timestamp e aumentato di 1 il campo richieste ALTRIMENTI scrivi a video un messaggio di errore.Preferisco spiegare il procedimento che scrivere il codice. Credo sia il metodo migliore di insegnamento

-
Per la tabella MySQL non ho problemi.
Il fatto è che mi servirebbe proprio sapere come fare il codice PHP...
-
mmm... non ne sai molto di php e mysql, vero?

-
Non sono un programmatore ma qualcosa riesco a fare.

Riesco a fare le modifiche che voglio su script già esistenti ma a crearli da zero trovo qualche difficoltà...
-
Guarda, credo di aver scritto passo passo quello che devi fare per ottenere il risultato che vuoi.
Prova a creare uno script partendo da quello che ti ho scritto passo passo e posta il codice qui.
Sarò contento di aiutarti.
E' semplice da realizzare, quindi con un paio di googolate te la cavi assai.