* het id van de verzender
* het id van de ontvanger
* het bericht
in staat.
Dan maak je een systeem waarin enkel de ontvanger en lezer dat bericht kunnen lezen.
Als je wilt kun je ook natuurlijk een extra optie toevoegen, gelezen ja of nee, en daar kun je dan ook weer een script op bouwen dat hij alle berichten die niet gelezen zijn een vette kleur geeft.
En natuurlijk raad ik je aan om te werken met MySQL database of een andere database.
Maar dan moet je wel weer een extra veld hebben waarin staat of 1 van 2en hem heeft heeft weggegooi en wie dan. Niet moeilijk maar moet je dan wel rekening mee houden
Ik gebruik 2 tabellen (minstens).
Inbox
Outbox
Zo blijft me database structuur netjes, en kan de ontvanger z`n berichten verwijderen terwijl de verzender hem nog in de map verzonden heeft staan (indien "Opslaan als verzonden" bij het verzenden was aangevinkt).
Die drop kan je verschillende statussen geven dus gewoon 1 drop.
Waardes:
0 = Ongelezen
1 = Gelezen
2 = Gelezen en verwijdert door de ontvanger
3 = Ongelezen en verwijdert door de verzender
4 = Gelezen en verwijdert door de verzender
Bv.
Pak het aantal berichten in het inbox van de ontvanger, en controleer dit.
Mysql_num_rows of mysql_result.
-Edit-
1 tabel:
Minder database opslag, maar alles staat door elkaar.
2 tabellen:
Meer database opslag, alles netjes georderd (vind ik).
Tijdslimiet haal je de meest recente rij op waar verzenderid overeenkomt met degene die nu wil sturen.
Maak van je tijd-kolom een DATETIME, dan kan je gemakkelijk vergelijken (staat een tut voor hier op Sima).
Edit: ik heb een messenger gemaakt, is wel met templatepower.
Als je wilt kan ik 'm wel bij de scripts zetten, kan je daar wat inspiratie van halen.. (is sowieso misschien handig, maar er staan er al meerdere). Met de messenger kan je berichten sturen (duh), je hebt een inbox en outbox met een totaal maximum van 50berichten. Als je een niet-bestaande username intypt, krijg je een lijst met alternatieven (vergelijkbare gebruikersnamen).
Verder worden niet-gelezen berichten bij mij dik en rood weergegeven. Ook kan je berichten verwijderen, ook meerdere tegelijk en om de inbox overzichtelijk te houden kan je (in het PHP-script) instellen hoeveel berichten per pagina er moeten worden weergegeven.
ik heb wel eens in een scriptje iets gezien over xminuten * 100000 ofzo en verder weet ik het niet meer maar dat had in iedergeval ook iets met de tijd te maken.
Kijk de tutorial over het gebruik van Datum en Tijd in MySQL hier eens door (tut van marten geloof ik). Daar leer je hoe je met DATEDIFF leert werken, daarmee kan je 2 tijden vergelijken.
Jou query zal dan ongeveer dit worden:
SELECT tijd, <en nog meer dingen>, DATEDIFF(NOW(), tijd) FROM berichten WHERE senderid=".$userid."
Dit is ff uit mn blote hoofd, als 't niet klopt > check de tut.
Sessies kan je alleen omzeilen door de browser te sluiten (dan worden de sessie gewist).
Cookies kan de gebruiker zelf gewoon aanpassen.
Met sessies is inderdaad dus ook een optie, maar te omzeilen door de browser te sluiten en opnieuw te starten (wel veel werk).
Wil je 't echt '100%' (niets is 100% veilig) hebben, dan moet je 't gewoon via je MySQL doen.