Personal Message system + login

Door Erik Rijk, 17 jaar geleden, 5.580x bekeken

Dit is een Personal Message system dat je simpel kan gebruiken voor op je website.

Ik heb er tevens een klein login systeempje bij gedaan omdat ik het geschreven heb aan de hand van dat login systeem. Dit zal ik volgende week veranderen. ( vanaf dan zal je alles even moeten instellen in de config.php ).

Het systeem werkt goed zoals het nu is: Ik ben er nog bezig om te kijken of de code korter / overzichtelijker kan, dat zal ik netjes bijhouden in de To do list onderaan deze toelichting.

Alle scripts zijn ingedeeld in mappen. De mappen zal ik hier noteren en achter bij de scripts zal ik netjes zetten in welke map het hoort :)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
[b]login[/b]
[b]messaging[/b]
[b]logs[/b]
    [b]mysql[/b] ( hoort in de map logs )
[b]include[/b]
    [b]img[/b] ( hoort in de map include )

SQL voor de tabel: pb
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
CREATE TABLE pb (
  PID INT(11) NOT NULL auto_increment,
  van INT(11) NOT NULL,
  voor INT(11) NOT NULL,
  titel VARCHAR(50) NOT NULL,
  bericht TEXT NOT NULL,
  gelezen INT(1) NOT NULL default 0,
  datum DATETIME NOT NULL,
  deleted INT(1) NOT NULL default 0,
  saved INT(1) NOT NULL default 0,
  PRIMARY KEY(PID)
);

SQL voor de tabel: members
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
CREATE TABLE members (
  id INT(11) NOT NULL auto_increment,
  username VARCHAR(30) NOT NULL,
  password VARCHAR(40) NOT NULL,
  active INT(1) NOT NULL,
  PRIMARY KEY(id)
);

To do list:
  • xhtml + css valid maken
  • alle notices eruit werken
  • config.php iets uitbreidden
  • style.css even nalopen, volgens mij staat er meer in dan nodig is.
  • Meer commentaar in de scripts gooien.
  • Iets beters verzinnen voor de functie query_fouten();
  • Meer UBB functies maken
  • Shorttags eruit halen
  • Niet alleen loggen of het bericht is verstuurd, maar ook of het is aangekomen

Changelog
  • send.php ( map: messaging ) code verbeterd en notices eruit gehaald.

Gesponsorde koppelingen

PHP script bestanden

  1. personal-message-system-login

 

Er zijn 35 reacties op 'Personal message system login'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Alfred -
Alfred -
17 jaar geleden
 
0 +1 -0 -1
Wat me zo opvalt, is dat je engels -en nederlandstalige errors door elkaar gebruikt...

Quote:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?=$_SERVER['PHP_SELF'] ?>

(Tekst toegevoegd i.v.m. slechte weergave van code in een quote)

Maak je beter
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $_SERVER['PHP_SELF']; ?>
van... I.v.m. shorttags.. ;)

Quote:
<form method="post" action='.$_SERVER[PHP_SELF].'>


Waar zijn de ' ' heen rond PHP_SELF ?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo '<form method="post" action='.$_SERVER['PHP_SELF'].'>';
?>


17 jaar geleden
 
0 +1 -0 -1
Netjes geprogrameerd, sluit me aan bij Rafael.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
ini_set('display_errors', 0);
error_reporting(E_ALL);

Dit zou ik er nou uithalen of op lager zetten. Hoe minder code je prijsgeeft aan de mogelijke hacker hoe beter
PHP Newbie
PHP Newbie
17 jaar geleden
 
0 +1 -0 -1
Nou dat hoeft niet hoor webmakerij, want na dat eerste (ini_set('display_errors', 0);) werkt dat 2e (error_reporting(E_ALL);) toch niet meer :-p
Erik Rijk
Erik Rijk
17 jaar geleden
 
0 +1 -0 -1
@ Rafael,

Ik zal eens naar de verschillende talen gaan kijken....
Die ' zijn schoonheids foutjes, zal ik allemaal gaan verbeteren :)

en short tags vond ik altijd wel fijn, maar is wel beter dat ik het volluit schrijf, zeker voor mensen die hosten bij een host die short tags uit hebben.

@ Webmakerij.

Bedankt :)
De puntjes van Raf ga ik nog wegwerken.
ini_set('display_errors', 0); ( de 0 betekend al dat er zoiezo geen errors / notices zullen komen zoals php_newbie al aangeeft.
Leo
Leo
17 jaar geleden
 
0 +1 -0 -1
Ik host hem wel.. verder mooi script.. alleen kende ik hem al een tijdje :)

Je css was een beetje erg vaag, als het goed is moet dit werken (sommige dingen stonden dubbel..)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
body
{
    background-color: #000;
    color: #FFF;
    font-family: Verdana;
    font-size: 8pt;
}

td.top
{
    background-color: #EE7600;
    color: #000;
    border: 1px outser #FF6103 #FF6103;
}

td
{
    background-color: #000;
}

img
{
    border: 0px solid;
}

.inbox
{
    font: 8pt Verdana;
    border: 0px solid;
    background-color: #829DAF;
}

.input
{
    background-color: #000;
    border: 1px solid #333333 #333333 #333333 #333333;
}

input
{
    background-color: #000;
    border: 1px solid #829DAF;
    color: #FFFFFF;
    font: 8pt Verdana;
}

textarea
{
    background-color: #FFF;
    border: 1px solid;
}

a:link, a:visited, a:hover, a:active
{
    font-weight: none;
    color: #829DAF;
    text-decoration: none;
}

.quote
{
    background-color: #000;
    border: 1px solid #000;
}


Als dit niet werkt, sorry dan..
K i p
K i p
17 jaar geleden
 
0 +1 -0 -1
Ik heb alles gedaan wat er stond:

hier
Majid Ahddin
Majid Ahddin
17 jaar geleden
 
0 +1 -0 -1
Fijn he, dat display_errors op 0... Heel handig :S
Je moet zo coden dat je alle errors laat zien en dat er toch geen errors te zien zijn!
En als je echt geen errors wil laten zien, bouw dan een errorhandler die ze mooi afvangt en logt (of niet).
Gewoon kei hard en lomp display_errors op 0 zetten is niet echt de oplossing, al zeg ik het zelf.
Ik ga m nu proberen op mn locale server
Majid Ahddin
Majid Ahddin
17 jaar geleden
 
0 +1 -0 -1
Waarom heb ik een map "img" gemaakt? :) Heb display_errors op 1 gezet en _overal_ error_reporting op 2039 (E_ALL^E_NOTICE) omdat ie anders gewoon niet werkt. PHP spawnt namelijk een error (notice) message en daarna kan ie niet meer Headeren naar volgende locatie. Dus die notices moeten echt tegengehouden worden.
Nu werkt het en is lache dingetje, maar ik moest via mysql.exe een account maken, waarom zit er geen signup in? =p
Erik Rijk
Erik Rijk
17 jaar geleden
 
0 +1 -0 -1
@ rudie,

signup zit er niet bij omdat ik die niet gemaakt heb ;) ( zal ik straks wel even erbij plaatsen ).
Het login systeempje gaat er ook uit, dat heb ik er nu maar even bijgeplakt voor de handigheid.

De map img heb je gemaakt voor de images die erbij horen ;)
die ik ook vergeten ben merk ik nu :p ik ga ze er zo bij zetten.

Er staat duidelijk in de toelichting dat ik de notices nog weg moet werken, ook daar ga ik straks mee verder.

@ Boris,

Ik zie bij jou een heel mooi wit scherm, zet display_errors even op 1 op alle scripts en kijk waar het fout gaat, ik ga zo verder om alle notices e.d. eruit te werken.

Bedankt voor jullie reactie
K i p
K i p
17 jaar geleden
 
0 +1 -0 -1
Erik Rijk
Erik Rijk
17 jaar geleden
 
0 +1 -0 -1
Ik ben met error_reporting(E_ALL) even alle notices aan het wegwerken. Als dat gedaan is update ik even alle files en dan zou het moeten werken...
Luc Zontrop
Luc Zontrop
17 jaar geleden
 
0 +1 -0 -1
@boris: haal maar snel je link daar weg, ieder kan zo in je phpmyadmin :$
K i p
K i p
17 jaar geleden
 
0 +1 -0 -1
Oeps....


Foutje... (a)


Maar goed, in mijn DB kan je toch alleen vanaf lokaal, dat is dan gelukkig weer ingesteld. :-)


edit: heb het trouwens veranderd.
Geert
Geert
17 jaar geleden
 
0 +1 -0 -1
Heb een kleine aanpassing gemaakt aan index.php (die buiten alle mappen staat ;-) ) Het werkt wel, maar ik wil even weten of ik het ook goed heb gedaan... misschien is er een makkelijkere/snellere manier, maar die weet ik (nog) niet

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
// controleren of de gebruiker is ingelogd.
if($_SESSION['login'] && $_SESSION['timeout']>time())
{

    header('Location: messaging/index.php');
}

else
{
    header('Location: login/login.php');
}

?>


nu kijkt die dus (als het goed is) of je al bent ingelogt, ben je dat wel dan ga je naar de berichten pagina. Zo niet, dan ga je naar de inlog pagina...
PHP Newbie
PHP Newbie
17 jaar geleden
 
0 +1 -0 -1
klein opmerkinkje:

je doet:

if()
{

maar

else {

Misschien overzichtelijker om daar 1 manier voor te kiezen ;-)
Erik Rijk
Erik Rijk
17 jaar geleden
 
0 +1 -0 -1
@ PHP Newbie

Ik doe het altijd op die manier, vind het zelf wel fijn werken en overzichtelijk.
Willem
willem
17 jaar geleden
 
0 +1 -0 -1
bij mij komt hij met deze error

Parse error: parse error, unexpected '}' in C:\SGBWEB\www\IN2009\HulstW\Site\index.php on line 697

kan iemand je me zeggen hoe ik ie weg kan halen?
K i p
K i p
17 jaar geleden
 
0 +1 -0 -1
backspace?
Willem
willem
17 jaar geleden
 
0 +1 -0 -1
dan komt ie met een error op de volgende regel
Erik Rijk
Erik Rijk
17 jaar geleden
 
0 +1 -0 -1
Ik ben er nog even mee bezig,

Zoals het hierboven staat zouden er geen foutmeldingen voor mogen komen dacht ik :(

Zal het zo even zelf testen...
Willem
willem
17 jaar geleden
 
0 +1 -0 -1
dit is van 669 tot 702


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?
    }
        echo '
            <form method="post" action='
.$_SERVER[PHP_SELF].'>
                <table align="center" width="300" cellpadding="5" cellspacing="0">
                    <tr>
                        <td width="150"><input class="input" type="submit" name="clear" value="Clear inbox" /></td>
                        <td align="right" width="150"></td>
                    </tr>
                </table>
            </form>
            <center>New messages are marked with an <img src="../include/img/bericht.gif" alt="envelope" /></center>
            '
;
    }

    else {
        echo '
        <table align="center" class="inbox" width="270" cellpadding="5" cellspacing="1">
            <tr>
                <td align="center">Your inbox is empty!</td>
            </tr>
        </table>
            '
;
    }
}

echo '
</body>
</html>
    '
;
}

else {
    session_unset();
    session_destroy();
    header('Location: ../login/login.php');
}

?>
W W
W W
16 jaar geleden
 
0 +1 -0 -1
kun het ook zo maken dat het inlog systeem phpmylogon is?
Erik Rijk
Erik Rijk
16 jaar geleden
 
0 +1 -0 -1
tuurlijk,

moet je wel een groot deel van het script aanpassen...
Thomas
Thomas
16 jaar geleden
 
0 +1 -0 -1
ja maar hoe doe je dat, ik heb liever gewoon een simpel inlogscript (met pm)met een registreer, dan een zonder
Bas
Bas
14 jaar geleden
 
0 +1 -0 -1
bij werkt hij niet

wat ik ook doe hij gaat elke keer naar de no-access.php pagina
Henktrol
henktrol
14 jaar geleden
 
0 +1 -0 -1
wie heeft hierbij een registratiescript gemaakt?
ben nog een phpnoob
wil diegene m hier posten of pm'en?
RvW Of toch niet
RvW Of toch niet
14 jaar geleden
 
0 +1 -0 -1
als je en noob bent lees dan eerst eens aan aantal goeie tuts in plaats van met dit aan de slag tegaan
Maurice
maurice
14 jaar geleden
 
0 +1 -0 -1
het lukt niet alleen maar fout meldingen alles heb ik gedaan!
Henktrol
henktrol
14 jaar geleden
 
0 +1 -0 -1
rvw:
als je en noob bent lees dan eerst eens aan aantal goeie tuts in plaats van met dit aan de slag tegaan


houd je bek kut mongool
Mark moes
mark moes
14 jaar geleden
 
0 +1 -0 -1
@henktrol
Heb ik je weer. Nog steeds niet zo vriendelijk. Misschien is er iemand die daar wat aan kan doen? Mods, wordt dit gedoogd? zo ja hou ik me stil.

En toch is het niet echt netjes...
Marco Bos
Marco Bos
12 jaar geleden
 
0 +1 -0 -1
Bij de nieuwste versie van PHP is het toch niet meer mogelijk om het script te starten via
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
maar voortaan via
[code]<?php

of heb ik het nou mis?
Jordi Kroon
Jordi Kroon
12 jaar geleden
 
0 +1 -0 -1
short tags werken gewoon maar niet op alle servers dat moet dus op je server ingesteld zijn . dus je kan het beter goed leren om verdere problemen te voorkomen
Jasper DS
Jasper DS
12 jaar geleden
 
0 +1 -0 -1
@ marco, dit script is 4 jaar...
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Jurrian Nijland
Jurrian Nijland
12 jaar geleden
 
0 +1 -0 -1
Had dit niet al lang weg moeten zijn? Zie wat hierboven allemaal staat. Dat gescheld enzo =O

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. personal-message-system-login

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.