PHP ver gevorderde |
|
Ik gebruik onderstaande code in een systeem op PM's te sturen, maar iedere keer als de gebruiker vergeet een ontvanger te selecteren, krijgt hij (zoals geplant) een foutmelding dat er iets mis is. Hierdoor wordt het 'bericht' veld helemaal leegemaakt, dus als je iets heel langs typt en je vergeet een ontvanger, dan ben je alles kwijt. Is er een manier op het toch te bewaren (hier bij SiMa kan je error's maken en je bericht blijft)
<h2>Nieuw bericht</h2>
<a href="javascript:history.go(-1)"><img src="afbeeldingen/terug.gif" alt="Terug" /></a>
<div align="center">
<form name="bericht" method="post" action="">
<table style=" width: 50%;">
<tr style="background-color: #DEE2E7">
<td width="25%"> » Ontvanger:</td>
<td width="75%">
<?php
if (IsSet($_GET['origineel']) && is_numeric($_GET['origineel']))
{
$id = $_GET['origineel'];
$select = "SELECT id, van, onderwerp FROM leden_berichten WHERE id = ".$id." && naar = ".$_SESSION['gid'];
if (!$sql = mysql_query($select))
{
include "gebruikers/berichten/ontvanger.php";
}
$rij = mysql_fetch_assoc($sql);
$van = ($rij['van']);
$onderwerp = ($rij['onderwerp']);
$onderwerp = "Antw: ".$onderwerp;
$select_naam = "SELECT id, gebruikersnaam FROM leden WHERE id = ".$van;
if (!$sql_naam = mysql_query($select_naam))
{
include "gebruikers/berichten/ontvanger.php";
}
else
{
$rij_naam = mysql_fetch_assoc($sql_naam);
$van_naam = ($rij_naam['gebruikersnaam']);
echo "<input name=\"ontvanger_volledig\" disabled=\"disabled\" type=\"text\" size=\"40\" value=\"".$van_naam."\" />";
}
mysql_free_result($sql);
}
elseif (IsSet($_GET['ontvanger']) && is_numeric($_GET['ontvanger'])){
$select_naam = "SELECT id, gebruikersnaam FROM leden WHERE id = ".$_GET['ontvanger'];
$van = $_GET['ontvanger'];
if (!$sql_naam = mysql_query($select_naam))
{
include "gebruikers/berichten/ontvanger.php";
}
else
{
$rij_naam = mysql_fetch_assoc($sql_naam);
$van_naam = ($rij_naam['gebruikersnaam']);
echo "<input name=\"ontvanger_volledig\" disabled=\"disabled\" type=\"text\" size=\"40\" value=\"".$van_naam."\" />";
}
}
else
{
include "gebruikers/berichten/ontvanger.php";
}
?>
</td>
</tr>
<tr style="background-color: #F1F3F5">
<td> » Onderwerp:</td>
<td><input value="<?php if (IsSet($onderwerp)){echo stripslashes($onderwerp);} ?>" name="onderwerp" type="text" size="40" /></td>
</tr>
<tr style="background-color: #DEE2E7">
<td colspan="2"> » Bericht:</td>
</tr>
<tr style="background-color: #F1F3F5">
<td colspan="2" style="text-align:center;"><textarea id="textarea" name="bericht" cols="80" rows="15" onFocus="getTarget('bericht');" onSelect="storeCursor(this);" onKeyUp="storeCursor(this);" onClick="storeCursor(this);"></textarea><br /><?php toon_ubb('bericht','bericht'); ?></td>
</tr>
</table>
<input type="submit" onclick="verstuur();" name="Submit" value="Verzenden" />
</form>
<?php if(isset($_POST['Submit'])) {
$error = array();
if (isset($_POST['ontvanger'])){
$aan = $_POST['ontvanger'];
if($_POST['ontvanger'] == "") {
$error[] = "Er is geen ontvanger opgegeven!";
}
}
else
{
$aan = $van;
}
if($_POST['onderwerp'] == "" || $_POST['onderwerp'] == " ") {
$onderwerp = "*Bericht zonder onderwerp*";
}
else
{
$onderwerp = $_POST['onderwerp'];
}
if(trim($_POST['bericht']) == "") {
$error[] = "Er is geen bericht ingevuld!";
}
$fouten = sizeof($error); // aantal errors tellen
if($fouten != 0) { // Er is minstens 1 error
echo "Het bericht kon niet verzonden worden omdat:";
echo "<ul>";
for($i = 0; $i < $fouten; $i++) {
echo "<li>".$error[$i]."</li>";
}
echo "</ul>";
} else {
mysql_query("INSERT INTO leden_berichten (van,naar,onderwerp,bericht, datum) VALUES ('".$_SESSION['gid']."','".$aan."','".htmlspecialchars(addslashes($onderwerp))."','".htmlspecialchars(addslashes($_POST['bericht']))."','".date("Y-m-d H:i:s")."')");
header("Location: index.php?Pagina=berichten&melding=Bericht succesvol verzonden!");
}
}
?>
</div>
<h2>Nieuw bericht</h2> <a href="javascript:history.go(-1)"><img src="afbeeldingen/terug.gif" alt="Terug" /></a> <div align="center"> <form name="bericht" method="post" action=""> <table style=" width: 50%;"> <tr style="background-color: #DEE2E7"> <td width="25%"> » Ontvanger:</td> <td width="75%"> <?php { $id = $_GET['origineel']; $select = "SELECT id, van, onderwerp FROM leden_berichten WHERE id = ".$id." && naar = ".$_SESSION['gid']; { include "gebruikers/berichten/ontvanger.php"; } $van = ($rij['van']); $onderwerp = ($rij['onderwerp']); $onderwerp = "Antw: ".$onderwerp; $select_naam = "SELECT id, gebruikersnaam FROM leden WHERE id = ".$van; { include "gebruikers/berichten/ontvanger.php"; } else { $van_naam = ($rij_naam['gebruikersnaam']); echo "<input name=\"ontvanger_volledig\" disabled=\"disabled\" type=\"text\" size=\"40\" value=\"".$van_naam."\" />"; } } $select_naam = "SELECT id, gebruikersnaam FROM leden WHERE id = ".$_GET['ontvanger']; $van = $_GET['ontvanger']; { include "gebruikers/berichten/ontvanger.php"; } else { $van_naam = ($rij_naam['gebruikersnaam']); echo "<input name=\"ontvanger_volledig\" disabled=\"disabled\" type=\"text\" size=\"40\" value=\"".$van_naam."\" />"; } } else { include "gebruikers/berichten/ontvanger.php"; } ?> </td> </tr> <tr style="background-color: #F1F3F5"> <td> » Onderwerp:</td> <td><input value=" <?php if (IsSet($onderwerp)){echo stripslashes($onderwerp);} ?>" name="onderwerp" type="text" size="40" /></td> </tr> <tr style="background-color: #DEE2E7"> <td colspan="2"> » Bericht:</td> </tr> <tr style="background-color: #F1F3F5"> <td colspan="2" style="text-align:center;"><textarea id="textarea" name="bericht" cols="80" rows="15" onFocus="getTarget('bericht');" onSelect="storeCursor(this);" onKeyUp="storeCursor(this);" onClick="storeCursor(this);"></textarea><br /><?php toon_ubb('bericht','bericht'); ?></td> </tr> </table> <input type="submit" onclick="verstuur();" name="Submit" value="Verzenden" /> </form> <?php if(isset($_POST['Submit'])) { if (isset($_POST['ontvanger'])){ $aan = $_POST['ontvanger']; if($_POST['ontvanger'] == "") { $error[] = "Er is geen ontvanger opgegeven!"; } } else { $aan = $van; } if($_POST['onderwerp'] == "" || $_POST['onderwerp'] == " ") { $onderwerp = "*Bericht zonder onderwerp*"; } else { $onderwerp = $_POST['onderwerp']; } if(trim($_POST['bericht']) == "") { $error[] = "Er is geen bericht ingevuld!"; } $fouten = sizeof($error); // aantal errors tellen if($fouten != 0) { // Er is minstens 1 error echo "Het bericht kon niet verzonden worden omdat:"; for($i = 0; $i < $fouten; $i++) { echo "<li>".$error[$i]."</li>"; } } else { header("Location: index.php?Pagina=berichten&melding=Bericht succesvol verzonden!"); } } ?> </div>
|