|
priveberichten.php + mysql + zonder bug`
het is een simpele prive berichten
hier is de mysql
CREATE TABLE `priveberichten` (
`id` int(10) NOT NULL auto_increment,
`onderwerp` varchar(100) NOT NULL default '',
`van` int(5) NOT NULL default '0',
`naar` int(5) NOT NULL default '0',
`datum` datetime NOT NULL default '0000-00-00 00:00:00',
`bericht` blob NOT NULL,
`ip` varchar(15) NOT NULL default '',
`gelezen` int(1) NOT NULL default '0',
PRIMARY KEY (`id`)
) TYPE=MyISAM
--- apriveberichten.php ---
<script language="javascript">
function verwijder(bericht, url)
{
if(confirm(bericht)) location.href = url;
}
function icon(theicon)
{
document.formulier.bericht.value += ""+theicon;
document.formulier.bericht.focus();
}
</script>
<?
if(!$_GET['new'] AND !$_GET['send'] AND !$_GET['id'] AND !$_GET['deleteall'] AND !$_GET['delete'] AND !$_GET['reply']){
$select = "SELECT *, date_format(datum,'%d-%m-%Y') AS datum FROM priveberichten WHERE naar = '" . $_COOKIE[memberid] . "' ORDER BY id DESC";
$query = mysql_query($select);
$aantal = mysql_num_rows($query);
echo "<h3>Inbox</h3>";
echo "Dit is je privéberichten inbox, vanuit hier kunt u berichten naar andere leden sturen. Deze berichten kunnen alleen de ontvangers lezen.";
if($aantal == 0){
echo "<BR><BR><b>Op dit moment staan er geen privéberichten in je inbox.</b><br><br>";
}
else {
if($aantal == 1){
$aantal = "staat er $aantal privébericht";
}
else {
$aantal = "staan er $aantal privéberichten";
}
echo "<BR><BR><b>Op dit moment $aantal in je inbox...</b><hr size=\"1\" noshade>";
?>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td width="25%"><b>Onderwerp:</b></td>
<td width="25%"><b>Afzender:</b></td>
<td width="25%"><b>Datum:</b></td>
<td width="25%"><b>Gelezen:</b></td>
</tr>
</table>
<?
while($list = mysql_fetch_array($query)){
echo "<table width='100%'><tr><td width=\"25%\"><a href=\"?id=$list[id]\">$list[onderwerp]</a></td><td width=\"25%\">";
$select = "SELECT gebruikersnaam, status FROM leden WHERE id = '" . $list[van] . "'";
$query_select = mysql_query($select);
$object = mysql_fetch_array($query_select);
echo "<a href=\"aprofiel.php?mid=$list[van]\"><font color=\"" . $color_array[$object[status]] . "\">$object[gebruikersnaam]</font></a>";
echo "</td><td width=\"25%\">$list[datum]</td><td width=\"25%\">";
if($list[gelezen]){
echo "Ja";
}
else {
echo "Nee";
}
echo "</td></tr>";
}
echo "</table><hr size=\"1\" noshade>";
}
echo "<a href=\"?new=1\">Nieuw bericht</a><br>";
echo "<a href=\"javascript:verwijder('Weet je zeker dat je alle privéberichten wilt verwijderen?','?deleteall=1')\">Verwijder alle berichten</a><br>";
}
if($_GET['new']){
if($_GET[reply]){
$select = "SELECT priveberichten.*, leden.gebruikersnaam, leden.id FROM priveberichten, leden WHERE priveberichten.van = leden.id AND priveberichten.id='" . $_GET[reply] . "'";
$query = mysql_query($select);
while($list = mysql_fetch_array($query)){
$list[onderwerp] = str_replace("Re: ", "", $list[onderwerp]);
$titel = "Re: $list[onderwerp]";
$naar = $list[gebruikersnaam];
$bericht .= "
<br>
<b>--- HET OUDE BERICHT ---</b>
$list[bericht]";
}
}
echo "<h3>Reageren</h3>";
echo "Stel hieronder het bericht op dat je wilt versturen.";
echo "<table>
<form method=\"POST\" action=\"?send=1\" name=\"formulier\">
<tr><td>Naar:</td><td>";
if($_GET[user]){
echo "<input type=\"text\" name=\"naar\" size=\"30\" value=\"$_GET[user]\">";
}
else {
echo "<input type=\"text\" name=\"naar\" size=\"30\" value=\"$naar\">";
}
echo "</td></tr>
<tr><td>Onderwerp:</td> <td><input type=\"text\" name=\"onderwerp\" size=\"30\" value=\"$titel\"></td></tr>
<tr valign='top'><td>Bericht:</td><td><textarea rows='15' cols='60' name='tekst'>$bericht</textarea></td></tr>
<tr><td> </td><td></td></tr>
<tr><td> </td><td><input type='submit' name='send' value='Verzenden'></td></tr>
</table>
</form>
<a href='apriveberichten.php'>Terug naar je inbox</a>";
}
if($_POST[send]){
if(!$_POST[naar] || !$_POST[onderwerp] || !$_POST[tekst]){
echo "<h3>Priveberichten › Fout</h3>";
echo "Je moet alle velden invullen om te kunnen reageren.<br><br><a href=\"javascript:history.go(-1)\">Ga terug</a>";
}
else {
$select = "SELECT * FROM leden WHERE gebruikersnaam = '" . $_POST[naar] . "'";
$query = mysql_query($select);
$bestaat = mysql_num_rows($query);
if($bestaat != 1){
echo "<h3>Priveberichten › Fout</h3>";
echo "De member naar wie je een privébericht probeerde te sturen bestaat niet.<br><br><a href=\"javascript:history.go(-1)\">Ga terug</a>";
}
else {
$select = "SELECT id FROM leden WHERE gebruikersnaam = '" . $_POST[naar] . "'";
$query = mysql_query($select);
$list = mysql_fetch_array($query);
$insert = "INSERT INTO priveberichten (onderwerp,van,naar,datum,bericht,ip,gelezen) VALUES ('" . $onderwerp . "','" . $_COOKIE[memberid] . "','" . $list[id] . "',NOW(),'" . $_POST[tekst] . "','" . $ip . "','0')";
$query = mysql_query($insert);
echo "<h3>Priveberichten › Verzonden</h3>";
echo "Je privébericht is succesvol verzonden naar $_POST[naar].<br><br><a href=\"apriveberichten.php\">Terug naar je inbox</a>";
}
}
}
if($_GET[id]){
$select = "SELECT *,date_format(datum,'%d-%m-%Y %H:%i') AS datum FROM priveberichten WHERE naar = '" . $_COOKIE[memberid] . "' AND id = '" . $_GET[id] . "'";
$query = mysql_query($select);
$result = mysql_num_rows($query);
if($result == 0){
echo "<h3>Priveberichten › Fout</h3>";
echo "Je probeerde een privébericht te openen dat niet bestaat of is verwijderd.<br><br><a href=\"javascript:history.go(-1)\">Ga terug</a>";
}
else {
$update = "UPDATE priveberichten SET gelezen = '1' WHERE id = '" . $_GET[id] . "'";
$update_query = mysql_query($update);
while($list = mysql_fetch_array($query)){
$bericht = htmlspecialchars($list[bericht]);
$bericht = nl2br($list[bericht]);
$select = "SELECT id,gebruikersnaam,avatar,status,ondertitel FROM leden WHERE id = '" . $list[van] . "'";
$query = mysql_query($select);
$afzender = mysql_fetch_array($query);
echo "<h3>Priveberichten › $list[onderwerp]</h3>";
echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td width=\"100\" valign=\"top\"><b><a href=\"aprofiel.php?mid=$list[van]\"><font color=\"" . $color_array[$afzender[status]] . "\">$afzender[gebruikersnaam]</font></a></b><br>
<font size=\"2\">$afzender[ondertitel]</font>";
if($afzender[avatar] != "Geen"){
echo "<BR><BR><img src=\"avatar/$afzender[avatar]\" title=\"Avatar van $afzender[gebruikersnaam]\">";
}
echo "</td>
<td valign=\"top\" align=\"left\">
<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">
<tr>
<td width=\"500\">$list[datum]</td>
</tr>
</table>
<hr size=\"1\" width=\"475\" noshade><br>$bericht<br> </td>
</tr>
</table>";
echo "<hr size=\"1\" noshade>";
echo "<a href=\"?new=1&reply=$_GET[id]\">Stuur een reactie</a><br>";
echo "<a href=\"javascript:verwijder('Weet je zeker dat je dit privébericht wilt verwijderen?','?delete=$_GET[id]')\">Verwijder dit bericht</a><br>";
}
}
}
if($_GET[deleteall]){
$select = "SELECT * FROM priveberichten WHERE naar = '" . $_COOKIE[memberid] . "'";
$query = mysql_query($select);
$result = mysql_num_rows($query);
if($result == 0){
echo "<h3>Priveberichten › Verwijderen</h3>";
echo "Je inbox was al leeg dus het heeft geen nut deze nog een keer te legen.<br><br><a href=\"apriveberichten.php\">Terug naar je inbox</a>";
}
else {
$delete = "DELETE FROM priveberichten WHERE naar = '" . $_COOKIE[memberid] . "'";
$query = mysql_query($delete);
echo "<h3>Priveberichten › Verwijderen</h3>";
echo "Al je privéberichten zijn verwijderd uit de database.<br><br><a href=\"apriveberichten.php\">Terug naar je inbox</a>";
}
}
if($_GET['delete']){
$select = "SELECT * FROM priveberichten WHERE id='" . $_GET['delete'] . "'";
$query = mysql_query($select);
$result = mysql_num_rows($query);
if($result == 0){
echo "<h3>Priveberichten › Verwijderen</h3>";
echo "Dit privébericht bestaat niet of is al verwijderd!<br><br><a href=\"apriveberichten.php\">Terug naar je inbox</a>";
}
else {
$delete = "DELETE FROM priveberichten WHERE id='" . $_GET['delete'] . "' AND naar='" . $_COOKIE[memberid] . "'";
$query = mysql_query($delete);
echo "<h3>Priveberichten › Verwijderen</h3>";
echo "Het privébericht is succesvol verwijderd.<br><br><a href=\"apriveberichten.php\">Terug naar je inbox</a>";
}
}
?>
download het script
Reacties van leden
Auteur: Patrick @ 29-07-2006
Ik verwacht een bug.. Heb hem niet getest maar als ik het script zo lees:
Stel je voor dat mijn onderwerp nou <plaintext> en mijn tekst ook? Auteur: Waaagh @ 01-08-2006
ik he zo het vermoeden (dan kijk ik alleen al naar het script zelf dat het onderwerp NIET opgeslagen zal woorden dus een bug, en dat het script niet van je zelf is maar gewoon lekker makkelijk is overgenomen uit een zipje ;) (ik heb het van-de-week zelf gedownload ;)
|