Un Evento Unico. 5 Sale. 27 Interventi. SEO, SOCIAL, E-Commerce, Mobile, Turismo.
CLICCA QUI e SCOPRI DI PIù X Chiudi
 
Forum GT: Condividiamo idee e conoscenza Forum GT: Condividiamo idee e conoscenza


Condividi questo contenuto nei Social Network:
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito.


Vai indietro   Forum per Webmaster: Condividiamo Idee e Conoscenza > Sviluppo e Gestione siti web > Php - Mysql
Benvenuto! Forum Regole FAQ Lista utenti Calendario Segna come letti


Rispondi
 
LinkBack Strumenti di discussione
Vecchio 04-03-10, 18:27   #1 (permalink)
Moderatore
 
L'avatar di lazzo85
 
Data di registrazione: Nov 2005
Ubicazione: Sarzana (SP) / Fosdinovo (MS)
Messaggi: 844
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.
lazzo85 non in linea   Rispondi citando
Vecchio 07-03-10, 08:43   #2 (permalink)
 
Data di registrazione: Feb 2010
Messaggi: 136
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).
portapipe non in linea   Rispondi citando
Vecchio 09-03-10, 12:06   #3 (permalink)
Moderatore
 
L'avatar di lazzo85
 
Data di registrazione: Nov 2005
Ubicazione: Sarzana (SP) / Fosdinovo (MS)
Messaggi: 844
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?
lazzo85 non in linea   Rispondi citando
Vecchio 09-03-10, 12:48   #4 (permalink)
 
Data di registrazione: Feb 2010
Messaggi: 136
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
portapipe non in linea   Rispondi citando
Vecchio 11-03-10, 18:45   #5 (permalink)
Moderatore
 
L'avatar di lazzo85
 
Data di registrazione: Nov 2005
Ubicazione: Sarzana (SP) / Fosdinovo (MS)
Messaggi: 844
Per la tabella MySQL non ho problemi.
Il fatto è che mi servirebbe proprio sapere come fare il codice PHP...
lazzo85 non in linea   Rispondi citando
Vecchio 11-03-10, 19:03   #6 (permalink)
 
Data di registrazione: Feb 2010
Messaggi: 136
mmm... non ne sai molto di php e mysql, vero?
portapipe non in linea   Rispondi citando
Vecchio 11-03-10, 19:07   #7 (permalink)
Moderatore
 
L'avatar di lazzo85
 
Data di registrazione: Nov 2005
Ubicazione: Sarzana (SP) / Fosdinovo (MS)
Messaggi: 844
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à...
lazzo85 non in linea   Rispondi citando
Vecchio 11-03-10, 19:14   #8 (permalink)
 
Data di registrazione: Feb 2010
Messaggi: 136
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.
portapipe non in linea   Rispondi citando
Rispondi


Strumenti di discussione

Regole di scrittura
Non puoi postare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi allegare file
Non puoi editare i tuoi post

BB code is Attivo
smilies è Attivo
[IMG] il codice è Attivo
Il codice HTML è Disattivato
Trackbacks are Attivo
Pingbacks are Attivo
Refbacks are Disattivato
Vai al forum



Tutti gli orari sono GMT +3. Attualmente sono le 15:24.




Forum GT - © 2004-2009 GT idea S.r.l P.iva 02418200800 - Privacy/Disclaimer

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.