Addfields.php
[code=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">&rarr; 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">&rarr; 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">&rarr; 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">&rarr; 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">&rarr; 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">&rarr; 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">&rarr; Try again</a>'); // De name bestaat al
    
    }
   
   }
   
  
  } else {
  
   die('<br />Unknown type<br /><br /><a href="addfields.php">&rarr; 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">&rarr; Back to admin home</a>

<?php
}

include("footer.php");
?>

Admin.php
[code=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'].'">&radic;</a>&nbsp; <a href="delete.php?id='.$fetch['id'].'">&times;</a>&nbsp; <a href="move.php?moveUp='.$fetch['id'].'">&uarr;</a>&nbsp; <a href="move.php?moveDown='.$fetch['id'].'">&darr;</a></div><div class="clear"></div></div>'; // En laten zien

 }

}

?>
<br />
<small>&radic; = edit | &times; = delete | &uarr; = move up | &darr; = 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
[code=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">&rarr; 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'].' &mdash; '.$fetch['email'].' </div><div class="floatright actions"><a href="remove.php?id='.$fetch['id'].'">&times;</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">&rarr; Back to admin home</a>
<?php
}
include("footer.php");
?>

Config.inc.php
[code=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);
?>

Contact.php
[code=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");
?>

Delete.php
[code=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");
?>

Edit.php
[code=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.'">&rarr; 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.'">&rarr; 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.'">&rarr; 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">&rarr; 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.'">&rarr; 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.'">&rarr; 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.'">&rarr; 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">&rarr; 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.'">&rarr; Try again</a>'); // De name bestaat al
    
    }
   
   }
   
  
  } else {
  
   die('<br />Unknown type<br /><br /><a href="edit.php?id='.$id.'">&rarr; 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">&rarr; 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
[code=html4strict]</body>
</html>

header.php
[code=html4strict]<!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>

Move.php
[code=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">&rarr; 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">&rarr; 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");
?>

Remove.php
[code=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");
?>

Send.php
[code=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");
?>

Styles.css
[code=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;
}  