Dynamische contactpagina
Auteur: ikki007 - 03 maart 2008 - 19:03 - Gekeurd door: marten - Hits: 27915 - Aantal punten: 4.13 (4 stemmen)
Met deze dynamische contactpagina heb ik meegedaan aan de communicatie script wedstrijd. (http://www.sitemasters.be/nieuwsartikels/411/Uitslag_Communicatie_script_wedstrijd)
Wat is het?
Het is een contactsysteem, maar geen normale. Deze is dynamisch.
Alle velden kun je dynamisch via een adminpaneel (admin.php) toevoegen, aanpassen en verwijderen.
Je kunt de volgorde van de velden ook aanpassen. (Up/down)
Het heeft ook de mogelijkheid de ontvanger aan te passen (receiver).
Je kan zelfs meerdere ontvangers toevoegen! Bijvoorbeeld om het zakelijk te gebruiken op een site van een uitzenbureau o.i.d.
Je voegt bijvoorbeeld 3 emails van bedrijven toe en je maakt een leuk vacatureformulier heb je al een klein systeempje!
Waarom dynamisch?
Omdat het zo makkelijk(er) te gebruiken is. Óók voor mensen die er weinig verstand van hebben.
En mede omdat ik dit speciaal voor de sitemasters wedstrijd heb geschreven en mij dit vrij uniek leek.
Hé! De admin is niet beveiligd!?
Ik heb bewust geen loginfunctie ingebouwd.
Mijn communicatiesysteem gaat over een dynamische contactpagina en niet over een inlogsysteem.
Zo kan je hem dus makkelijk in jou systeem inbouwen met je eigen beveiligingsfunctie's.
Hoe werkt het precies?
Ten eerste moet je even alles uit MySQL.txt in je database zetten.
Daarna kan je alles via admin.php beheren.
1. Je maakt een leuk formulier
2. Je voegt een ontvanger toe (of meerdere).
Je zult zien dat er een ID voor het emailadres staat, onthoud deze.
3. Ga nu naar contact.php?client={hier de ID}
Voorbeeld: http://example.com/contact.php?client=3
Elk emailadres krijgt zo zijn eigen ID. Dus de contactpagina van ID 3 zal naar het emailadres met ID 3 sturen.
Groeten Jarno
CREATE TABLE contactfields (
id INT(11) AUTO_INCREMENT,
pid INT(11) NOT NULL default '0',
text VARCHAR(255) NOT NULL default '',
name VARCHAR(255) NOT NULL default '',
size VARCHAR(255) NOT NULL default '',
maxlength VARCHAR(255) NOT NULL default '',
type VARCHAR(255) NOT NULL default '',
rows VARCHAR(255) NOT NULL default '',
cols VARCHAR(255) NOT NULL default '',
PRIMARY KEY (id)
) TYPE=MyISAM;
CREATE TABLE email (
id INT(11) AUTO_INCREMENT,
email VARCHAR(255) NOT NULL default '',
PRIMARY KEY (id)
) TYPE=MyISAM;
CREATE TABLE contactfields ( id INT(11) AUTO_INCREMENT, pid INT(11) NOT NULL DEFAULT '0', text VARCHAR(255) NOT NULL DEFAULT '', name VARCHAR(255) NOT NULL DEFAULT '', size VARCHAR(255) NOT NULL DEFAULT '', maxlength VARCHAR(255) NOT NULL DEFAULT '', type VARCHAR(255) NOT NULL DEFAULT '', rows VARCHAR(255) NOT NULL DEFAULT '', cols VARCHAR(255) NOT NULL DEFAULT '', PRIMARY KEY (id) ) TYPE=MyISAM; CREATE TABLE email ( id INT(11) AUTO_INCREMENT, email VARCHAR(255) NOT NULL DEFAULT '', PRIMARY KEY (id) ) TYPE=MyISAM;
|
Code: |
Addfields.php
<?php
ob_start();
// De config wordt ingelezen
require_once("config.inc.php");
include("header.php");
print '<h2>Dynamic Contact Page</h2>';
// De ?action= wordt bekeken
$action = get('action', 'x');
if($action == 'add') {
if($_SERVER['REQUEST_METHOD'] == 'POST') { // Als er op Add is geklikt
$text = input($_POST['text']); // De $_POST wordt beveiligd
$name = input($_POST['name']); // etc..
$size = input($_POST['size']);
$maxlength = input($_POST['maxlength']);
$type = input($_POST['type']);
$rows = input($_POST['rows']);
$cols = input($_POST['cols']);
if($type == 'textarea') { // Als het opgeven type textarea is
if(!is_numeric($rows) || !is_numeric($cols)) { // Zijn de rows en cols wel numeriek?
die('<br />Make sure rows and cols are numeric<br /><br /><a href="addfields.php">→ Try again</a>'); // Nee, er wordt een melding gegeven en het script wordt beeindigd
} elseif(!$text || !$name || !$size || !$maxlength) { // De rows en cols zijn wel numeriek, tijd om te kijken of de rest is ingevuld
die('<br />Please fill in all fields<br /><br /><a href="addfields.php">→ Try again</a>'); // Nee, niet alles is ingevuld
} elseif(!is_numeric($size) || !is_numeric($maxlength)) { // Alles is ingevuld en rows en cols zijn numeriek, maar de size en maxlength?
die('<br />Make sure the size and maxlength are numeric<br /><br /><a href="addfields.php">→ Try again</a>'); // Nee, weer wordt er een error gegeven en het script wordt beeindigd.
} else { // Alles is goed, het script kan doorgaan
$exists = mysql_num_rows(mysql_query("SELECT * FROM contactfields WHERE name='" . $name . "'")); // Query om te kijken of er al een field met deze name is
if($exists < 1 && $name != 'Receiver') { // Als de name nog niet bestaat en de name niet Receiver is (want zo heet het hidden field) doorgaan
$pidQuery = mysql_query("SELECT * FROM contactfields ORDER BY pid DESC LIMIT 0, 1"); // De onderste pid ophalen
$pidFetch = mysql_fetch_assoc($pidQuery); // Even fetchen
$pid = $pidFetch['pid']+1; // Er 1 bij optellen zodat die onderaan komt
$query = mysql_query("INSERT INTO contactfields (text, name, size, maxlength, type, rows, cols, pid) VALUES ('".$text."', '".$name."', ".$size.", ".$maxlength.", '".$type."', ".$rows.", ".$cols.", ".$pid.")"); // Toevoegen in de database
if($query) { // Is de query goed?
header('Location: admin.php'); // Het is toegevoegd, doorgaan naar admin.php
} else {
print 'Error in database: '.mysql_error(); // Er is een fout, de fout wordt laten zien
}
} else {
die('<br />This name does already exists<br /><br /><a href="addfields.php">→ Try again</a>'); // De name bestaat al
}
}
} elseif($type == 'text' || $type == 'password') { // Als het type geen textarea is maar text of password
$rows = 0; // Rows zijn niet nodig
$cols = 0; // Cols ook niet
if(!$text || !$name || !$size || !$maxlength) { // Zijn alle velden ingevuld?
die('<br />Please fill in all fields<br /><br /><a href="addfields.php">→ Try again</a>'); // Nee, een melding wordt gegeven en het script stopgezet
} elseif(!is_numeric($size) || !is_numeric($maxlength)) { // Alle velden zijn ingevuld, zijn ze geldig?
die('<br />Make sure the size and maxlength are numeric<br /><br /><a href="addfields.php">→ Try again</a>'); // De size en maxlength zijn niet numeriek; ongeldig dus.
} else { // Alles is geldig, het script kan doorgaan
$exists = mysql_num_rows(mysql_query("SELECT * FROM contactfields WHERE name='" . $name . "'")); // Bestaat de name al?
if($exists < 1 && $name != 'Receiver') { // Als de name nog niet bestaat en de name niet Receiver is (want zo heet het hidden field) doorgaan
$pidQuery = mysql_query("SELECT * FROM contactfields ORDER BY pid DESC LIMIT 0, 1"); // De onderste pid ophalen
$pidFetch = mysql_fetch_assoc($pidQuery); // Even fetchen
$pid = $pidFetch['pid']+1; // Er 1 bij optellen zodat die onderaan komt
$query = mysql_query("INSERT INTO contactfields (text, name, size, maxlength, type, rows, cols, pid) VALUES ('".$text."', '".$name."', ".$size.", ".$maxlength.", '".$type."', ".$rows.", ".$cols.", ".$pid.")"); // Toevoegen in de database
if($query) { // Is de query goed?
header('Location: admin.php'); // Het is toegevoegd, doorgaan naar admin.php
} else {
print 'Error in database: '.mysql_error(); // Er is een fout, de fout wordt laten zien
}
} else {
die('<br />This name does already exists<br /><br /><a href="addfields.php">→ Try again</a>'); // De name bestaat al
}
}
} else {
die('<br />Unknown type<br /><br /><a href="addfields.php">→ Try again</a>'); // De type is geen textarea, text of password. Dit is alleen mogelijk als iemand het script op een verkeerde manier gebruikt!
}
} else {
die('<br />Hacking attempt'); // Iemand is handmatig naar ?action=add gegaan zonder het formulier te gebruiken
}
} else { // Er is nog niks verzonden, het formulier wordt laten zien.
?>
<form action="?action=add" method="post">
Text:<br />
<input type="text" name="text" size="60" maxlength="255" value=""><br /><br />
Name:<br />
<input type="text" name="name" size="60" maxlength="255" value=""><br /> <br />
Size:<br />
<input type="text" name="size" size="60" maxlength="255" value="30"><br /> <br />
Maxlength:<br />
<input type="text" name="maxlength" size="60" maxlength="255" value="255"><br /><br />
Type:<br />
<select name="type"><option value="text">Text</option><option value="textarea">Textarea</option><option value="password">Password</option></select><br /><br />
Rows (textarea):<br />
<input type="text" name="rows" size="60" maxlength="255" value=""><br /><br />
Cols (textarea):<br />
<input type="text" name="cols" size="60" maxlength="255" value=""><br /><br />
<br />
<input type="submit" value="Add" class="button">
</form>
<br /><br /><a href="admin.php">→ Back to admin home</a>
<?php
}
include("footer.php");
?>
<?php // De config wordt ingelezen require_once("config.inc.php"); include("header.php"); print '<h2>Dynamic Contact Page</h2>'; // De ?action= wordt bekeken $action = get('action', 'x'); if($action == 'add') { if($_SERVER['REQUEST_METHOD'] == 'POST') { // Als er op Add is geklikt $text = input($_POST['text']); // De $_POST wordt beveiligd $name = input($_POST['name']); // etc.. $size = input($_POST['size']); $maxlength = input($_POST['maxlength']); $type = input($_POST['type']); $rows = input($_POST['rows']); $cols = input($_POST['cols']); if($type == 'textarea') { // Als het opgeven type textarea is die('<br />Make sure rows and cols are numeric<br /><br /><a href="addfields.php">→ Try again</a>'); // Nee, er wordt een melding gegeven en het script wordt beeindigd } elseif(!$text || !$name || !$size || !$maxlength) { // De rows en cols zijn wel numeriek, tijd om te kijken of de rest is ingevuld die('<br />Please fill in all fields<br /><br /><a href="addfields.php">→ Try again</a>'); // Nee, niet alles is ingevuld } elseif(!is_numeric($size) || !is_numeric($maxlength)) { // Alles is ingevuld en rows en cols zijn numeriek, maar de size en maxlength? die('<br />Make sure the size and maxlength are numeric<br /><br /><a href="addfields.php">→ Try again</a>'); // Nee, weer wordt er een error gegeven en het script wordt beeindigd. } else { // Alles is goed, het script kan doorgaan $exists = mysql_num_rows(mysql_query("SELECT * FROM contactfields WHERE name='" . $name . "'")); // Query om te kijken of er al een field met deze name is if($exists < 1 && $name != 'Receiver') { // Als de name nog niet bestaat en de name niet Receiver is (want zo heet het hidden field) doorgaan $pidQuery = mysql_query("SELECT * FROM contactfields ORDER BY pid DESC LIMIT 0, 1"); // De onderste pid ophalen $pid = $pidFetch['pid']+1; // Er 1 bij optellen zodat die onderaan komt $query = mysql_query("INSERT INTO contactfields (text, name, size, maxlength, type, rows, cols, pid) VALUES ('".$text."', '".$name."', ".$size.", ".$maxlength.", '".$type."', ".$rows.", ".$cols.", ".$pid.")"); // Toevoegen in de database if($query) { // Is de query goed? header('Location: admin.php'); // Het is toegevoegd, doorgaan naar admin.php } else { print 'Error in database: '.mysql_error(); // Er is een fout, de fout wordt laten zien } } else { die('<br />This name does already exists<br /><br /><a href="addfields.php">→ Try again</a>'); // De name bestaat al } } } elseif($type == 'text' || $type == 'password') { // Als het type geen textarea is maar text of password $rows = 0; // Rows zijn niet nodig $cols = 0; // Cols ook niet if(!$text || !$name || !$size || !$maxlength) { // Zijn alle velden ingevuld? die('<br />Please fill in all fields<br /><br /><a href="addfields.php">→ Try again</a>'); // Nee, een melding wordt gegeven en het script stopgezet } elseif(!is_numeric($size) || !is_numeric($maxlength)) { // Alle velden zijn ingevuld, zijn ze geldig? die('<br />Make sure the size and maxlength are numeric<br /><br /><a href="addfields.php">→ Try again</a>'); // De size en maxlength zijn niet numeriek; ongeldig dus. } else { // Alles is geldig, het script kan doorgaan if($exists < 1 && $name != 'Receiver') { // Als de name nog niet bestaat en de name niet Receiver is (want zo heet het hidden field) doorgaan $pidQuery = mysql_query("SELECT * FROM contactfields ORDER BY pid DESC LIMIT 0, 1"); // De onderste pid ophalen $pid = $pidFetch['pid']+1; // Er 1 bij optellen zodat die onderaan komt $query = mysql_query("INSERT INTO contactfields (text, name, size, maxlength, type, rows, cols, pid) VALUES ('".$text."', '".$name."', ".$size.", ".$maxlength.", '".$type."', ".$rows.", ".$cols.", ".$pid.")"); // Toevoegen in de database if($query) { // Is de query goed? header('Location: admin.php'); // Het is toegevoegd, doorgaan naar admin.php } else { print 'Error in database: '.mysql_error(); // Er is een fout, de fout wordt laten zien } } else { die('<br />This name does already exists<br /><br /><a href="addfields.php">→ Try again</a>'); // De name bestaat al } } } else { die('<br />Unknown type<br /><br /><a href="addfields.php">→ Try again</a>'); // De type is geen textarea, text of password. Dit is alleen mogelijk als iemand het script op een verkeerde manier gebruikt! } } else { die('<br />Hacking attempt'); // Iemand is handmatig naar ?action=add gegaan zonder het formulier te gebruiken } } else { // Er is nog niks verzonden, het formulier wordt laten zien. ?> <form action="?action=add" method="post"> Text:<br /> <input type="text" name="text" size="60" maxlength="255" value=""><br /><br /> Name:<br /> <input type="text" name="name" size="60" maxlength="255" value=""><br /> <br /> Size:<br /> <input type="text" name="size" size="60" maxlength="255" value="30"><br /> <br /> Maxlength:<br /> <input type="text" name="maxlength" size="60" maxlength="255" value="255"><br /><br /> Type:<br /> <select name="type"><option value="text">Text</option><option value="textarea">Textarea</option><option value="password">Password</option></select><br /><br /> Rows (textarea):<br /> <input type="text" name="rows" size="60" maxlength="255" value=""><br /><br /> Cols (textarea):<br /> <input type="text" name="cols" size="60" maxlength="255" value=""><br /><br /> <br /> <input type="submit" value="Add" class="button"> </form> <br /><br /><a href="admin.php">→ Back to admin home</a> <?php } include("footer.php"); ?>
Admin.php
<?php
ob_start();
// De config wordt ingelezen
require_once("config.inc.php");
include("header.php");
print '<h2>Dynamic Contact Page</h2>';
$select = mysql_query("SELECT * FROM contactfields ORDER BY pid ASC"); // Alle velden worden opgehaald
$fields = @mysql_num_rows($select); // Kijken of er al velden zijn
if($fields < 1) { // Kijken wat het resultaat was
print '<br /><i>Please add a field</i><br /><br />'; // Er zijn nog geen velden toegevoegd
} else { // Er zijn al 1 of meer velden
while($fetch = mysql_fetch_assoc($select)) { // Zorgen dat alle velden opgehaald worden
print '<div class="listitem"><div class="floatleft" style="width: 350px; padding: 6px 0 0 0;">'.$fetch['name'].'</div> <div class="floatright actions"><a href="edit.php?id='.$fetch['id'].'">√</a> <a href="delete.php?id='.$fetch['id'].'">×</a> <a href="move.php?moveUp='.$fetch['id'].'">↑</a> <a href="move.php?moveDown='.$fetch['id'].'">↓</a></div><div class="clear"></div></div>'; // En laten zien
}
}
?>
<br />
<small>√ = edit | × = delete | ↑ = move up | ↓ = move up </small><br /><br />
I want to <a href="clients.php">manage the clients</a>. Or maybe <a href="addfields.php">add a field</a>.
<?php
include("footer.php");
?>
<?php // De config wordt ingelezen require_once("config.inc.php"); include("header.php"); print '<h2>Dynamic Contact Page</h2>'; $select = mysql_query("SELECT * FROM contactfields ORDER BY pid ASC"); // Alle velden worden opgehaald if($fields < 1) { // Kijken wat het resultaat was print '<br /><i>Please add a field</i><br /><br />'; // Er zijn nog geen velden toegevoegd } else { // Er zijn al 1 of meer velden while($fetch = mysql_fetch_assoc($select)) { // Zorgen dat alle velden opgehaald worden print '<div class="listitem"><div class="floatleft" style="width: 350px; padding: 6px 0 0 0;">'.$fetch['name'].'</div> <div class="floatright actions"><a href="edit.php?id='.$fetch['id'].'">√</a> <a href="delete.php?id='.$fetch['id'].'">×</a> <a href="move.php?moveUp='.$fetch['id'].'">↑</a> <a href="move.php?moveDown='.$fetch['id'].'">↓</a></div><div class="clear"></div></div>'; // En laten zien } } ?> <br /> <small>√ = edit | × = delete | ↑ = move up | ↓ = move up </small><br /><br /> I want to <a href="clients.php">manage the clients</a>. Or maybe <a href="addfields.php">add a field</a>. <?php include("footer.php"); ?>
Clients.php
<?php
ob_start();
// De config wordt ingelezen
require_once("config.inc.php");
include("header.php");
print '<h2>Dynamic Contact Page</h2>';
if($_SERVER['REQUEST_METHOD'] == 'POST') { // Is er al iets verzonden?
$email = input($_POST['email']);
if(checkemail($email)) {
$query = mysql_query("INSERT INTO email (email) VALUES ('".$email."')");
if($query) {
header('Location: clients.php');
} else {
die('Error in database');
}
} else {
die('<br />Invalid email<br /><br /><a href="clients.php">→ Try again</a>');
}
} else { // Nee, de boel uitlezen dus.
$select = mysql_query("SELECT * FROM email ORDER BY id ASC"); // Alle emails ophalen
$firstrun = mysql_num_rows($select); // Hoeveel resultaten
if($firstrun < 1) { // Geen resultaten, er zijn nog geen emails.
$query = mysql_query("INSERT INTO email (email) VALUES ('noreply@example.com')"); // Een standaard wordt toegevoegd
if($query) { // Is de query goed uitgevoerd?
header('Location: clients.php'); // Even een simpele refresh om de email zichtbaar te maken
exit(); // De pagina wordt beeindigd.
} else {
die('Error in database'); // Er is een fout opgetreden
}
}
while($fetch = mysql_fetch_assoc($select)) { // Zorgen dat alle resultaten uitgelezen worden
print '<div class="listitem"><div class="floatleft" style="width: 350px; padding: 6px 0 0 0;">'.$fetch['id'].' — '.$fetch['email'].' </div><div class="floatright actions"><a href="remove.php?id='.$fetch['id'].'">×</a></div><div class="clear"></div></div>'; // Uitlezen
}
?>
<form action="clients.php" method="post">
<br />
<input type="text" name="email" maxlength="255" value="" size="40">
<input type="submit" value="Add" class="button">
</form>
<br /><br /><a href="admin.php">→ Back to admin home</a>
<?php
}
include("footer.php");
?>
<?php // De config wordt ingelezen require_once("config.inc.php"); include("header.php"); print '<h2>Dynamic Contact Page</h2>'; if($_SERVER['REQUEST_METHOD'] == 'POST') { // Is er al iets verzonden? $email = input($_POST['email']); if(checkemail($email)) { $query = mysql_query("INSERT INTO email (email) VALUES ('".$email."')"); if($query) { header('Location: clients.php'); } else { die('Error in database'); } } else { die('<br />Invalid email<br /><br /><a href="clients.php">→ Try again</a>'); } } else { // Nee, de boel uitlezen dus. $select = mysql_query("SELECT * FROM email ORDER BY id ASC"); // Alle emails ophalen if($firstrun < 1) { // Geen resultaten, er zijn nog geen emails. $query = mysql_query("INSERT INTO email (email) VALUES ('noreply@example.com')"); // Een standaard wordt toegevoegd if($query) { // Is de query goed uitgevoerd? header('Location: clients.php'); // Even een simpele refresh om de email zichtbaar te maken exit(); // De pagina wordt beeindigd. } else { die('Error in database'); // Er is een fout opgetreden } } while($fetch = mysql_fetch_assoc($select)) { // Zorgen dat alle resultaten uitgelezen worden print '<div class="listitem"><div class="floatleft" style="width: 350px; padding: 6px 0 0 0;">'.$fetch['id'].' — '.$fetch['email'].' </div><div class="floatright actions"><a href="remove.php?id='.$fetch['id'].'">×</a></div><div class="clear"></div></div>'; // Uitlezen } ?> <form action="clients.php" method="post"> <br /> <input type="text" name="email" maxlength="255" value="" size="40"> <input type="submit" value="Add" class="button"> </form> <br /><br /><a href="admin.php">→ Back to admin home</a> <?php } include("footer.php"); ?>
Config.inc.php
<?php
$dbServer = "localhost"; // De host waarop je dit script draait
$dbUser = "root"; // De gebruiker om een connectie naar de database te kunnen maken
$dbPass = ""; // Het wachtwoord dat bij de gebruiker hoort
$dbDbName = ""; // De naam van de database waar alles in is opgeslagen
mysql_connect ($dbServer, $dbUser, $dbPass) or die (mysql_error()); // De connectie wordt gemaakt
mysql_select_db($dbDbName) or die (mysql_error()); // De database wordt geselecteerd
// Functies worden aangemaakt
if(!function_exists('input')) { // Als die nog niet bestaat aanmaken
function input($value) // Deze functie beveiligd inputs om fouten te voorkomen
{
if (!in_array(ini_get('magic_quotes_gpc'), array('', '0', 'Off', 'False', 'No'))) {
$value = stripslashes($value);
}
if (!is_numeric($value)) {
$value = htmlentities($value);
$value = mysql_real_escape_string($value);
}
return $value;
}
}
if(!function_exists('get')) { // Als die nog niet bestaat aanmaken
function get($item, $default) { // Deze functie is gelijk aan $_GET en geeft een default mee als hij niet is opgegeven in de URL
return (isset($_GET[$item]) ? $_GET[$item] : $default);
}
}
if(!function_exists('checkemail')) { // Als die nog niet bestaat aanmaken
function checkemail($input) { // Deze functie is gemaakt door FangorN
$pattern = "/^([a-z0-9_-]+\.)*[a-z0-9_-]+@([a-z0-9_-]{2,}\.)+([a-z0-9_-]{2,})$/i"; // De reguliere expressie om het emailadres te controleren
return preg_match($pattern, $input);
}
}
// Error reporting
error_reporting(E_ALL ^ E_NOTICE);
?>
<?php $dbServer = "localhost"; // De host waarop je dit script draait $dbUser = "root"; // De gebruiker om een connectie naar de database te kunnen maken $dbPass = ""; // Het wachtwoord dat bij de gebruiker hoort $dbDbName = ""; // De naam van de database waar alles in is opgeslagen // Functies worden aangemaakt function input($value) // Deze functie beveiligd inputs om fouten te voorkomen { } } return $value; } } function get($item, $default) { // Deze functie is gelijk aan $_GET en geeft een default mee als hij niet is opgegeven in de URL return (isset($_GET[$item]) ? $_GET[$item] : $default); } } function checkemail($input) { // Deze functie is gemaakt door FangorN $pattern = "/^([a-z0-9_-]+\.)*[a-z0-9_-]+@([a-z0-9_-]{2,}\.)+([a-z0-9_-]{2,})$/i"; // De reguliere expressie om het emailadres te controleren } } // Error reporting ?>
Contact.php
<?php
ob_start();
// De config wordt ingelezen
require_once("config.inc.php");
include("header.php");
// Naar welke client moet het verstuurd worden?
$client = get('client', 'x');
$select = mysql_query("SELECT * FROM contactfields ORDER BY pid ASC"); // Alle forms worden opgehaald
$check = @mysql_num_rows($select); // Hoeveel forms er zijn
if($check < 1) { // Zijn er al wel forms?
print 'Please add at least one field first.'; // Wel eerst forms toevoegen
} else { // Er zijn al forms
$client = mysql_query("SELECT * FROM email WHERE id=".$client.""); // Welke email hoort bij de client?
$toclient = @mysql_fetch_assoc($client);
$exists = @mysql_num_rows($client); // Bestaat deze client wel
if($exists > 0) { // Er bestaat een email met deze client ID
print '<form action="send.php" method="post">'; // Het begin van de form
while($fetch = mysql_fetch_assoc($select)) { // Alle forms komen aan de beurt
if($fetch['type'] == 'textarea') { // Is het een textarea?
print $fetch['text'].':<br /><textarea class="nowidth" name="'.$fetch['name'].'" cols="'.$fetch['cols'].'" rows="'.$fetch['rows'].'"></textarea><br />'; // De textarea uitlezen
} else { // Nee het is een password of text type
print $fetch['text'].':<br /><input class="nowidth" type="'.$fetch['type'].'" name="'.$fetch['name'].'" size='.$fetch['size'].' maxlength='.$fetch['maxlength'].'><br />'; // Uitlezen
}
}
print '<input type="hidden" name="Receiver" value="'.$toclient['email'].'">'; // Een hidden input met de client
} else { // Er bestaat geen email met deze client ID
die('No client found with this ID.'); // En dat laten we even zien
}
?>
<br />
<input type="submit" class="button" value="Send">
</form>
<?php
}
include("footer.php");
?>
<?php // De config wordt ingelezen require_once("config.inc.php"); include("header.php"); // Naar welke client moet het verstuurd worden? $client = get('client', 'x'); $select = mysql_query("SELECT * FROM contactfields ORDER BY pid ASC"); // Alle forms worden opgehaald if($check < 1) { // Zijn er al wel forms? print 'Please add at least one field first.'; // Wel eerst forms toevoegen } else { // Er zijn al forms $client = mysql_query("SELECT * FROM email WHERE id=".$client.""); // Welke email hoort bij de client? if($exists > 0) { // Er bestaat een email met deze client ID print '<form action="send.php" method="post">'; // Het begin van de form if($fetch['type'] == 'textarea') { // Is het een textarea? print $fetch['text'].':<br /><textarea class="nowidth" name="'.$fetch['name'].'" cols="'.$fetch['cols'].'" rows="'.$fetch['rows'].'"></textarea><br />'; // De textarea uitlezen } else { // Nee het is een password of text type print $fetch['text'].':<br /><input class="nowidth" type="'.$fetch['type'].'" name="'.$fetch['name'].'" size='.$fetch['size'].' maxlength='.$fetch['maxlength'].'><br />'; // Uitlezen } } print '<input type="hidden" name="Receiver" value="'.$toclient['email'].'">'; // Een hidden input met de client } else { // Er bestaat geen email met deze client ID die('No client found with this ID.'); // En dat laten we even zien } ?> <br /> <input type="submit" class="button" value="Send"> </form> <?php } include("footer.php"); ?>
Delete.php
<?php
ob_start();
// De config wordt ingelezen
require_once("config.inc.php");
include("header.php");
$id = get('id', 'x'); // De ?id= ophalen
$confirmed = get('confirmed', 'no'); // Hetzelfde voor ?confirmed=
if(is_numeric($id)) { // Is de id numeriek?
if($confirmed == 'yes' && $_SERVER['REQUEST_METHOD'] == 'POST') { // Is het zeker dat er verwijderd mag worden
$errorCount = 1; // Deze wordt verhoogd zodra er errors optreden
$select = mysql_query("SELECT pid FROM contactfields WHERE id=".$id.""); // De bijbehorende pid wordt gezocht
$idPid = mysql_fetch_assoc($select); // Even fetchen
$queries[] = "UPDATE contactfields SET pid=pid-1 WHERE pid > ".$idPid['pid'].""; // Alle fields schuiven op
$queries[] = "DELETE FROM contactfields WHERE id=".$id.""; // De query om het field te verwijderen
foreach($queries as $query) { // Zorgen dat de hele array met queries aan de beurt komt
if(!$result = mysql_query($query)) {
$errorCount++; // Als de query niet goed verloopt wordt dit toegevoegd aan de error count
}
}
if($errorCount == 1) { // Als er geen errors zijn opgetreden zijn moet deze nog 1 zijn
header('Location: admin.php'); // Doorsturen naar admin.php
} else { // Er zijn wel errors
print 'Error in database: '.mysql_error(); // De error laten zien
exit(); // Pagina stopzetten
}
} else { // Er is nog niet verzonden, er wordt een verificatie gevraagd
print '
<form action="?id='.$id.'&confirmed=yes" method="post">
Are you sure you want to delete the field?
<br />
<br />
<input type="submit" value="Yes" class="button">
</form>
';
}
} else { // De ID is niet numeriek, iemand heeft met de url gespeeld
header('Location: admin.php'); // Doorsturen naar admin.php
exit(); // De pagina wordt beeindigd
}
include("footer.php");
?>
<?php // De config wordt ingelezen require_once("config.inc.php"); include("header.php"); $id = get('id', 'x'); // De ?id= ophalen $confirmed = get('confirmed', 'no'); // Hetzelfde voor ?confirmed= if($confirmed == 'yes' && $_SERVER['REQUEST_METHOD'] == 'POST') { // Is het zeker dat er verwijderd mag worden $errorCount = 1; // Deze wordt verhoogd zodra er errors optreden $select = mysql_query("SELECT pid FROM contactfields WHERE id=".$id.""); // De bijbehorende pid wordt gezocht $queries[] = "UPDATE contactfields SET pid=pid-1 WHERE pid > ".$idPid['pid'].""; // Alle fields schuiven op $queries[] = "DELETE FROM contactfields WHERE id=".$id.""; // De query om het field te verwijderen foreach($queries as $query) { // Zorgen dat de hele array met queries aan de beurt komt $errorCount++; // Als de query niet goed verloopt wordt dit toegevoegd aan de error count } } if($errorCount == 1) { // Als er geen errors zijn opgetreden zijn moet deze nog 1 zijn header('Location: admin.php'); // Doorsturen naar admin.php } else { // Er zijn wel errors exit(); // Pagina stopzetten } } else { // Er is nog niet verzonden, er wordt een verificatie gevraagd <form action="?id='.$id.'&confirmed=yes" method="post"> Are you sure you want to delete the field? <br /> <br /> <input type="submit" value="Yes" class="button"> </form> '; } } else { // De ID is niet numeriek, iemand heeft met de url gespeeld header('Location: admin.php'); // Doorsturen naar admin.php exit(); // De pagina wordt beeindigd } include("footer.php"); ?>
Edit.php
<?php
ob_start();
// De config wordt ingelezen
require_once("config.inc.php");
include("header.php");
print '<h2>Dynamic Contact Page</h2>';
// De ?action= en &id= worden bekeken
$action = get('action', 'x');
$id = get('id', 'x');
if($action == 'add' && is_numeric($id)) {
if($_SERVER['REQUEST_METHOD'] == 'POST') { // Als er op Add is geklikt
$getName = get('name', 'x');
$text = input($_POST['text']); // De $_POST wordt beveiligd
$name = input($_POST['name']); // etc..
$size = input($_POST['size']);
$maxlength = input($_POST['maxlength']);
$type = input($_POST['type']);
$rows = input($_POST['rows']);
$cols = input($_POST['cols']);
if($type == 'textarea') { // Als het opgeven type textarea is
if(!is_numeric($rows) || !is_numeric($cols)) { // Zijn de rows en cols wel numeriek?
die('<br />Make sure rows and cols are numeric<br /><br /><a href="edit.php?id='.$id.'">→ Try again</a>'); // Nee, er wordt een melding gegeven en het script wordt beeindigd
} elseif(!$text || !$name || !$size || !$maxlength) { // De rows en cols zijn wel numeriek, tijd om te kijken of de rest is ingevuld
die('<br />Please fill in all fields<br /><br /><a href="edit.php?id='.$id.'">→ Try again</a>'); // Nee, niet alles is ingevuld
} elseif(!is_numeric($size) || !is_numeric($maxlength)) { // Alles is ingevuld en rows en cols zijn numeriek, maar de size en maxlength?
die('<br />Make sure the size and maxlength are numeric<br /><br /><a href="edit.php?id='.$id.'">→ Try again</a>'); // Nee, weer wordt er een error gegeven en het script wordt beeindigd.
} else { // Alles is goed, het script kan doorgaan
if($name != $getName) { // Dit moet alleen als de naam gewijzigd is
$exists = mysql_num_rows(mysql_query("SELECT * FROM contactfields WHERE name='" . $name . "'")); // Query om te kijken of er al een field met deze name is
} else {
$exists = 0; // Om errors te voorkomen
}
if($exists < 1 && $name != 'Receiver') { // Als de name nog niet bestaat en de name niet Receiver is (want zo heet het hidden field) doorgaan
$query = mysql_query("UPDATE contactfields SET text='".$text."', name='".$name."', size=".$size.", maxlength=".$maxlength.", type='".$type."', rows=".$rows.", cols=".$cols." WHERE id=".$id."") or die(mysql_error()); // Updaten van de database
if($query) { // Is de query goed?
print '<br />The field was succesfully edited.<br /><br /><a href="admin.php">→ Back to admin home</a>';
} else {
print 'Error in database: '.mysql_error(); // Er is een fout, de fout wordt laten zien
}
} else {
die('<br />This name does already exists<br /><br /><a href="edit.php?id='.$id.'">→ Try again</a>'); // De name bestaat al
}
}
} elseif($type == 'text' || $type == 'password') { // Als het type geen textarea is maar text of password
$rows = 0; // Rows zijn niet nodig
$cols = 0; // Cols ook niet
if(!$text || !$name || !$size || !$maxlength) { // Zijn alle velden ingevuld?
die('<br />Please fill in all fields<br /><br /><a href="edit.php?id='.$id.'">→ Try again</a>'); // Nee, een melding wordt gegeven en het script stopgezet
} elseif(!is_numeric($size) || !is_numeric($maxlength)) { // Alle velden zijn ingevuld, zijn ze geldig?
die('<br />Make sure the size and maxlength are numeric<br /><br /><a href="edit.php?id='.$id.'">→ Try again</a>'); // De size en maxlength zijn niet numeriek; ongeldig dus.
} else { // Alles is geldig, het script kan doorgaan
if($name != $getName) { // Dit moet alleen als de naam gewijzigd is
$exists = mysql_num_rows(mysql_query("SELECT * FROM contactfields WHERE name='" . $name . "'")); // Query om te kijken of er al een field met deze name is
} else {
$exists = 0; // Om errors te voorkomen
}
if($exists < 1 && $name != 'Receiver') { // Als de name nog niet bestaat en de name niet Receiver is (want zo heet het hidden field) doorgaan
$query = mysql_query("UPDATE contactfields SET text='".$text."', name='".$name."', size=".$size.", maxlength=".$maxlength.", type='".$type."', rows=".$rows.", cols=".$cols." WHERE id=".$id."") or die(mysql_error()); // Updaten van de database
if($query) { // Is de query goed?
print '<br />The field was succesfully edited.<br /><br /><a href="admin.php">→ Back to admin home</a>';
} else {
print 'Error in database: '.mysql_error(); // Er is een fout, de fout wordt laten zien
}
} else {
die('<br />This name does already exists<br /><br /><a href="edit.php?id='.$id.'">→ Try again</a>'); // De name bestaat al
}
}
} else {
die('<br />Unknown type<br /><br /><a href="edit.php?id='.$id.'">→ Try again</a>'); // De type is geen textarea, text of password. Dit is alleen mogelijk als iemand het script op een verkeerde manier gebruikt!
}
} else {
die('<br />Hacking attempt'); // Iemand is handmatig naar ?action=add gegaan zonder het formulier te gebruiken
}
} else { // Er is nog niks verzonden, het formulier wordt laten zien.
if(is_numeric($id)) { // Als de ID numeriek is doorgaan
$select = mysql_query("SELECT * FROM contactfields WHERE id = ".$id.""); // Alle forms worden opgehaald
$check = @mysql_num_rows($select); // Hoeveel forms er zijn
if($check > 0) { // Als er wel fields zijn opgehaald, anders is het een foute ID
$fetch = mysql_fetch_assoc($select); // De results fetchen zodat ik ze kan gebruiken
?>
<form action="?action=add&id=<?php print $id; ?>&name=<?php print $fetch['name']; ?>" method="post">
Text:<br />
<input type="text" name="text" size="60" maxlength="255" value="<?php print $fetch['text']; ?>"><br /><br />
Name:<br />
<input type="text" name="name" size="60" maxlength="255" value="<?php print $fetch['name']; ?>"><br /> <br />
Size:<br />
<input type="text" name="size" size="60" maxlength="255" value="<?php print $fetch['size']; ?>"><br /> <br />
Maxlength:<br />
<input type="text" name="maxlength" size="60" maxlength="255" value="<?php print $fetch['maxlength']; ?>"><br /><br />
Type:<br />
<?php
if($fetch['type'] == 'text') { // In het geval van text moet text eerst
print '<select name="type"><option value="text">Text</option><option value="textarea">Textarea</option><option value="password">Password</option></select>';
} elseif($fetch['type'] == 'textarea') { // hetzelfde geldt voor textarea
print '<select name="type"><option value="textarea">Textarea</option><option value="text">Text</option><option value="password">Password</option></select>';
} else { // Het is geen text en ook geen textarea dus een password type, weer geldt hetzelfde
print '<select name="type"><option value="password">Password</option><option value="textarea">Textarea</option><option value="text">Text</option></select>';
}
?>
<br /><br />
Rows (textarea):<br />
<input type="text" name="rows" size="60" maxlength="255" value="<?php print $fetch['rows']; ?>"><br /><br />
Cols (textarea):<br />
<input type="text" name="cols" size="60" maxlength="255" value="<?php print $fetch['cols']; ?>"><br /><br />
<br />
<input type="submit" value="Edit" class="button">
</form>
<br /><br /><a href="admin.php">→ Back to admin home</a>
<?php
} else { // Foutieve ID. Hij bestaat niet
header('Location: admin.php'); // Ga maar terug naar admin.php en niet meer met de url spelen
exit(); // De pagina wordt afgebroken
}
} else { // De ID is niet numeriek
header('Location: admin.php'); // Ga maar terug naar admin.php en niet meer met de url spelen
exit(); // De pagina wordt afgebroken
}
}
include("footer.php");
?>
<?php // De config wordt ingelezen require_once("config.inc.php"); include("header.php"); print '<h2>Dynamic Contact Page</h2>'; // De ?action= en &id= worden bekeken $action = get('action', 'x'); $id = get('id', 'x'); if($_SERVER['REQUEST_METHOD'] == 'POST') { // Als er op Add is geklikt $getName = get('name', 'x'); $text = input($_POST['text']); // De $_POST wordt beveiligd $name = input($_POST['name']); // etc.. $size = input($_POST['size']); $maxlength = input($_POST['maxlength']); $type = input($_POST['type']); $rows = input($_POST['rows']); $cols = input($_POST['cols']); if($type == 'textarea') { // Als het opgeven type textarea is die('<br />Make sure rows and cols are numeric<br /><br /><a href="edit.php?id='.$id.'">→ Try again</a>'); // Nee, er wordt een melding gegeven en het script wordt beeindigd } elseif(!$text || !$name || !$size || !$maxlength) { // De rows en cols zijn wel numeriek, tijd om te kijken of de rest is ingevuld die('<br />Please fill in all fields<br /><br /><a href="edit.php?id='.$id.'">→ Try again</a>'); // Nee, niet alles is ingevuld } elseif(!is_numeric($size) || !is_numeric($maxlength)) { // Alles is ingevuld en rows en cols zijn numeriek, maar de size en maxlength? die('<br />Make sure the size and maxlength are numeric<br /><br /><a href="edit.php?id='.$id.'">→ Try again</a>'); // Nee, weer wordt er een error gegeven en het script wordt beeindigd. } else { // Alles is goed, het script kan doorgaan if($name != $getName) { // Dit moet alleen als de naam gewijzigd is $exists = mysql_num_rows(mysql_query("SELECT * FROM contactfields WHERE name='" . $name . "'")); // Query om te kijken of er al een field met deze name is } else { $exists = 0; // Om errors te voorkomen } if($exists < 1 && $name != 'Receiver') { // Als de name nog niet bestaat en de name niet Receiver is (want zo heet het hidden field) doorgaan $query = mysql_query("UPDATE contactfields SET text='".$text."', name='".$name."', size=".$size.", maxlength=".$maxlength.", type='".$type."', rows=".$rows.", cols=".$cols." WHERE id=".$id."") or die(mysql_error()); // Updaten van de database if($query) { // Is de query goed? print '<br />The field was succesfully edited.<br /><br /><a href="admin.php">→ Back to admin home</a>'; } else { print 'Error in database: '.mysql_error(); // Er is een fout, de fout wordt laten zien } } else { die('<br />This name does already exists<br /><br /><a href="edit.php?id='.$id.'">→ Try again</a>'); // De name bestaat al } } } elseif($type == 'text' || $type == 'password') { // Als het type geen textarea is maar text of password $rows = 0; // Rows zijn niet nodig $cols = 0; // Cols ook niet if(!$text || !$name || !$size || !$maxlength) { // Zijn alle velden ingevuld? die('<br />Please fill in all fields<br /><br /><a href="edit.php?id='.$id.'">→ Try again</a>'); // Nee, een melding wordt gegeven en het script stopgezet } elseif(!is_numeric($size) || !is_numeric($maxlength)) { // Alle velden zijn ingevuld, zijn ze geldig? die('<br />Make sure the size and maxlength are numeric<br /><br /><a href="edit.php?id='.$id.'">→ Try again</a>'); // De size en maxlength zijn niet numeriek; ongeldig dus. } else { // Alles is geldig, het script kan doorgaan if($name != $getName) { // Dit moet alleen als de naam gewijzigd is $exists = mysql_num_rows(mysql_query("SELECT * FROM contactfields WHERE name='" . $name . "'")); // Query om te kijken of er al een field met deze name is } else { $exists = 0; // Om errors te voorkomen } if($exists < 1 && $name != 'Receiver') { // Als de name nog niet bestaat en de name niet Receiver is (want zo heet het hidden field) doorgaan $query = mysql_query("UPDATE contactfields SET text='".$text."', name='".$name."', size=".$size.", maxlength=".$maxlength.", type='".$type."', rows=".$rows.", cols=".$cols." WHERE id=".$id."") or die(mysql_error()); // Updaten van de database if($query) { // Is de query goed? print '<br />The field was succesfully edited.<br /><br /><a href="admin.php">→ Back to admin home</a>'; } else { print 'Error in database: '.mysql_error(); // Er is een fout, de fout wordt laten zien } } else { die('<br />This name does already exists<br /><br /><a href="edit.php?id='.$id.'">→ Try again</a>'); // De name bestaat al } } } else { die('<br />Unknown type<br /><br /><a href="edit.php?id='.$id.'">→ Try again</a>'); // De type is geen textarea, text of password. Dit is alleen mogelijk als iemand het script op een verkeerde manier gebruikt! } } else { die('<br />Hacking attempt'); // Iemand is handmatig naar ?action=add gegaan zonder het formulier te gebruiken } } else { // Er is nog niks verzonden, het formulier wordt laten zien. if(is_numeric($id)) { // Als de ID numeriek is doorgaan $select = mysql_query("SELECT * FROM contactfields WHERE id = ".$id.""); // Alle forms worden opgehaald if($check > 0) { // Als er wel fields zijn opgehaald, anders is het een foute ID ?> <form action="?action=add&id= <?php print $id; ?>&name= <?php print $fetch['name']; ?>" method="post"> Text:<br /> <input type="text" name="text" size="60" maxlength="255" value=" <?php print $fetch['text']; ?>"><br /><br /> Name:<br /> <input type="text" name="name" size="60" maxlength="255" value=" <?php print $fetch['name']; ?>"><br /> <br /> Size:<br /> <input type="text" name="size" size="60" maxlength="255" value=" <?php print $fetch['size']; ?>"><br /> <br /> Maxlength:<br /> <input type="text" name="maxlength" size="60" maxlength="255" value=" <?php print $fetch['maxlength']; ?>"><br /><br /> Type:<br /> <?php if($fetch['type'] == 'text') { // In het geval van text moet text eerst print '<select name="type"><option value="text">Text</option><option value="textarea">Textarea</option><option value="password">Password</option></select>'; } elseif($fetch['type'] == 'textarea') { // hetzelfde geldt voor textarea print '<select name="type"><option value="textarea">Textarea</option><option value="text">Text</option><option value="password">Password</option></select>'; } else { // Het is geen text en ook geen textarea dus een password type, weer geldt hetzelfde print '<select name="type"><option value="password">Password</option><option value="textarea">Textarea</option><option value="text">Text</option></select>'; } ?> <br /><br /> Rows (textarea):<br /> <input type="text" name="rows" size="60" maxlength="255" value=" <?php print $fetch['rows']; ?>"><br /><br /> Cols (textarea):<br /> <input type="text" name="cols" size="60" maxlength="255" value=" <?php print $fetch['cols']; ?>"><br /><br /> <br /> <input type="submit" value="Edit" class="button"> </form> <br /><br /><a href="admin.php">→ Back to admin home</a> <?php } else { // Foutieve ID. Hij bestaat niet header('Location: admin.php'); // Ga maar terug naar admin.php en niet meer met de url spelen exit(); // De pagina wordt afgebroken } } else { // De ID is niet numeriek header('Location: admin.php'); // Ga maar terug naar admin.php en niet meer met de url spelen exit(); // De pagina wordt afgebroken } } include("footer.php"); ?>
Footer.php
header.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-gb" xml:lang="en-gb">
<head>
<title>Dynamic Contact Page</title>
<link rel="stylesheet" href="styles.css" />
</head>
<body>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-gb" xml:lang="en-gb"> <link rel="stylesheet" href="styles.css" />
Move.php
<?php
ob_start();
// De config wordt ingelezen
require_once("config.inc.php");
include("header.php");
// Moet die omlaag of omhoog?
$moveUp = get('moveUp', 'none');
$moveDown = get('moveDown', 'none');
if(is_numeric($moveUp) && $moveDown == 'none') { // Dit uitvoeren als die omhoog moet
$query = mysql_query("SELECT * FROM contactfields WHERE id=".$moveUp.""); // Query om wat info op te halen
$exists = mysql_num_rows($query); // De resultaten tellen
if($exists > 0) { // Als de field bestaat doorgaan
$errorCount = 1; // Als er errors voorkomen wordt dat hier bij op geteld
$fetch = mysql_fetch_array($query); // De query wordt gefetched, zodat ik hem makkelijk kan gebruiken
if($fetch['pid'] == 1) { // Als die al op de eerste plek staat kan die niet hoger
die('<br />This field is already at the top<br /><br /><a href="admin.php">→ Go back to admin home</a>');
}
$queries[] = "UPDATE contactfields SET pid=pid+1 WHERE pid=".($fetch['pid']-1).""; // Diegene boven hem gaat 1 naar onderen
$queries[] = "UPDATE contactfields SET pid=pid-1 WHERE id=".$moveUp.""; // Het field zelf gaat 1 plek naar boven
foreach($queries as $query) { // Zorgen dat de hele array met queries aan de beurt komt
if(!$result = mysql_query($query)) {
$errorCount++; // Als de query niet goed verloopt wordt dit toegevoegd aan de error count
}
}
if($errorCount == 1) { // Als de error count niet verhoogt is is alles goed gegaan
header('Location: admin.php'); // Doorsturen naar admin.php
} else { // Er is iets fout gegaan
print 'Error: '.mysql_error();
}
} else { // De field bestaat niet, er is met de URL gespeeld
header('Location: admin.php'); // Doorsturen naar admin.php
exit();
}
} elseif(is_numeric($moveDown) && $moveUp == 'none') { // Dit uitvoeren als die omlaag moet
$query = mysql_query("SELECT * FROM contactfields WHERE id=".$moveDown.""); // Query om wat info op te halen
$exists = mysql_num_rows($query); // De resultaten tellen
if($exists > 0) { // Als de field bestaat doorgaan
$errorCount = 1; // Als er errors voorkomen wordt dat hier bij op geteld
$fetch = mysql_fetch_array($query); // De query wordt gefetched, zodat ik hem makkelijk kan gebruiken
$countRows = mysql_num_rows(mysql_query("SELECT * FROM contactfields")); // Het aantal fields tellen
if($fetch['pid'] == $countRows) { // Als die al op de laagste plek staat kan die niet hoger
die('<br />This field is already at the bottom<br /><br /><a href="admin.php">→ Go back to admin home</a>');
}
$queries[] = "UPDATE contactfields SET pid=pid-1 WHERE pid=".($fetch['pid']+1).""; // Diegene boven hem gaat 1 naar boven
$queries[] = "UPDATE contactfields SET pid=pid+1 WHERE id=".$moveDown.""; // Het field zelf gaat 1 plek naar onderen
foreach($queries as $query) { // Zorgen dat de hele array met queries aan de beurt komt
if(!$result = mysql_query($query)) {
$errorCount++; // Als de query niet goed verloopt wordt dit toegevoegd aan de error count
}
}
if($errorCount == 1) { // Als de error count niet verhoogt is is alles goed gegaan
header('Location: admin.php'); // Doorsturen naar admin.php
} else { // Er is iets fout gegaan
print 'Error: '.mysql_error();
}
} else { // De field bestaat niet, er is met de URL gespeeld
header('Location: admin.php'); // Doorsturen naar admin.php
exit();
}
} else { // Als er met de URL is gespeeld of de pagina verkeerd is aangeroepen
header('Location: admin.php'); // Doorsturen naar admin.php
exit();
}
include("footer.php");
?>
<?php // De config wordt ingelezen require_once("config.inc.php"); include("header.php"); // Moet die omlaag of omhoog? $moveUp = get('moveUp', 'none'); $moveDown = get('moveDown', 'none'); if(is_numeric($moveUp) && $moveDown == 'none') { // Dit uitvoeren als die omhoog moet $query = mysql_query("SELECT * FROM contactfields WHERE id=".$moveUp.""); // Query om wat info op te halen if($exists > 0) { // Als de field bestaat doorgaan $errorCount = 1; // Als er errors voorkomen wordt dat hier bij op geteld $fetch = mysql_fetch_array($query); // De query wordt gefetched, zodat ik hem makkelijk kan gebruiken if($fetch['pid'] == 1) { // Als die al op de eerste plek staat kan die niet hoger die('<br />This field is already at the top<br /><br /><a href="admin.php">→ Go back to admin home</a>'); } $queries[] = "UPDATE contactfields SET pid=pid+1 WHERE pid=".($fetch['pid']-1).""; // Diegene boven hem gaat 1 naar onderen $queries[] = "UPDATE contactfields SET pid=pid-1 WHERE id=".$moveUp.""; // Het field zelf gaat 1 plek naar boven foreach($queries as $query) { // Zorgen dat de hele array met queries aan de beurt komt $errorCount++; // Als de query niet goed verloopt wordt dit toegevoegd aan de error count } } if($errorCount == 1) { // Als de error count niet verhoogt is is alles goed gegaan header('Location: admin.php'); // Doorsturen naar admin.php } else { // Er is iets fout gegaan } } else { // De field bestaat niet, er is met de URL gespeeld header('Location: admin.php'); // Doorsturen naar admin.php } } elseif(is_numeric($moveDown) && $moveUp == 'none') { // Dit uitvoeren als die omlaag moet $query = mysql_query("SELECT * FROM contactfields WHERE id=".$moveDown.""); // Query om wat info op te halen if($exists > 0) { // Als de field bestaat doorgaan $errorCount = 1; // Als er errors voorkomen wordt dat hier bij op geteld $fetch = mysql_fetch_array($query); // De query wordt gefetched, zodat ik hem makkelijk kan gebruiken if($fetch['pid'] == $countRows) { // Als die al op de laagste plek staat kan die niet hoger die('<br />This field is already at the bottom<br /><br /><a href="admin.php">→ Go back to admin home</a>'); } $queries[] = "UPDATE contactfields SET pid=pid-1 WHERE pid=".($fetch['pid']+1).""; // Diegene boven hem gaat 1 naar boven $queries[] = "UPDATE contactfields SET pid=pid+1 WHERE id=".$moveDown.""; // Het field zelf gaat 1 plek naar onderen foreach($queries as $query) { // Zorgen dat de hele array met queries aan de beurt komt $errorCount++; // Als de query niet goed verloopt wordt dit toegevoegd aan de error count } } if($errorCount == 1) { // Als de error count niet verhoogt is is alles goed gegaan header('Location: admin.php'); // Doorsturen naar admin.php } else { // Er is iets fout gegaan } } else { // De field bestaat niet, er is met de URL gespeeld header('Location: admin.php'); // Doorsturen naar admin.php } } else { // Als er met de URL is gespeeld of de pagina verkeerd is aangeroepen header('Location: admin.php'); // Doorsturen naar admin.php } include("footer.php"); ?>
Remove.php
<?php
ob_start();
// De config wordt ingelezen
require_once("config.inc.php");
include("header.php");
$id = get('id', 'x'); // De ?id= wordt opgehaald
$confirmed = get('confirmed', 'no'); // En hetzelfde gebeurd met ?confirmed=
if(is_numeric($id)) { // Is de id numeriek?
if($confirmed == 'yes' && $_SERVER['REQUEST_METHOD'] == 'POST') { // Is het zeker dat er verwijderd mag worden
$query = mysql_query("DELETE FROM email WHERE id=".$id.""); // De query om de client te verwijderen
if($query) { // Is het verwijderen goed gegaan?
header('Location: clients.php'); // Doorsturen naar clients.php
} else { // Er is iets fout gegegaan
print 'Error in database: '.mysql_error(); // De error laten zien
}
} else { // Er is nog niet verzonden, er wordt een verificatie gevraagd
print '
<form action="?id='.$id.'&confirmed=yes" method="post">
Are you sure you want to delete the client?
<br />
<br />
<input type="submit" value="Yes">
</form>
';
}
} else { // De ID is niet numeriek, iemand heeft met de url gespeeld
header('Location: admin.php'); // Doorsturen naar admin.php
exit(); // De pagina wordt beeindigd
}
include("footer.php");
?>
<?php // De config wordt ingelezen require_once("config.inc.php"); include("header.php"); $id = get('id', 'x'); // De ?id= wordt opgehaald $confirmed = get('confirmed', 'no'); // En hetzelfde gebeurd met ?confirmed= if($confirmed == 'yes' && $_SERVER['REQUEST_METHOD'] == 'POST') { // Is het zeker dat er verwijderd mag worden $query = mysql_query("DELETE FROM email WHERE id=".$id.""); // De query om de client te verwijderen if($query) { // Is het verwijderen goed gegaan? header('Location: clients.php'); // Doorsturen naar clients.php } else { // Er is iets fout gegegaan } } else { // Er is nog niet verzonden, er wordt een verificatie gevraagd <form action="?id='.$id.'&confirmed=yes" method="post"> Are you sure you want to delete the client? <br /> <br /> <input type="submit" value="Yes"> </form> '; } } else { // De ID is niet numeriek, iemand heeft met de url gespeeld header('Location: admin.php'); // Doorsturen naar admin.php exit(); // De pagina wordt beeindigd } include("footer.php"); ?>
Send.php
<?php
ob_start();
// De config wordt ingelezen
require_once("config.inc.php");
include("header.php");
if($_SERVER['REQUEST_METHOD'] == 'POST') {
$sender = "Contact";
$email = $_POST['Receiver'];
$subject = "Contact via website";
$message = "----START OF MESSAGE----\n\n";
foreach($_POST as $k => $v) {
$message .= $k.": - ".$v."\n\n";
}
$message .= "\n----END OF MESSAGE----";
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "To: ".$email." <".$email.">\r\n";
$headers .= "From: ".$sender." <".$email.">\r\n";
$message = nl2br($message);
$mail = @mail($email, $subject, $message, $headers);
if($mail) {
print 'Your mail has been sent.';
} else {
print '<h3>ERROR: The following mail could not be sent:</h3><h5>Please check your mail settings and possibilities.</h5><br
/><br />'.$message;
}
} else {
header('Location: contact.php');
}
include("footer.php");
?>
<?php // De config wordt ingelezen require_once("config.inc.php"); include("header.php"); if($_SERVER['REQUEST_METHOD'] == 'POST') { $sender = "Contact"; $email = $_POST['Receiver']; $subject = "Contact via website"; $message = "----START OF MESSAGE----\n\n"; foreach($_POST as $k => $v) { $message .= $k.": - ".$v."\n\n"; } $message .= "\n----END OF MESSAGE----"; $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; $headers .= "To: ".$email." <".$email.">\r\n"; $headers .= "From: ".$sender." <".$email.">\r\n"; $message = nl2br($message); $mail = @mail($email, $subject, $message, $headers); if($mail) { print 'Your mail has been sent.'; } else { print '<h3>ERROR: The following mail could not be sent:</h3><h5>Please check your mail settings and possibilities.</h5><br /><br />'.$message; } } else { header('Location: contact.php'); } include("footer.php"); ?>
Styles.css
body {
background: #f5f5f5;
margin: 7%;
font: 14px/18px "lucida sans";
color: #0f374a;
}
a, a:link, a:active, a:visited {
color: #517687;
text-decoration: none;
border-bottom: 1px solid #d7e7ef;
}
a:hover {
border-color: #94a9b4;
}
input, textarea, select {
padding: 10px;
font-size: 16px;
background: #fff;
border: 1px solid #eee;
color: #666;
width: 500px;
}
select {
width: 522px;
}
input:hover, input:focus, textarea:hover, textarea:focus, select:hover, select:focus {
background: #fafafa;
color: #000;
border-color: #ddd;
}
.button {
width: auto;
cursor: pointer;
padding: 10px 25px 10px 25px;
font-size: 15px;
font-weight: bold;
}
.floatleft {
float: left;
position: relative;
}
.floatright {
float: right;
position: relative;
}
h2 {
font-size: 24px;
}
.clear {
clear: both;
}
.listitem {
border-bottom: 1px solid #eee;
}
.actions {
margin: 5px;
}
.actions a {
padding: 1px 8px 1px 8px;
border: 0;
font-weight: bold;
border: 1px solid transparent;
}
.actions a:hover {
background: white;
border-color: #ddd;
}
.nowidth {
width: auto;
}
body { background: #f5f5f5; margin: 7%; font: 14px/18px "lucida sans"; color: #0f374a; } a, a:link, a:active, a:visited { color: #517687; text-decoration: none; border-bottom: 1px solid #d7e7ef; } a:hover { border-color: #94a9b4; } input, textarea, select { padding: 10px; font-size: 16px; background: #fff; border: 1px solid #eee; color: #666; width: 500px; } select { width: 522px; } input:hover, input:focus, textarea:hover, textarea:focus, select:hover, select:focus { background: #fafafa; color: #000; border-color: #ddd; } .button { width: auto; cursor: pointer; padding: 10px 25px 10px 25px; font-size: 15px; font-weight: bold; } .floatleft { float: left; position: relative; } .floatright { float: right; position: relative; } h2 { font-size: 24px; } .clear { clear: both; } .listitem { border-bottom: 1px solid #eee; } .actions { margin: 5px; } .actions a { padding: 1px 8px 1px 8px; border: 0; font-weight: bold; border: 1px solid transparent; } .actions a:hover { background: white; border-color: #ddd; } .nowidth { width: auto; }
Download code (.txt)
|
|
Stemmen |
Niet ingelogd. |
|