Scripts

Personal Message system v1.0

Een uitgebreid pm systeem gebaseerd op een aangepaste versie van http://www.phphulp.nl/php/scripts/8/439/ DIT is mijn 1e script commentaar geven mag maar geef aub ook meteen de oplossing ###update 3-mei########## #Alle * weggewerkt######### # inbox: session start bovenaan# #voorbeeld online! ######### ##################### de volgende functies bevinden zich: - inbox -archief - verwijderen - admin highlighting ik heb niet de moeite genomen om mijn naam overal in te zetten aangezien dat toch weer verwijderd wordt! Gebruiken, aanpassen, posten mag best want php is van iedereen! so no copyright! Misschien is de stijl een beetje vreemd maar je moet hem natuurlijk zelf aanpassen pagina's: - config.php //kun je vervangen als je maar connectie maakt - pm_inbox.php //je inbox alle nieuwe berichten - pm_archief.php // archief - pm_read //lees de berichten die geselecteerd zijn - pm_send.php // verstuur een nieuw bericht (admin highlighting) - pm_verwerk.php //verwerkt alle aanpassingen in de database aanpassen: config.php $_SESSION['user_id']= id van de user $_SESSION['user_status'] = status (1 = admin)(0 = normal) Oja en in gebruikers tabel moeten de volgende velden zijn: voornaam // Voornaam achternaam //achternaam naam // username Zorg er voor dat de sessies zijn gestart! Oja heel belangrijk: bij het lezen,aanpassen, deleten, verplaatsten van het bericht wordt altijd gekeken naar de ontvangen klopt die niet met de sessie dan gaat het niet door!

personal-message-system-v10
SQL
[code]
CREATE TABLE `pm` (
  `id` int(11) NOT NULL auto_increment,
  `van` int(11) NOT NULL,
  `naar` int(11) NOT NULL,
  `status` varchar(2) collate latin1_general_ci NOT NULL,
  `admin` varchar(2) collate latin1_general_ci NOT NULL,
  `onderwerp` varchar(255) collate latin1_general_ci NOT NULL,
  `tijd` timestamp NOT NULL default CURRENT_TIMESTAMP,
  `bericht` text collate latin1_general_ci NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
[/code]

config.php
[code]
<?
session_start();
ob_start();
// MySQL
// De instellingen voor de MySQL database, je moet schrijf,lees rechten hebben
$db_user = "*"; // Gebruiker voor MySQL
$db_pass = "*"; // Wachtwoord voor MySQL
$db_host = "localhost"; // Host voor MySQL; standaard localhost
$db_db = "*"; // Database

mysql_connect($db_host,$db_user,$db_pass);
mysql_select_db($db_db);

?> 
[/code]
pm_inbox.php
[code]
<?php
include("config.php");
?>
 <h2>Personal Message: inbox</h2><br/>
        <a href="pm_inbox.php"><b>Inbox </b></a><a href="pm_archief.php"> Archief </a><a href="pm_send.php">Nieuw bericht</a>
<br /><br />
                <table border="1">
<tr><td width="200">Onderwerp</td><td width="150">Afzender</td><td width="100">Verstuurd op:</td><td width="100">Opties</td></tr>
<?php
// wat is de user id?
$userid = $_SESSION['user_id'] ;
//filter
$status ="0";
//de user zijn eigen berichten laten ophalen en  zorg dat alleen de nieuwe berichten worden weergeven
$pm_SQL="SELECT id,naar,van,admin,status,onderwerp,bericht,tijd FROM pm WHERE naar='$userid' AND status='$status' ORDER BY tijd";
//nu de SQL opdracht verwerken
$pm_result=mysql_query($pm_SQL);
// een while lus op alle berichten te weergeven
while($pm=mysql_fetch_array($pm_result)){
//variabelen netjes
$id = $pm['id'];
$onderwerp = $pm['onderwerp'];
$admin = $pm['admin'];

//de afzender
$id_van = $pm['van'];
//even id naar naam omzetten
$van_SQL="SELECT voornaam,achternaam,naam FROM gebruikers WHERE id=$id_van ";
$van_result=mysql_query($van_SQL);
$vanvar=mysql_fetch_array($van_result);
$vn = $vanvar['voornaam'];
$an = $vanvar['achternaam'];
$un = $vanvar['naam'];

//even de tijd parsen
$tijd = strtotime($pm['tijd']);
//uitkomst while lus  
?>
<tr>
<td>
<a href="pm_read.php?id=<?= $id ?>">
<?php 
if($admin==1){
?><b>ADMIN:<?php echo $onderwerp ?></b><?php
}
else{
echo $onderwerp; 
}?>
</a></td>
<td><?php echo "$vn $an ($un)"; ?></a></td>
<td><?php echo date("j-n-y H:i",$tijd); ?></td>
<td><a href="pm_verwerk.php?actie=verwijder&id=<?php echo $id; ?>">Verwijder </a><a href="pm_verwerk.php?actie=archief&id=<?php echo $id; ?>">Archiveer</a></td>
</tr>
<?php
//einde while lus
}
?>
[/code]
pm_archief.php
[code]
<?php
 include "config.php" ;
?>
        <h2>Personal Message: Archief</h2><br/>
        <a href="pm_inbox.php">Inbox </a><a href="pm_archief.php"><b>Archief </b></a><a href="pm_send.php">Nieuw bericht</a><br /><br />
                <table border="1">
<tr><td width="200">Onderwerp</td><td width="150">Afzender</td><td width="100">Verstuurd op:</td><td width="100">Opties</td></tr>
<?php
// wat is de user id?
$userid = $_SESSION['user_id'] ;
//filter
$status ="1";
//de user zijn eigen berichten laten ophalen en  zorg dat alleen de nieuwe berichten worden weergeven
$pm_SQL="SELECT id,naar,van,admin,status,onderwerp,bericht,tijd FROM pm WHERE naar='$userid' AND status='$status' ORDER BY tijd";
//nu de SQL opdracht verwerken
$pm_result=mysql_query($pm_SQL);
// een while lus op alle berichten te weergeven
while($pm=mysql_fetch_array($pm_result)){
//variabelen netjes
$id = $pm['id'];
$onderwerp = $pm['onderwerp'];
$admin = $pm['admin'];

//de afzender
$id_van = $pm['van'];
//even id naar naam omzetten
$van_SQL="SELECT voornaam,achternaam,naam FROM gebruikers WHERE id=$id_van ";
$van_result=mysql_query($van_SQL);
$vanvar=mysql_fetch_array($van_result);
$vn = $vanvar['voornaam'];
$an = $vanvar['achternaam'];
$un = $vanvar['naam'];

//even de tijd parsen
$tijd = strtotime($pm['tijd']);
//uitkomst while lus  
?>
<tr>
<td>
<a href="pm_read.php?id=<?= $id ?>">
<?php 
if($admin==1){
?><b>ADMIN:<?php echo $onderwerp ?></b><?php
}
else{
echo $onderwerp; 
}?>
</a></td>
<td><a href="users.php?id=<?php echo $id_van ; ?>"> <?php echo "$vn $an ($un)"; ?></a></td>
<td><?php echo date("j-n-y H:i",$tijd); ?></td>
<td><a href="pm_verwerk.php?actie=verwijder&id=<?php echo $id; ?>">Verwijder </a></td>
</tr>
<?php
//einde while lus
}
?>
</table>
[/code]
pm_read.php
[code]
<?php
 include "config.php" ;
?>
        <h2>Personal Message: read message</h2><br/>
<?php
// wat is de user id?
$userid = $_SESSION['user_id'] ;
// wat is de bericht id
$id = $_GET['id'];

//de user zijn eigen berichten laten ophalen
$pm_SQL="SELECT id,naar,van,admin,status,onderwerp,bericht,tijd FROM pm WHERE naar=$userid AND id=$id";
//nu de SQL opdracht verwerken
$pm_result=mysql_query($pm_SQL);
// een berichten  weergeven
$pm=mysql_fetch_array($pm_result);
//variabelen netjes
$id = $pm['id'];
$onderwerp = $pm['onderwerp'];
$admin = $pm['admin'];
$bericht = $pm['bericht'];
$status = $pm['status'];


//de afzender
$id_van = $pm['van'];
//even de van id naar naam omzetten
$van_SQL="SELECT voornaam,achternaam,naam FROM gebruikers WHERE id=$id_van ";
$van_result=mysql_query($van_SQL);
$vanvar=mysql_fetch_array($van_result);
$vn = $vanvar['voornaam'];
$an = $vanvar['achternaam'];
$un = $vanvar['naam'];

//de ontvanger
$id_naar = $pm['naar'];
//even de naar id naar naam omzetten
$nvan_SQL="SELECT voornaam,achternaam,naam FROM gebruikers WHERE id=$id_naar  ";
$nvan_result=mysql_query($nvan_SQL);
$nvanvar=mysql_fetch_array($nvan_result);
$nvn = $nvanvar['voornaam'];
$nan = $nvanvar['achternaam'];
$nun = $nvanvar['naam'];

//even de tijd parsen
$tijd = strtotime($pm['tijd']);
//kopje archief of inbox
if($status==0){ ?>
	   <a href="pm_inbox.php"><b>Inbox </b></a><a href="pm_archief.php">Archief </a><a href="pm_send.php">Nieuw bericht</a><br /><br />
       <?php
	   }
else{ ?>
	   <a href="pm_inbox.php">Inbox </a><a href="pm_archief.php"><b>Archief </b></a><a href="pm_send.php">Nieuw bericht</a><br /><br />
       <?php }
//tabel
?>
<table border="1" width="700">
<tr><td width="30%">Ontvanger:</td><td width="70%"><?php echo "$nvn $nan ($nun)"; ?></td></tr>
<tr><td width="30%">Afzender:</td><td width="70%"><?php echo "$vn $an ($un)"; ?></td></tr>
<tr><td width="30%">Verstuurd op:</td><td width="70%"><?php echo date("j-n-y H:i",$tijd); ?></td></tr>
<tr><td width="30%">Onderwerp:</td><td width="70%"><?php 
// admin berichten onderscheiden
if($admin==1){
?><b>ADMIN:<?php echo $onderwerp ?></b><?php
}
else{
echo $onderwerp; 
}?></td></tr></table>
<table width="700" border="1">
<tr><td width="700"><?php echo $bericht ?></td></tr>
</table>
<ul>U heeft de volgende opties met dit bericht:
<li><a href="pm_verwerk.php?actie=verwijder&id=<?php echo $id; ?>">Verwijder</a></li>
<?php
if($status==0){ ?>
<li><a href="pm_verwerk.php?actie=archief&id=<?php echo $id; ?>">Archiveer</a></li>
<?php } ?>
</ul>
[/code]
pm_verwerk.php
[code]
<?php
 include "config.php" ;
//veiligheid boven alles
$userid = $_SESSION['user_id'] ;

if(isset($_REQUEST['actie'])) $actions=$_REQUEST['actie'];
if($actions=="verstuur"){
//variabelen lezen
$naar = $_POST['naar'];
$van = $_SESSION['user_id'];
$status = "0";
$admin = $_POST['admin'];
$onderwerp = $_POST['onderwerp'];
$bericht = $_POST['berichtl'];
$tijd=date("Y-m-d H:i:s");
// enter is enter
$bericht=nl2br($bericht);
$bericht=eregi_replace("\n","",$bericht);
$PM_insert_SQL="INSERT INTO pm (van,naar,status,admin,onderwerp,tijd,bericht) VALUES ('$van','$naar','$status','$admin', '$onderwerp','$tijd','$bericht')";
$bool=mysql_query($PM_insert_SQL);
if($bool==1){
?>
        <h2>Personal Message: Sending succesful</h2>
               <a href="pm_inbox.php">Inbox </a><a href="pm_archief.php"> Archief </a><a href="pm_send.php"><b>Nieuw bericht</b></a><br /><br />
<br><br>Uw bericht is succesvol verstuurd!
<?php
}
else{ ?>
        <h2>Personal Message: Sending Wrong</h2>
               <a href="pm_inbox.php">Inbox </a><a href="pm_archief.php"> Archief </a><a href="pm_send.php"><b>Nieuw bericht</b></a><br /><br />
<br><br>Uw bericht is <b>Niet</b> succesvol verstuurd!
Stuur a.u.b. een mailtje via de contact pagina!
<?php }
}

elseif($actions=="verwijder"){
//variabelen lezen
$id = $_GET['id'];
$naar = $_SESSION['user_id'];
//deleten
$PM_delete_SQL="DELETE FROM pm WHERE id=$id AND naar=$naar";
$bool=mysql_query($PM_delete_SQL);
if($bool==1){
?>
        <h2>Personal Message: Deleting succesful</h2>
               <a href="pm_inbox.php">Inbox </a><a href="pm_archief.php"> Archief </a><a href="pm_send.php">Nieuw bericht</a><br /><br />
<br><br>Uw bericht is verwijderd!
<?php
}
else{ ?>
        <h2>Personal Message: deleting Wrong</h2>
               <a href="pm_inbox.php">Inbox </a><a href="pm_archief.php"> Archief </a><a href="pm_send.php">Nieuw bericht</a><br /><br />
<br><br>Uw bericht is <b>Niet</b> succesvol verwijderd!
Stuur a.u.b. een mailtje via de contact pagina!
<?php }
}
elseif($actions=="archief"){
//variabelen lezen
$id = $_GET['id'];
$naar = $_SESSION['user_id'];
$status = "1";
//archieveren
$PM_a_SQL="UPDATE pm SET status=$status WHERE id=$id AND naar=$naar";
$bool=mysql_query($PM_a_SQL);
if($bool==1){
?>
        <h2>Personal Message: Archievering succesful</h2>
               <a href="pm_inbox.php">Inbox </a><a href="pm_archief.php"> Archief </a><a href="pm_send.php">Nieuw bericht</a><br /><br />
<br><br>Uw bericht is succesvol verplaatst naar het archief!
<?php
}
else{ ?>
        <h2>Personal Message: deleting Wrong</h2>
               <a href="pm_inbox.php">Inbox </a><a href="pm_archief.php"> Archief </a><a href="pm_send.php">Nieuw bericht</a><br /><br />
<br><br>Uw bericht is <b>Niet</b> succesvol verplaatst!
<?php }
}
else{ ?>
<h2>Personal Message: What do I have to do? </h2>
       <a href="pm_inbox.php">Inbox </a><a href="pm_archief.php"> Archief </a><a href="pm_send.php">Nieuw bericht</a><br /><br />

De actie is niet aangegeven! Klik op een van de links hierboven!
<?php
}
?>
[/code]
pm_send.php
[code]
<?php
 include "config.php" ;
?>
        <h2>Personal Message: New Message</h2><br/>
        <a href="pm_inbox.php">Inbox </a><a href="pm_archief.php"> Archief </a><a href="pm_send.php"><b>Nieuw bericht</b></a><br /><br />
                <table border="1">
<?php
// wat is de user id?
$userid = $_SESSION['user_id'] ;
?>
<form name="formulier" method="post" action="pm_verwerk.php" >
<table border="1" width="700">

<tr><td width="30%">Ontvanger:</td><td width="70%">
<select name="naar">
<?php
$id = $_SESSION['user_id'];
$user_SQL="SELECT id,naam,voornaam,achternaam FROM gebruikers ORDER BY voornaam ASC";
$user_result=mysql_query($user_SQL);
while($users=mysql_fetch_array($user_result)){
$id = $users['id'];
$vn = $users['voornaam'];
$an = $users['achternaam'];
$un = $users['naam'];
?><option value="<?php echo $id ;?>"><?php echo "$vn $an ( $un)"; ?></option>
<?php
}
?>
</td></tr>
<tr><td width="30%">Onderwerp:</td><td width="70%"><input name="onderwerp" type="text" size="25" /></td></tr>
<?php
if
($_SESSION['user_status']==1){ ?>
<tr><td width="30%">Admin bericht:</td><td width="70%">
<select name="admin"><option value="0">Nee</option><option value="1">Ja</option></select></td></tr>
<?php } 
else{ ?>
<input type="hidden" value="0" name="admin" />
<?php } ?>

</table>
<textarea name="berichtl" cols="110" rows="10" ></textarea>

<br />
<input type="submit" value="verstuur"  name="actie" />
</form>
[/code]

Reacties

0
Nog geen reacties.