Scripts

Personal Message systeem.

dit is een PM - center script dat redelijk uitgebreid is. je kunt je berichten verwijderen en zo; jet is makkelijk om te ontleden dankzij het vele commentaar en is daarom handig voor beginners (in het begin was ik ook altijd bezig met dit soort scripts.) ik hoop dat het een educatief en tof script is ! Hoort bij : http://www.phphulp.nl/php/scripts/1/979/ in het voorbeeld kun je mij berijken door bij ontvangen B*art te typen je kunt gewoon een accountje aanmaken om het testen

personal-message-systeem
[code]
<?php
//Beste allemaal
//In het script ga ik er van uit dat je ingelogt bent met
//Een cookie de je username bevat.
//Je moet het script zelf maar beveiligen,
//er zijn heel veel scripts op het net geplaatst 
//die daar voor dienen
//vergeet zeker dus het koekje met de naam ['naam'] niet !
//o ja,
//er staat geen ubb - parser op omdat ik tinymce gebruik.
//hier op php-hulp vind je er heel veel,
//dus die van mij heb je niet nodig
//een datum is niet opgegeven
//dat kun je misschien beter zelf doen
//als je ergens in je memberlijst een link wilt om een pm naar die persoon, dan kan dat als volgt :
//inbox.php?send=hierdeusername
/*
mysql-table

CREATE TABLE `pm` (
  `van` varchar(80) NOT NULL,
  `naar` varchar(80) NOT NULL,
  `inhoud` longtext NOT NULL,
  `onderwerp` varchar(800) NOT NULL,
  `id` int(255) unsigned NOT NULL auto_increment,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

*/
//error_reporting(0);
//geen errors !
$dbhost="localhost";
//je database host
$dbuser="";
//je database user
$dbpass="";
//je database pass
$db="";
//je database
$cruser="Bart Coene";
//onder wiens naam komt het copyright ?
$wmmail="[email protected]";
//naar wie moeten fouten gemeld worden ?
?>
<!--
Script
Bart Coene
April 06, 2007 
09:04:44 AM 
-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
<title>
Pm - center
</title>
</head>
<body bgcolor="lightblue" link="red">
<?php
mysql_connect($dbbost,$dbuser,$dbpass);
//we maken connectie
mysql_select_db($db);
//selecteer hier de database
$read=$_GET['read'];
$send=$_GET['send'];
$do_send=$_GET['do_send'];
$verwijder=$_GET['verwijder'];
$verwijderen=$_GET['verwijderen'];
if(isset($verwijderen)){
	$select = "DELETE FROM pm WHERE id='".$verwijderen."' && naar='".$HTTP_COOKIE_VARS['naam']."'";
	mysql_query($select);
	//we kijken of het id mached met de naam, anders kan iedereen alle berichten verwijden
	$aantal_fouten=mysql_errno();
	if($aantal_fouten != 0){
		$fouten=mysql_error();
		echo '<font color="red">'.$fout.'</font>';
	}
	else {
		echo "Het bericht werd Succesvol verwijderd. <a href=\"inbox.php\">Ga naar de inbox !</a>";
	}
	//herinner je dit nog ? we gebruikten dit eerder
}
else {
if(isset($verwijder)){
	//als we op verwijderen hebben geklikt ;
	echo "Weet je zeker dat je wet bericht wilt verwijderen ?<br>";
	echo '<a href="inbox.php?verwijderen='.$verwijder.'">Ja</a>';
	echo '<br><a href="inbox.php">nee</a>';
	//even vragen of ze het echt willen
}
else {
if(isset($do_send)){
	//als do_send meegstuurt is met de link;
	//dan gaan we dat ingeven in de database hé
	$onderwerp=$_POST['onderwerp'];
	$ontvanger=$_POST['ontvanger'];
	$bericht=$_POST['bericht'];
	//we zetten onze geposte waardes om naar variablen
	$select = "INSERT INTO `pm` ( `van` , `naar` , `inhoud` , `onderwerp` ) VALUES ('".$HTTP_COOKIE_VARS['naam']."', '".$ontvanger."', '".$bericht."', '".$onderwerp."')";
	mysql_query($select);
	//en we voeren het query uit.
	//het kan altijd zijn dat we last hebben van errors.
	//we gaan dat controleren met de functie errno
	$aantal_fouten=mysql_errno();
	if($aantal_fouten != 0){
		$fouten=mysql_error();
		echo '<font color="red">'.$fout.'</font>';
	}
	else {
		echo "Het bericht werd Succesvol verstuurd. <a href=\"inbox.php\">Ga naar de inbox !</a>";
	}
}
else {
if(isset($send)){
	//zendsysteem
	echo '<form action="inbox.php?do_send" method="post">';
	//het formulier openen.
	//voor de ontvanger, die mee kan zijn gegven met de link, doe we dit :
	if($send == ''){
		//als $send leeg is 
		echo 'Ontvanger :<br>';
		echo '<input type="text" name="ontvanger"><br>';
		//is er geen ontvanger opgegeven.
	}
	else {
		//als er wel een is opgegeven 
		echo 'Ontvanger :<br>';
		echo '<input type="text" name="ontvanger" value="'.$send.'"><br>';
		//dan vullen we het vakje automatisch in.
	}
	echo 'Onderwerp :<br>';
	echo '<input type="text" name="onderwerp"><br>';
	//het onderwerp ingeven
	echo 'Bericht :<br>';
	echo '<textarea name="bericht" cols="50" rows="20"></textarea><br>';
	//het bericht, als je een het oorspronkelijke bericht hebt meegestuurd dan zet je dat tussen te twee textarea tags.
	//erg groot textarea, juiste groote voor een WYSIWYG
	echo '<input type="submit" value="verzenden">';
	echo '</form>';
	//de submit knop
}
else{
if(isset($read)){
	//readsysteem
	$query=mysql_query("SELECT * FROM pm WHERE id='".$_GET['read']."' && naar='".$HTTP_COOKIE_VARS['naam']."'");
	//we willen het veilig houden voor onze clienten, we willen niet dat hun privacy niet schenden, als het id vervangen wordt krijgen ze het niet te zien.
	echo "<table border=\"1\" width=\"100%\">";
	while($data = mysql_fetch_array($query)){
	//hoewel het maar een keer mogenlijk is, omdat de id uniek is maken we een array om de foutmeldingen te vermijden
		echo "<tr><td><h2><center>".$data['onderwerp']."</center></h2></td></tr>";
		echo "<tr><td><p><center>".$data['inhoud']."</center></p><br><br></td></tr>";
		//we kunnen het bericht lezen.
		//we maken een GET link om een pm terug te zenden :
		echo "<a href=\"inbox.php?send=".$data['van']."\">Zend een bericht terug</a><br>";
		echo '<a href="inbox.php">Terug naar de inbox !</a>';
		//de get link data bevat nu de afzender (kun je ook met post doen, maak een input hidden als je de link te lang vind) 
	}
}
else {
//selecteer hier de database
$query=mysql_query("SELECT * FROM pm WHERE naar='".$HTTP_COOKIE_VARS['naam']."' ORDER By id DESC");
//ons query, selecteer het in omgekeerde volgorde
echo "<a href=\"inbox.php?send\">verstuur een bericht</a>";
echo '<table border="1" width="100%">';
//open de tabel
echo "<tr><td width=\"65%\"><b>Onderwerp</b></td><td width=\"25%\"><b>Van</b></td><td bgcolor=\"orange\" width=\"10%\"><b>Verwijder</b></a></td></tr>";
//een regel ter verduidelijking van de vakjes
while($data = mysql_fetch_array($query)){
//zolang er elementen in onze array data zitten ...	
	echo "<tr><td><a href=\"inbox.php?read=".$data['id']."\">".$data['onderwerp']."</a></td><td>".$data['van']."</td><td><a href=\"inbox.php?verwijder=".$data['id']."\" >Verwijder</a></td></tr>";
	//zeg : onderwerp ; van 
}
//while sluiten
echo "</table>";
//tabel sluiten
}
//else sluiten (read)
}
//we sluiten send (else)
}
//we sluiten  do_send
}
//we sluiten verwijder (else)
}
//we sluiten verwijderen (else)
mysql_close();
//mysql sluiten 
echo "\n";
//we willen onze broncode goed leesbaar maken, daarom een \newline
?>
<!--
Ons copyright zetten we hier, onder jou naam :
-->
<center>
<br><br><br>
<table border="3" width="75%">
<?php
echo "<table border=\"3\" width=\"75%\">";
//we openen de tabel
$jaar=date("Y");
//we kijken in welk jaar we zijn,
//de grote Y staat voor een jaartal in 4 cijfers, bv. 2003
$vandaag=date("j F Y");
//we kijken welke dag we vandaag zijn, 
// j F Y staat voor : dag zonder nul er voor, maand in lange notatie, jaartal in 4 cijfers
$eerstejaar="2007";
//2007 is het eerste jaar dat we dit script gebruiken.
if($jaar==$eerstejaar){
//als het jaar 2007 en zeven is moet er gewoon 2007 komen, niet 2007-2007
    echo "<tr><td><center>";
    echo "Copyright&copy; ".$cruser." ".$eerstejaar." <br>".$vandaag."";
    echo "</center></td></tr>";
        //we zorgen dat er mooi geprint wordt, mat jaartal 2007
}
else {
//als het jaartal niet 2007 is, moet het huidige jaar er bij :
    echo "<tr><td><center>";
    echo "Copyright&copy; ".$cruser." 2007-".$jaar." <br>".$vandaag."";
    echo "</center></td></tr>";    
        //en we printen het mooi
}
echo "</table>";
//we sluiten de tabel
echo "in geval van fouten, e-mail de webmaster ".$wmmail;
?> 
</table>
</center>
</body>
</html>
<?php
?>
[/code]

Reacties

0
Nog geen reacties.