", "");
return $Return;
}
function GeenHTMLZoeken($Tekst){
$Return = $Tekst;
$Return = ZoekEnVervangGebied($Return, "
", "");
$Return = ZoekEnVervang($Return, "
", "");
$Return = ZoekEnVervang($Return, "
", "");
$Return = ZoekEnVervang($Return, "
", "");
$Return = ZoekEnVervang($Return, " | ", "");
$Return = ZoekEnVervang($Return, "/script>", "");
$Return = ZoekEnVervang($Return, "/object>", "");
$Return = ZoekEnVervang($Return, "
", "");
$Return = ZoekEnVervang($Return, "
", "");
$Return = ZoekEnVervang($Return, "
", "");
$Return = ZoekEnVervang($Return, "
", "");
$Return = ZoekEnVervang($Return, "
", "");
$Return = ZoekEnVervang($Return, "", "");
$Return = ZoekEnVervang($Return, "
", "");
$Return = ZoekEnVervang($Return, "
", "");
$Return = ZoekEnVervang($Return, "
", "");
$Return = ZoekEnVervang($Return, "", "");
$Return = ZoekEnVervang($Return, "", "");
$Return = ZoekEnVervangGebied($Return, "
", "");
return $Return;
}
function GeenHTMLRSS($Tekst){
$Return = $Tekst;
$Return = ZoekEnVervangGebied($Return, "
", "");
$Return = ZoekEnVervang($Return, "
", "");
$Return = ZoekEnVervang($Return, "
", "");
$Return = ZoekEnVervang($Return, "
", "");
$Return = ZoekEnVervang($Return, " | ", "");
$Return = ZoekEnVervang($Return, "/script>", "");
$Return = ZoekEnVervang($Return, "/object>", "");
$Return = ZoekEnVervang($Return, "
", "");
$Return = ZoekEnVervang($Return, "
", "");
$Return = ZoekEnVervang($Return, "
", "");
$Return = ZoekEnVervang($Return, "", "");
$Return = ZoekEnVervang($Return, "", "");
$Return = ZoekEnVervang($Return, "
", "");
$Return = ZoekEnVervang($Return, "
", "");
$Return = ZoekEnVervang($Return, "", "");
$Return = ZoekEnVervang($Return, "", "");
$Return = ZoekEnVervang($Return, "
", "");
$Return = ZoekEnVervang($Return, "&", "en");
$Return = ZoekEnVervang($Return, "ë", "e");
$Return = ZoekEnVervang($Return, "ë", "e");
$Return = ZoekEnVervang($Return, "€", "Euro");
$Return = ZoekEnVervang($Return, "‘", "");
$Return = ZoekEnVervang($Return, "’", "");
$Return = ZoekEnVervang($Return, "é", "e");
$Return = ZoekEnVervang($Return, "“", "");
$Return = ZoekEnVervang($Return, "”", "");
$Return = ZoekEnVervang($Return, """, "");
$Return = ZoekEnVervang($Return, "€", "euro");
$Return = ZoekEnVervangGebied($Return, "
", "");
return $Return;
}
function ZoekEnVervangGebied($Tekst, $Begin, $Eind, $VervangenDoor){
$Return = $Tekst;
while(Zoek($Return, $Begin)>0){
$PositieBegin = strpos($Return, $Begin);
$PositieEind = strpos(substr($Return, $PositieBegin), $Eind)+1;
$TeVervangen = substr($Return, $PositieBegin, $PositieEind);
$Return = ZoekEnVervang($Return, $TeVervangen, $VervangenDoor);
}
return $Return;
}
/**************************************************************************************
Onderstaande functie is om standaardwoorden en zinnen te vertalen indien een Klanten een
anderstalig CMS wenst.
***************************************************************************************/
function GeefVertaling($Veldnaam){
//if(KlantBudget() || KlantNieuwsbrief()){
// $resultaat = database_query("SELECT ".$Veldnaam." FROM Talen, Klanten, KlantenTalen WHERE kltKlantId = klaId AND kltTalenId = talId AND talId = klaTaalId AND klaId = ".$_SESSION["SES_KlantId"]);
// while($row = database_fetch_array($resultaat)) {
// $Return = TekstUitDatabase($row[$Veldnaam]);
// }
//}
//else{
// $resultaat = database_query("SELECT ".$Veldnaam." FROM Talen, Klanten WHERE talId = klaTaalId AND klaId = ".$_SESSION["SES_KlantId"]);
// while($row = database_fetch_array($resultaat)) {
// $Return = TekstUitDatabase($row[$Veldnaam]);
// }
//}
return $Return;
}
/**************************************************************************************
Hier worden de leestekens verwijderd. Ook niet zo bijzonder, de nummers slaan op de ASCII
nummers van tekens.
***************************************************************************************/
function VerwijderLeestekens($Invoer){
if($_SERVER["SERVER_NAME"]!="webserver"){
$Invoer = html_entity_decode($Invoer,ENT_QUOTES);
}
for($i=33;48>$i;$i++){
$Invoer = ZoekEnVervang($Invoer, chr($i), "");
}
for($i=58;64>$i;$i++){
$Invoer = ZoekEnVervang($Invoer, chr($i), "");
}
for($i=91;97>$i;$i++){
$Invoer = ZoekEnVervang($Invoer, chr($i), "");
}
for($i=123;255>$i;$i++){
$Invoer = ZoekEnVervang($Invoer, chr($i), "");
}
$Invoer = ZoekEnVervang($Invoer, " ", "");
return $Invoer;
}
/**************************************************************************************
Verschil met speciaal en gewoon is dat speciaal een . en een @ laat staan.
***************************************************************************************/
function VerwijderLeestekensSpeciaal($Invoer){
if($_SERVER["SERVER_NAME"]!="webserver"){
$Invoer = html_entity_decode($Invoer,ENT_QUOTES);
}
for($i=33;47>$i;$i++){
if($i!=46 && $i!=45){
$Invoer = ZoekEnVervang($Invoer, chr($i), "");
}
}
for($i=58;63>$i;$i++){
$Invoer = ZoekEnVervang($Invoer, chr($i), "");
}
for($i=91;96>$i;$i++){
if($i<>95){
$Invoer = ZoekEnVervang($Invoer, chr($i), "");
}
}
for($i=123;255>$i;$i++){
if($i<>173){
$Invoer = ZoekEnVervang($Invoer, chr($i), "");
}
}
$Invoer = ZoekEnVervang($Invoer, " ", "");
return $Invoer;
}
/**************************************************************************************
Hier wordt de pagina naam uit een PHP_SELF gehaald, daar krijg je vaak allemaal dirs mee
waar je niets aanhebt, daarom deze functie.
***************************************************************************************/
function Paginanaam($Naamoud){
$Array = Splitsen($Naamoud, "/");
$Return = $Array[count($Array)-1];
return $Return;
}
/**************************************************************************************
Dit is de tekst die bij een foto ingevoegd moet worden.
***************************************************************************************/
function FotoTekst(){
$resultaat = database_query("SELECT klaFotoTekst FROM Klanten WHERE klaId = ".$_SESSION["SES_KlantId"]);
while($row = database_fetch_array($resultaat)) {
$Return = $row["klaFotoTekst"];
}
return $Return;
}
function HTMLSizeToPDFSize($Grootte){
switch($Grootte){
case 15:
$Return = 13;
break;
case 14:
$Return = 12;
break;
case 13:
$Return = 11;
break;
case 12:
$Return = 10;
break;
case 11:
$Return = 9;
break;
}
return $Return;
}
function HTMLRegelhoogteToPDFRegelHoogte($Grootte){
switch($Grootte){
case 16:
$Return = 5;
break;
case 14:
$Return = 4;
break;
case 10:
$Return = 4;
break;
case 6:
$Return = 3;
break;
}
return $Return;
}
function FormatNummer($Getal){
if($Getal=="" || $Getal==0){
$Return = "";
}
else{
$Getal = $Getal / 1000;
$Return = number_format ($Getal, 0, ",", ".");
}
return $Return;
}
/**************************************************************************************
Deze functie is gejat van php.net en werkt prima, niets aan doen dus.
***************************************************************************************/
function leading_zero( $aNumber, $intPart, $floatPart=NULL, $dec_point=NULL, $thousands_sep=NULL) { //Note: The $thousands_sep has no real function because it will be "disturbed" by plain leading zeros -> the main goal of the function
$formattedNumber = $aNumber;
if (!is_null($floatPart)) { //without 3rd parameters the "float part" of the float shouldn't be touched
$formattedNumber = number_format($formattedNumber, $floatPart, $dec_point, $thousands_sep);
}
//if ($intPart > floor(log10($formattedNumber)))
$formattedNumber = str_repeat("0",($intPart + -1 - floor(log10($formattedNumber)))).$formattedNumber;
return $formattedNumber;
}
/**************************************************************************************
Deze functies zijn voor het zoeken van o.a. statische pagina's en dynamische pagina's.
***************************************************************************************/
function ZoekenDynamisch($ArrayQuery, $ArrayUrl){
for($i=0;count($ArrayQuery)>$i;$i++){
$resultaat = database_query($ArrayQuery[$i]);
while($row = database_fetch_array($resultaat)) {
if($row["Zoek1"]!=""){
$StringVolledig = GeenHTMLZoeken(TekstUitDatabase(strtolower($row["Zoek1"])));
}
if($row["Zoek2"]!=""){
$StringVolledig.= GeenHTMLZoeken(TekstUitDatabase(strtolower($row["Zoek2"])));
}
if($row["Zoek3"]!=""){
$StringVolledig.= GeenHTMLZoeken(TekstUitDatabase(strtolower($row["Zoek3"])));
}
if($row["Zoek4"]!=""){
$StringVolledig.= GeenHTMLZoeken(TekstUitDatabase(strtolower($row["Zoek4"])));
}
$Url = ZoekEnVervang($ArrayUrl[$i], "IdZoekEnVervang", $row["Id"]);
$Titel = TekstUitDatabase($row["Zoek1"]);
$Tekst = $StringVolledig;
database_query("INSERT INTO ZoekenBasis(zobSiteId, zobTekst, zobTitel, zobUrl) VALUES('".GLB_SiteId."', '".TekstNaarDatabase($Tekst)."', '".TekstNaarDatabase($Titel)."', '".$Url."')");
}
}
}
function ZoekenStatisch($ArrayPagina){
for($i=0;count($ArrayPagina)>$i;$i++){
$html = implode ('', file ($ArrayPagina[$i]));
if(Zoek($html, "0){
$Temp = Splitsen($html, "0){
$Titel = Splitsen($Temp[0], "
");
$Titel = Splitsen($Titel[1], "");
}
else{
$Titel = Splitsen($Temp[0], "
");
$Titel = Splitsen($Titel[1], "");
}
$Titel = $Titel[0];
}
else{
$Temp = Splitsen($html, "0){
$Titel = Splitsen($Temp[0], "
");
$Titel = Splitsen($Titel[1], "");
}
else{
$Titel = Splitsen($Temp[0], "
");
$Titel = Splitsen($Titel[1], "");
}
$Titel = $Titel[0];
}
$html = strtolower($html);
$Temp = Splitsen($Temp[1], "");
$Tekst = GeenHTMLZoeken($Temp[0]);
$Url = $ArrayPagina[$i];
$Titel = $Titel;
database_query("INSERT INTO ZoekenBasis(zobSiteId, zobTekst, zobTitel, zobUrl) VALUES('".GLB_SiteId."', '".TekstNaarDatabase($Tekst)."', '".TekstNaarDatabase($Titel)."', '".$Url."')");
}
}
function DoorzoekDirectory($dir, $Array){
if (is_dir($dir)){
if(substr($dir, strlen($dir)-1,1)!="/"){
$dir.="/";
}
$d = opendir($dir);
while ($file = readdir($d)){
if($file!=".." && $file!="."){
if (is_file($dir.$file)){
$Compleet = ZoekEnVervang($dir.$file, "../", GLB_URL);
$Array[] = $Compleet;
}
if(is_dir($dir.$file)){
$Array = DoorzoekDirectory($dir.$file, $Array);
}
}
}
closedir($d);
}
return $Array;
}
function InArray($Array, $Getal){
$Return = 0;
for($x=0;count($Array)>$x;$x++){
if($Array[$x]==$Getal){
$Return = -1;
}
}
return $Return;
}
function MaakHtmlLink($Tekst){
$Return = TekstUitDatabase($Tekst);
$Return = ZoekEnVervang($Return, " ", "spatietekentijdelijk");
$Return = VerwijderLeestekens($Return);
$Return = ZoekEnVervang($Return, "spatietekentijdelijk", "_");
return $Return;
}
function FormatNummerCeesSteur($Getal){
if($Getal=="" || $Getal==0){
$Return = "";
}
else{
$Return = number_format ($Getal, 0, ",", ".");
}
return $Return;
}
function SpamFormulierControle(){
$Stop = 0;
foreach ($_POST as $key => $val){
$HrefWaarde = $HrefWaarde + Zoek($val, "a href=");
$HTTPWaarde = $HTTPWaarde + Zoek($val, "http://");
$URLWaarde = $URLWaarde + Zoek($val, "[url=");
$ViagraWaarde = $ViagraWaarde + Zoek($val, "viagra");
$CheapWaarde = $CheapWaarde + Zoek($val, "cheap");
}
if($HTTPWaarde>4){
$Stop = 1;
$Reden.= "Te veel 'http://' strings
";
}
if($HrefWaarde>1){
$Stop = 1;
$Reden.= "Te veel 'a href=' strings
";
}
if($ViagraWaarde>1){
$Stop = 1;
$Reden.= "Te veel 'viagra' strings
";
}
if($CheapWaarde>1){
$Stop = 1;
$Reden.= "Te veel 'cheap' strings
";
}
if($URLWaarde>0){
$Stop = 1;
$Reden.= "Te veel '[url=' strings
";
}
if(Zoek($_SERVER["HTTP_REFERER"], $_SERVER["HTTP_HOST"])==0){
$Stop=1;
$Reden.= "Vanaf een ander domein '".$_SERVER["HTTP_REFERER"]."'";
}
return $Stop;
}
?>
/**************************************************************************************
Deze module regelt de afhandeling van afbeeldingen. De afbeeldingen worden hier met de
juiste grootte opgeslagen en krijgen eventueel nog een tekst mee die rechtsonder wordt
geplaatst.
***************************************************************************************/
function resizer_main($w, $h, $BestandNaam, $JPGkwaliteit, $VeldNaam, $Tekst = ""){
$use_imagecreatetruecolor = true;
$use_imagecopyresampled =true;
$image_name = $_FILES [$VeldNaam]["name"];
$image = $_FILES [$VeldNaam]["tmp_name"];
if(trim($image) == "" || trim($image) =="none"){
return false;
}
$arr_img = image_from_upload($image);
if( ($arr_img["w"] > $w && $w!=0) || ($arr_img["h"] > $h && $h!=0)){
$wh = get_sizes($arr_img["w"], $arr_img["h"], $w, $h);
$img_res = img_get_resized($arr_img["img"], $arr_img["w"], $arr_img["h"], $wh["w"],$wh["h"], $use_imagecreatetruecolor, $use_imagecopyresampled);
}
else {
$img_res = $arr_img["img"];
}
$file_name = $BestandNaam;
if($arr_img["type"]==1){
imagegif($img_res, $file_name);
}
elseif($arr_img["type"]==2){
ImageJPEG($img_res, $file_name, $JPGkwaliteit);
}
if($w>(strlen($Tekst)*6) && $Tekst!="" && $arr_img["type"]==2){
$image = PlaatsTekst($file_name, $Tekst);
}
}
function PlaatsTekst($afbeelding, $Tekst){
// Haal plaatje op dat als achtergrond moet dienen.
$plaatje = imagecreatefromjpeg($afbeelding);
$w = imagesx($plaatje);
$h = imagesy($plaatje);
$BreedteTekst = strlen($Tekst)*6;
$HoogteTekst = 15;
$PositieX = $w - $BreedteTekst;
$PositieY = $h - $HoogteTekst;
// Maak een nieuw plaatje aan om de tekst in te plaatsen, deze plaatsen we straks op het
// hierboven geladen plaatje.
$plaatjetxt = imagecreate($BreedteTekst,$HoogteTekst);
// Set de kleuren wit en zwart voor het ingeladen plaatje.
$white = imagecolorallocate($plaatje, 255,255,255);
$black = imagecolorallocate($plaatje, 1,1,1);
// Set de kleuren wit en zwart voor het nieuw gemaakte plaatje.
$whitetxt = imagecolorallocate($plaatjetxt, 255,255,255);
$blacktxt = imagecolorallocate($plaatjetxt, 1,1,1);
// Stel het te gebruiken lettertype in, het gekozen lettertype moet natuurlijk wel in de
// map staan waarin dit bestand thuishoort!
// Stel de tekst in die moet worden toegevoegd aan het plaatje.
$txt = $Tekst;
// Voeg de tekst toe aan het nieuw gemaakte plaatje. Stel ook kleur en positie hier in.
$textcolor = imagecolorallocate($plaatjetxt, 1, 1, 1);
// write the string at the top left
imagestring($plaatjetxt, 2, 0, 0, $txt, $textcolor);
// Stel in welke kleur transperant moet worden op het nieuw gemaakte plaatje met tekst.
// LET OP: Deze moet dus gelijk zijn aan de kleur die is ingesteld bij $whitetxt!!!
imagecolortransparent($plaatjetxt,imagecolorexact($plaatjetxt,255,255,255));
// Zoek de hoogte en breedte van het nieuw gemaakte plaatje
$insert_x = imagesx($plaatjetxt);
$insert_y = imagesy($plaatjetxt);
// Voeg nieuw gemaakte plaatje ($plaatjetxt) en het bestaande plaatje ($plaatje) samen.
// Denk eraan dat het bestaande plaatje eerst moet!
imagecopymerge($plaatje,$plaatjetxt,$PositieX,$PositieY,0,0,$insert_x,$insert_y,100);
$TempNaam = time().$_SESSION["SES_MedewerkerId"];
// Maak van het plaatje een jpg afbeelding en geef kwaliteit op.
imagejpeg($plaatje,$afbeelding,100);
imagedestroy($plaatje);
}
function resizer_mainMeer($w, $h, $BestandNaam, $JPGkwaliteit, $Object, $Tekst = ""){
$use_imagecreatetruecolor = true;
$use_imagecopyresampled =true;
$image_name = $Object["name"];
$image = $Object["tmp_name"];
if(trim($image) == "" || trim($image) =="none"){
return false;
}
$arr_img = image_from_upload($image);
if( ($arr_img["w"] > $w && $w!=0) || ($arr_img["h"] > $h && $h!=0)){
$wh = get_sizes($arr_img["w"], $arr_img["h"], $w, $h);
$img_res = img_get_resized($arr_img["img"], $arr_img["w"], $arr_img["h"], $wh["w"],$wh["h"], $use_imagecreatetruecolor, $use_imagecopyresampled);
}
else {
$img_res = $arr_img["img"];
}
$file_name = $BestandNaam;
if($arr_img["type"]==1){
imagegif($img_res, $file_name);
}
elseif($arr_img["type"]==2){
ImageJPEG($img_res, $file_name, $JPGkwaliteit);
}
if($w>(strlen($Tekst)*6) && $Tekst!=""){
$image = PlaatsTekst($file_name, $Tekst);
}
}
function image_from_upload($uploaded_file){
$img_sz = getimagesize( $uploaded_file );
switch( $img_sz[2] ){
case 1:
$img_type = "GIF";
$img = ImageCreateFromGif($uploaded_file);
break;
case 2:
$img = ImageCreateFromJpeg($uploaded_file);
$img_type = "JPG";
break;
case 3:
$img = ImageCreateFromPng($uploaded_file);
$img_type = "PNG";
break;
case 4:
$img = ImageCreateFromSwf($uploaded_file);
$img_type = "SWF";
break;
default: die("
Het spijt ons momenteel wordt het door u gekozen bestand type nog niet ondersteund door dit systeem van Bratpack.");
}//case
return array("img"=>$img, "w"=>$img_sz[0], "h"=>$img_sz[1], "type"=>$img_sz[2], "html"=>$img_sz[3]);
}
function get_sizes($src_w, $src_h, $dst_w,$dst_h ){
//src_w ,src_h-- start width and height
//dst_w ,dst_h-- end width and height
//return array w=>new width h=>new height mlt => multiplier
//the function tries to shrink or enalrge src_w,h in such a way to best fit them into dst_w,h
//keeping x to y ratio unchanged
//dst_w or/and dst_h can be "*" in this means that we dont care about that dimension
//for example if dst_w="*" then we will try to resize by height not caring about width
//(but resizing width in such a way to keep the xy ratio)
//if both = "*" we dont resize at all.
#### Calculate multipliers
$mlt_w = $dst_w / $src_w;
$mlt_h = $dst_h / $src_h;
$mlt = $mlt_w < $mlt_h ? $mlt_w:$mlt_h;
if($dst_w == "0") $mlt = $mlt_h;
if($dst_h == "0") $mlt = $mlt_w;
if($dst_w == "0" && $dst_h == "0") $mlt=1;
#### Calculate new dimensions
$img_new_w = round($src_w * $mlt);
$img_new_h = round($src_h * $mlt);
return array("w" => $img_new_w, "h" => $img_new_h, "mlt_w"=>$mlt_w, "mlt_h"=>$mlt_h, "mlt"=>$mlt);
}
function img_get_resized($img_original,$img_w,$img_h,$img_new_w,$img_new_h,$use_imagecreatetruecolor=false, $use_imagecopyresampled=false){
//$img_original, -- image to be resized
//$img_w, -- its width
//$img_h, -- its height
//$img_new_w, -- resized width
//$img_new_h -- height
//$use_imagecreatetruecolor, $use_imagecopyresampled allow use of these function
//if they exist on the server
if( $use_imagecreatetruecolor && function_exists("imagecreatetruecolor")){
if( function_exists("imagecreatetruecolor") && $_SERVER["SERVER_NAME"]!="webserver"){
$img_resized = imagecreatetruecolor($img_new_w,$img_new_h) or die("
Failed to create destination image.");
} else {
$img_resized = imagecreate($img_new_w,$img_new_h) or die("
Failed to create destination image.");
}
}
if($_SERVER["SERVER_NAME"]!="webserver"){
if($use_imagecopyresampled && function_exists("imagecopyresampled")){
imagecopyresampled($img_resized, $img_original, 0, 0, 0, 0,$img_new_w, $img_new_h, $img_w,$img_h) or die("
Failed to resize @ ImageCopyResampled()");
}
else{
imagecopyresized($img_resized, $img_original, 0, 0, 0, 0,$img_new_w, $img_new_h, $img_w,$img_h) or die("
Failed to resize @ ImageCopyResized()");
}
}
return $img_resized;
}
?>
/**************************************************************************************
Hierin staan alle functies die iets met een bestand van doen hebben.
***************************************************************************************/
function KlantVerkennerDirectory(){
$Return = GLB_RootDir."Zelf//";
return $Return;
}
function KlantVerkennerDirectoryURL(){
$Return = URLBestand(GLB_RootDir)."Zelf/";
return $Return;
}
/**************************************************************************************
Hieronder is het kopieren van een bestand geregeld, maar ook het verplaatsen.
***************************************************************************************/
function BestandBestaat($Bestand){
if(file_exists($Bestand) && $Bestand!="" && !is_dir($Bestand)){
$Return = -1;
}
else{
$Return = 0;
}
return $Return;
}
function KopieerBestand($BestandVan, $BestandNaar){
copy($BestandVan, $BestandNaar);
}
function VerplaatsUploadedBestand($Bestand, $BestandNaar){
move_uploaded_file($Bestand, $BestandNaar);
}
/**************************************************************************************
Hieronder zijn een aantal functies die meer te doen hebben met de bestand naam.
***************************************************************************************/
function VerwijderExtensie($Bestand){
$Temp = Splitsen($Bestand, ".");
$Return = ZoekEnVervang($Bestand, ".".$Temp[count($Temp)-1],"");
return VerwijderLeestekens($Return);
}
function GeefExtensie($Bestand){
$Temp = Splitsen($Bestand, ".");
$Return = $Temp[count($Temp)-1];
return $Return;
}
function GeefBestand($BestandPlusDirectory){
$Temp = Splitsen($BestandPlusDirectory, "/");
$Return = $Temp[count($Temp)-1];
return $Return;
}
function URLBestand($Bestand, $Id=0){
if($Id==0){
$Id = $_SESSION["SES_KlantId"];
}
$Return = ZoekEnVervang($Bestand, GLB_RootDir, GLB_RootUrl."/Uploaded_files/");
if ($_SERVER['HTTPS'] != "on") {
$Return = "http://".ZoekEnVervang($Return, "http://", "");
}
else{
$Return = "https://".ZoekEnVervang($Return, "http://", "");
}
return $Return;
}
/**************************************************************************************
Dit zijn functies voor de websites
***************************************************************************************/
function BestandVoorSiteThumb($KlantId, $Bestand){
$Bestand = GLB_RootDir."Uploaded_files/".$Bestand;
if(BestandBestaat($Bestand)==-1){
$Bestand = ZoekEnVervang($Bestand, GLB_RootDir."Uploaded_files/", GLB_RootUrl."/Uploaded_files/");
$Bestand = ZoekEnVervang($Bestand, GeefBestand($Bestand), "")."Thumb".GeefBestand($Bestand);
$BestandThumbControle = ZoekEnVervang($Bestand, GLB_RootUrl, GLB_RootDir);
if(BestandBestaat($BestandThumbControle)==-1){
$Return = "http://".ZoekEnVervang($Bestand, "http://", "");
}
$Return = ZoekEnVervang($Return, GLB_Website, GLB_Uploaded);
if ($_SERVER['HTTPS'] == "on") {
$Return = ZoekEnVervang($Return, GLB_Website, GLB_WebsiteHTTPS);
}
}
return $Return;
}
function BestandVoorSite($KlantId, $Bestand){
$Bestand = GLB_RootDir."Uploaded_files/".$Bestand;
if(BestandBestaat($Bestand)==-1){
$Bestand = ZoekEnVervang($Bestand, GLB_RootDir."Uploaded_files/", GLB_RootUrl."/Uploaded_files/");
$Bestand = ZoekEnVervang($Bestand, GeefBestand($Bestand), "")."".GeefBestand($Bestand);
$Return = "http://".ZoekEnVervang($Bestand, "http://", "");
$Return = ZoekEnVervang($Return, GLB_Website, GLB_Uploaded);
if ($_SERVER['HTTPS'] == "on") {
$Return = ZoekEnVervang($Return, GLB_Website, GLB_WebsiteHTTPS);
}
}
return $Return;
}
/**************************************************************************************
einde functies voor de website
***************************************************************************************/
function BestandVerwijderen($Bestand){
if(file_exists($Bestand) && $Bestand!="" && !is_dir($Bestand)){
unlink($Bestand);
}
}
function UploadedFileOpslaan($Naam, $Directory, $GeaccepteerdeTypen, $Breedte = 0, $Hoogte = 0, $Thumb = "", $Tekst = "", $ThumbBreedte = 0){
$GeaccepteerdeTypen = Splitsen($GeaccepteerdeTypen, ",");
if(is_uploaded_file($_FILES[$Naam]['tmp_name'])){
for($i=0;count($GeaccepteerdeTypen)>$i;$i++){
if($_FILES[$Naam]['type']==$GeaccepteerdeTypen[$i]){
$InOrde = -1;
}
}
if($InOrde==-1){
if($Breedte==0 && $Hoogte==0){
$Extensie = GeefExtensie($_FILES[$Naam]['name']);
$BestandVolledig = $Directory.VerwijderLeestekens(VerwijderExtensie($_FILES[$Naam]['name']))." ".time().".".$Extensie;
$Bestand = VerwijderLeestekens(VerwijderExtensie($_FILES[$Naam]['name']))." ".time().".".$Extensie;
move_uploaded_file($_FILES[$Naam]['tmp_name'], $BestandVolledig);
}
else{
$Extensie = GeefExtensie($_FILES[$Naam]['name']);
$Tijd = time();
$BestandVolledig = $Directory.VerwijderLeestekens(VerwijderExtensie($_FILES[$Naam]['name']))." ".$Tijd.".".$Extensie;
$Bestand = VerwijderLeestekens(VerwijderExtensie($_FILES[$Naam]['name']))." ".time().".".$Extensie;
resizer_main($Breedte, $Hoogte, $BestandVolledig, "100", $Naam, $Tekst);
if($Thumb!=""){
$BestandVolledigThumb = $Directory.$Thumb.VerwijderLeestekens(VerwijderExtensie($_FILES[$Naam]['name']))." ".$Tijd.".".$Extensie;
resizer_main($ThumbBreedte, $Hoogte, $BestandVolledigThumb, "100", $Naam);
}
}
}
}
return $Bestand;
}
/**************************************************************************************
Let op met het gebruiken van deze functie, hij verwijderd namelijk echt de gehele directory
inclusief alles wat hierin staat.
***************************************************************************************/
function VerwijderHeleDirectory($dir){
if (is_dir($dir)){
if(substr($dir, strlen($dir)-1,1)!="/"){
$dir.="/";
}
$d = opendir($dir);
while ($file = readdir($d)){
if($file!=".." && $file!="."){
if (is_file($dir.$file)){
unlink($dir.$file);
}
if(is_dir($dir.$file)){
VerwijderHeleDirectory($dir.$file);
}
}
}
closedir($d);
rmdir($dir);
}
}
function ChmodHeleDirectory($dir){
if (is_dir($dir)){
if(substr($dir, strlen($dir)-1,1)!="/"){
$dir.="/";
}
$d = opendir($dir);
while ($file = readdir($d)){
if($file!=".." && $file!="."){
if (is_file($dir.$file)){
chmod($dir.$file, 0777);
}
if(is_dir($dir.$file)){
ChmodHeleDirectory($dir.$file);
}
}
}
closedir($d);
chmod($dir, 0777);
}
}
?>
/**************************************************************************************
In deze module staan een aantal datum en tijd functies. De namen van de functies wijzen
voor zichzelf.
***************************************************************************************/
function HuidigeTijd(){
$Return = Date("H").":".Date("i").":".Date("s");
return $Return;
}
function HuidigeDatum(){
$Return = Date("d")."-".Date("m")."-".Date("Y");
return $Return;
}
function HuidigeDatumTijd(){
$Return = HuidigeDatum()." ".HuidigeTijd();
return $Return;
}
function HuidigeDatumTijdDatabase(){
$Return = DatumNaarDatabase(HuidigeDatum())." ".HuidigeTijd();
return $Return;
}
function DatumUitDatabase($Datum){
if($Datum!="" && $Datum!="0000-00-00"){
$Tijdelijk = explode("-", $Datum);
$Datum = $Tijdelijk[2]."-".$Tijdelijk[1]."-".$Tijdelijk[0];
return $Datum;
}
}
function DatumTijdUitDatabase($DatumTijd){
if($DatumTijd!="" && $DatumTijd!="0000-00-00"){
$Tijd = explode(" ", $DatumTijd);
$Tijdelijk = explode("-", $Tijd[0]);
$DatumTijd = $Tijdelijk[2]."-".$Tijdelijk[1]."-".$Tijdelijk[0]." ".$Tijd[1];
return $DatumTijd;
}
}
function DatumNaarDatabase($Datum){
if($Datum!=""){
$Tijdelijk = explode("-", $Datum);
$Datum = $Tijdelijk[2]."-".$Tijdelijk[1]."-".$Tijdelijk[0];
return $Datum;
}
}
function DatumDagMaandUitDatabase($Datum){
if($Datum!="" && $Datum!="0000-00-00"){
$Tijdelijk = explode("-", $Datum);
$Datum = $Tijdelijk[2]."-".$Tijdelijk[1];
return $Datum;
}
}
function MaandNaam($Datum){
$Temp = Splitsen($Datum, "-");
$MaandNummer = $Temp[1];
switch($MaandNummer){
case 1:
$Return = "Januari";
break;
case 2:
$Return = "Februari";
break;
case 3:
$Return = "Maart";
break;
case 4:
$Return = "April";
break;
case 5:
$Return = "Mei";
break;
case 6:
$Return = "Juni";
break;
case 7:
$Return = "Juli";
break;
case 8:
$Return = "Augustus";
break;
case 9:
$Return = "September";
break;
case 10:
$Return = "Oktober";
break;
case 11:
$Return = "November";
break;
case 12:
$Return = "December";
break;
}
return $Return;
}
function MaandNaamVanuitNummer($Nummer){
switch($Nummer){
case 1:
$Return = "Januari";
break;
case 2:
$Return = "Februari";
break;
case 3:
$Return = "Maart";
break;
case 4:
$Return = "April";
break;
case 5:
$Return = "Mei";
break;
case 6:
$Return = "Juni";
break;
case 7:
$Return = "Juli";
break;
case 8:
$Return = "Augustus";
break;
case 9:
$Return = "September";
break;
case 10:
$Return = "Oktober";
break;
case 11:
$Return = "November";
break;
case 12:
$Return = "December";
break;
}
return $Return;
}
function MaandNaamVanuitNummerEngels($Nummer){
switch($Nummer){
case 1:
$Return = "Januari";
break;
case 2:
$Return = "Februari";
break;
case 3:
$Return = "March";
break;
case 4:
$Return = "April";
break;
case 5:
$Return = "May";
break;
case 6:
$Return = "June";
break;
case 7:
$Return = "July";
break;
case 8:
$Return = "August";
break;
case 9:
$Return = "September";
break;
case 10:
$Return = "October";
break;
case 11:
$Return = "November";
break;
case 12:
$Return = "December";
break;
}
return $Return;
}
function MaandNaamVanuitNummerSpaans($Nummer){
switch($Nummer){
case 1:
$Return = "Enero";
break;
case 2:
$Return = "Febrero";
break;
case 3:
$Return = "Marzo";
break;
case 4:
$Return = "Abril";
break;
case 5:
$Return = "Mayo";
break;
case 6:
$Return = "Junio";
break;
case 7:
$Return = "Julio";
break;
case 8:
$Return = "August";
break;
case 9:
$Return = "Septiembre";
break;
case 10:
$Return = "Octubre";
break;
case 11:
$Return = "Noviembre";
break;
case 12:
$Return = "Diciembre";
break;
}
return $Return;
}
function DagvdWeekVanuitNummer($Nummer){
switch($Nummer){
case 1:
$Return = "Zondag";
break;
case 2:
$Return = "Maandag";
break;
case 3:
$Return = "Dinsdag";
break;
case 4:
$Return = "Woensdag";
break;
case 5:
$Return = "Donderdag";
break;
case 6:
$Return = "Vrijdag";
break;
case 7:
$Return = "Zaterdag";
break;
}
return $Return;
}
?>
/**************************************************************************************
De foutafhandeling kan aangeroepen worden en helpt met de online versie om fouten snel
te registreren.
***************************************************************************************/
function Foutafhandeling($Bericht){
if(GLB_Debug==1){
echo "
".$Bericht."";
}
else{
VerstuurEmail("Frank de Lange
", "Foutmelding", $Bericht, "Bratpack Admin ");
database_query("INSERT INTO Foutafhandeling(fouOmschrijving, fouPagina, fouAanmaak_medewerkerId, fouAanmaak_datum_tijd, fouWijziging_medewerkerId, fouWijziging_datum_tijd) VALUES('".TekstVeldNaarDatabase($Bericht)."', '".TekstVeldNaarDatabase($_SERVER["PHP_SELF"])."', ".HuidigeGebruiker().", '".HuidigeDatumTijdDatabase()."', ".HuidigeGebruiker().", '".HuidigeDatumTijdDatabase()."')");
echo FoutafhandelingPagina();
exit;
}
}
function FoutafhandelingPagina(){
$Return = "Er is een fout opgetreden.
Er wordt automatisch een e-mail naar Bratpack gestuurd en hiermee wordt de fout zo snel mogelijk opgelost. U ontvangt van Bratpack een bericht wanneer de fout is hersteld.
Onze excusses voor het ongemak.";
return $Return;
}
?>
/**************************************************************************************
Hiervan is ook de meeste functionaliteit geleend van een site. Niet moeilijk doen
gewoon onderstaande functie gebruiken en het werkt allemaal prima.
***************************************************************************************/
function VerstuurEmail($To, $Onderwerp = "", $Inhoud = "", $From = "", $BCC = "", $Attachements = "", $AttachementsNamen = "", $Embedded=""){
$Stop = 0;
foreach ($_POST as $key => $val){
$HrefWaarde = $HrefWaarde + Zoek($val, "a href=");
$HTTPWaarde = $HTTPWaarde + Zoek($val, "http://");
$URLWaarde = $URLWaarde + Zoek($val, "[url=");
$ViagraWaarde = $ViagraWaarde + Zoek($val, "viagra");
$CheapWaarde = $CheapWaarde + Zoek($val, "cheap");
}
if($HTTPWaarde>4){
$Stop = 1;
$Reden.= "Te veel 'http://' strings
";
}
if($HrefWaarde>1){
$Stop = 1;
$Reden.= "Te veel 'a href=' strings
";
}
if($ViagraWaarde>1){
$Stop = 1;
$Reden.= "Te veel 'viagra' strings
";
}
if($CheapWaarde>1){
$Stop = 1;
$Reden.= "Te veel 'cheap' strings
";
}
if($URLWaarde>0){
$Stop = 1;
$Reden.= "Te veel '[url=' strings
";
}
if(Zoek($_SERVER["HTTP_REFERER"], $_SERVER["HTTP_HOST"])==0){
//$Stop=1;
$Reden.= "Vanaf een ander domein '".$_SERVER["HTTP_REFERER"]."'";
}
if($Stop==0){
/*
* De klasse initialiseren.
*/
$mail = new htmlMimeMail();
/*
* De To wordt alsvolgt opgebouwd: alle e-mail adressen in een array.
* De BCC wordt alsvolgt opgebouwd: "Bcc: ".$Temp.",\r\n";
*/
if(Zoek($From, "<")>0){//<
$Temp = Splitsen($From, "<");
$ReturnPath = ZoekEnVervang($Temp[1], ">", "");
}
else{
$ReturnPath = $From;
}
$To = array($To);
$mail->setHtml($Inhoud);
$mail->setFrom($From);
$mail->setReturnPath($ReturnPath);
$mail->setSubject($Onderwerp);
if($Attachements!=""){
if(Zoek($Attachements, ";")>0){
$ArrayAttachements = Splitsen($Attachements, ";");
$ArrayAttachementsNamen = Splitsen($AttachementsNamen, ";");
for($i=0;count($ArrayAttachements)>$i;$i++){
if($ArrayAttachementsNamen[$i]!="" && PaginaNaam($ArrayAttachements[$i])!=""){
$mail->addAttachment($mail->getFile($ArrayAttachements[$i]), $ArrayAttachementsNamen[$i]);
}
}
}
}
if($Embedded!=""){
if(Zoek($Embedded, ";")>0){
$ArrayEmbedded = Splitsen($Embedded, ";");
for($i=0;count($ArrayEmbedded)>$i;$i++){
if($ArrayEmbedded[$i]!=""){
$Temp = $mail->getFile($ArrayEmbedded[$i]);
$mail->addHtmlImage($Temp, PaginaNaam($ArrayEmbedded[$i]), 'image/gif');
}
}
}
}
if($BCC!=""){
$BCC = "Bcc: ".$BCC.",\r\n";
}
if($_SERVER["REMOTE_ADDR"]!="213.132.171.21"){
$result = $mail->send($To, $BCC, 'mail');
}
}
else{
if(1==2){
/*
* De klasse initialiseren.
*/
$mail = new htmlMimeMail();
/*
* De To wordt alsvolgt opgebouwd: alle e-mail adressen in een array.
* De BCC wordt alsvolgt opgebouwd: "Bcc: ".$Temp.",\r\n";
*/
if(Zoek($From, "<")>0){//<
$Temp = Splitsen($From, "<");
$ReturnPath = ZoekEnVervang($Temp[1], ">", "");
}
else{
$ReturnPath = $From;
}
$To = array("website@bratpack.nl");
$Inhoud.= $Reden;
$mail->setHtml($Inhoud);
$mail->setFrom($From);
$mail->setReturnPath($ReturnPath);
$mail->setSubject("Spam: ".$Onderwerp);
if($Attachements!=""){
if(Zoek($Attachements, ";")>0){
$ArrayAttachements = Splitsen($Attachements, ";");
$ArrayAttachementsNamen = Splitsen($AttachementsNamen, ";");
for($i=0;count($ArrayAttachements)>$i;$i++){
if($ArrayAttachementsNamen[$i]!="" && PaginaNaam($ArrayAttachements[$i])!=""){
$mail->addAttachment($mail->getFile($ArrayAttachements[$i]), $ArrayAttachementsNamen[$i]);
}
}
}
}
if($Embedded!=""){
if(Zoek($Embedded, ";")>0){
$ArrayEmbedded = Splitsen($Embedded, ";");
for($i=0;count($ArrayEmbedded)>$i;$i++){
if($ArrayEmbedded[$i]!=""){
$Temp = $mail->getFile($ArrayEmbedded[$i]);
$mail->addHtmlImage($Temp, PaginaNaam($ArrayEmbedded[$i]), 'image/gif');
}
}
}
}
if($BCC!=""){
$BCC = "Bcc: ".$BCC.",\r\n";
}
if($_SERVER["REMOTE_ADDR"]!="213.132.171.21"){
$result = $mail->send($To, $BCC, 'mail');
}
}
}
}
function VerstuurEmailTekst($To, $Onderwerp = "", $Inhoud = "", $From = "", $BCC = "", $Attachements = "", $AttachementsNamen = "", $Embedded=""){
/*
* De klasse initialiseren.
*/
$mail = new htmlMimeMail();
/*
* De To wordt alsvolgt opgebouwd: alle e-mail adressen in een array.
* De BCC wordt alsvolgt opgebouwd: "Bcc: ".$Temp.",\r\n";
*/
if(Zoek($From, "<")>0){//<
$Temp = Splitsen($From, "<");
$ReturnPath = ZoekEnVervang($Temp[1], ">", "");
}
else{
$ReturnPath = $From;
}
$To = array($To);
$mail->setText($Inhoud);
$mail->setFrom($From);
$mail->setReturnPath($ReturnPath);
$mail->setSubject($Onderwerp);
if($Attachements!=""){
if(Zoek($Attachements, ";")>0){
$ArrayAttachements = Splitsen($Attachements, ";");
$ArrayAttachementsNamen = Splitsen($AttachementsNamen, ";");
for($i=0;count($ArrayAttachements)>$i;$i++){
if($ArrayAttachementsNamen[$i]!="" && PaginaNaam($ArrayAttachements[$i])!=""){
$mail->addAttachment($mail->getFile($ArrayAttachements[$i]), $ArrayAttachementsNamen[$i]);
}
}
}
}
if($Embedded!=""){
if(Zoek($Embedded, ";")>0){
$ArrayEmbedded = Splitsen($Embedded, ";");
for($i=0;count($ArrayEmbedded)>$i;$i++){
if($ArrayEmbedded[$i]!=""){
$Temp = $mail->getFile($ArrayEmbedded[$i]);
$mail->addHtmlImage($Temp, PaginaNaam($ArrayEmbedded[$i]), 'image/gif');
}
}
}
}
if($BCC!=""){
$BCC = "Bcc: ".$BCC.",\r\n";
}
$result = $mail->send($To, $BCC, 'mail');
}
class Mail_mimePart {
/**
* The encoding type of this part
* @var string
*/
var $_encoding;
/**
* An array of subparts
* @var array
*/
var $_subparts;
/**
* The output of this part after being built
* @var string
*/
var $_encoded;
/**
* Headers for this part
* @var array
*/
var $_headers;
/**
* The body of this part (not encoded)
* @var string
*/
var $_body;
/**
* Constructor.
*
* Sets up the object.
*
* @param $body - The body of the mime part if any.
* @param $params - An associative array of parameters:
* content_type - The content type for this part eg multipart/mixed
* encoding - The encoding to use, 7bit, 8bit, base64, or quoted-printable
* cid - Content ID to apply
* disposition - Content disposition, inline or attachment
* dfilename - Optional filename parameter for content disposition
* description - Content description
* charset - Character set to use
* @access public
*/
function Mail_mimePart($body = '', $params = array())
{
if (!defined('MAIL_MIMEPART_CRLF')) {
define('MAIL_MIMEPART_CRLF', defined('MAIL_MIME_CRLF') ? MAIL_MIME_CRLF : "\r\n", TRUE);
}
foreach ($params as $key => $value) {
switch ($key) {
case 'content_type':
$headers['Content-Type'] = $value . (isset($charset) ? '; charset="' . $charset . '"' : '');
break;
case 'encoding':
$this->_encoding = $value;
$headers['Content-Transfer-Encoding'] = $value;
break;
case 'cid':
$headers['Content-ID'] = '<' . $value . '>';
break;
case 'disposition':
$headers['Content-Disposition'] = $value . (isset($dfilename) ? '; filename="' . $dfilename . '"' : '');
break;
case 'dfilename':
if (isset($headers['Content-Disposition'])) {
$headers['Content-Disposition'] .= '; filename="' . $value . '"';
} else {
$dfilename = $value;
}
break;
case 'description':
$headers['Content-Description'] = $value;
break;
case 'charset':
if (isset($headers['Content-Type'])) {
$headers['Content-Type'] .= '; charset="' . $value . '"';
} else {
$charset = $value;
}
break;
}
}
// Default content-type
if (!isset($headers['Content-Type'])) {
$headers['Content-Type'] = 'text/plain';
}
//Default encoding
if (!isset($this->_encoding)) {
$this->_encoding = '7bit';
}
// Assign stuff to member variables
$this->_encoded = array();
$this->_headers = $headers;
$this->_body = $body;
}
/**
* encode()
*
* Encodes and returns the email. Also stores
* it in the encoded member variable
*
* @return An associative array containing two elements,
* body and headers. The headers element is itself
* an indexed array.
* @access public
*/
function encode()
{
$encoded =& $this->_encoded;
if (!empty($this->_subparts)) {
srand((double)microtime()*1000000);
$boundary = '=_' . md5(uniqid(rand()) . microtime());
$this->_headers['Content-Type'] .= ';' . MAIL_MIMEPART_CRLF . "\t" . 'boundary="' . $boundary . '"';
// Add body parts to $subparts
for ($i = 0; $i < count($this->_subparts); $i++) {
$headers = array();
$tmp = $this->_subparts[$i]->encode();
foreach ($tmp['headers'] as $key => $value) {
$headers[] = $key . ': ' . $value;
}
$subparts[] = implode(MAIL_MIMEPART_CRLF, $headers) . MAIL_MIMEPART_CRLF . MAIL_MIMEPART_CRLF . $tmp['body'];
}
$encoded['body'] = '--' . $boundary . MAIL_MIMEPART_CRLF .
implode('--' . $boundary . MAIL_MIMEPART_CRLF, $subparts) .
'--' . $boundary.'--' . MAIL_MIMEPART_CRLF;
} else {
$encoded['body'] = $this->_getEncodedData($this->_body, $this->_encoding) . MAIL_MIMEPART_CRLF;
}
// Add headers to $encoded
$encoded['headers'] =& $this->_headers;
return $encoded;
}
/**
* &addSubPart()
*
* Adds a subpart to current mime part and returns
* a reference to it
*
* @param $body The body of the subpart, if any.
* @param $params The parameters for the subpart, same
* as the $params argument for constructor.
* @return A reference to the part you just added. It is
* crucial if using multipart/* in your subparts that
* you use =& in your script when calling this function,
* otherwise you will not be able to add further subparts.
* @access public
*/
function &addSubPart($body, $params)
{
$this->_subparts[] = new Mail_mimePart($body, $params);
return $this->_subparts[count($this->_subparts) - 1];
}
/**
* _getEncodedData()
*
* Returns encoded data based upon encoding passed to it
*
* @param $data The data to encode.
* @param $encoding The encoding type to use, 7bit, base64,
* or quoted-printable.
* @access private
*/
function _getEncodedData($data, $encoding)
{
switch ($encoding) {
case '8bit':
case '7bit':
return $data;
break;
case 'quoted-printable':
return $this->_quotedPrintableEncode($data);
break;
case 'base64':
return rtrim(chunk_split(base64_encode($data), 76, MAIL_MIMEPART_CRLF));
break;
default:
return $data;
}
}
/**
* quoteadPrintableEncode()
*
* Encodes data to quoted-printable standard.
*
* @param $input The data to encode
* @param $line_max Optional max line length. Should
* not be more than 76 chars
*
* @access private
*/
function _quotedPrintableEncode($input , $line_max = 76)
{
$lines = preg_split("/\r?\n/", $input);
$eol = MAIL_MIMEPART_CRLF;
$escape = '=';
$output = '';
while(list(, $line) = each($lines)){
$linlen = strlen($line);
$newline = '';
for ($i = 0; $i < $linlen; $i++) {
$char = substr($line, $i, 1);
$dec = ord($char);
if (($dec == 32) AND ($i == ($linlen - 1))){ // convert space at eol only
$char = '=20';
} elseif($dec == 9) {
; // Do nothing if a tab.
} elseif(($dec == 61) OR ($dec < 32 ) OR ($dec > 126)) {
$char = $escape . strtoupper(sprintf('%02s', dechex($dec)));
}
if ((strlen($newline) + strlen($char)) >= $line_max) { // MAIL_MIMEPART_CRLF is not counted
$output .= $newline . $escape . $eol; // soft line break; " =\r\n" is okay
$newline = '';
}
$newline .= $char;
} // end of for
$output .= $newline . $eol;
}
$output = substr($output, 0, -1 * strlen($eol)); // Don't want last crlf
return $output;
}
} // End of class
class htmlMimeMail
{
/**
* The html part of the message
* @var string
*/
var $html;
/**
* The text part of the message(only used in TEXT only messages)
* @var string
*/
var $text;
/**
* The main body of the message after building
* @var string
*/
var $output;
/**
* The alternative text to the HTML part (only used in HTML messages)
* @var string
*/
var $html_text;
/**
* An array of embedded images/objects
* @var array
*/
var $html_images;
/**
* An array of recognised image types for the findHtmlImages() method
* @var array
*/
var $image_types;
/**
* Parameters that affect the build process
* @var array
*/
var $build_params;
/**
* Array of attachments
* @var array
*/
var $attachments;
/**
* The main message headers
* @var array
*/
var $headers;
/**
* Whether the message has been built or not
* @var boolean
*/
var $is_built;
/**
* The return path address. If not set the From:
* address is used instead
* @var string
*/
var $return_path;
/**
* Array of information needed for smtp sending
* @var array
*/
var $smtp_params;
/**
* Constructor function. Sets the headers
* if supplied.
*/
function htmlMimeMail()
{
/**
* Initialise some variables.
*/
$this->html_images = array();
$this->headers = array();
$this->is_built = false;
/**
* If you want the auto load functionality
* to find other image/file types, add the
* extension and content type here.
*/
$this->image_types = array(
'gif' => 'image/gif',
'jpg' => 'image/jpeg',
'jpeg' => 'image/jpeg',
'jpe' => 'image/jpeg',
'bmp' => 'image/bmp',
'png' => 'image/png',
'tif' => 'image/tiff',
'tiff' => 'image/tiff',
'swf' => 'application/x-shockwave-flash'
);
/**
* Set these up
*/
$this->build_params['html_encoding'] = 'quoted-printable';
$this->build_params['text_encoding'] = '7bit';
$this->build_params['html_charset'] = 'ISO-8859-1';
$this->build_params['text_charset'] = 'ISO-8859-1';
$this->build_params['head_charset'] = 'ISO-8859-1';
$this->build_params['text_wrap'] = 998;
/**
* Defaults for smtp sending
*/
if (!empty($_SERVER['HTTP_HOST'])) {
$helo = $_SERVER['HTTP_HOST'];
} elseif (!empty($_SERVER['SERVER_NAME'])) {
$helo = $_SERVER['SERVER_NAME'];
} else {
$helo = 'localhost';
}
$this->smtp_params['host'] = 'localhost';
$this->smtp_params['port'] = 25;
$this->smtp_params['helo'] = $helo;
$this->smtp_params['auth'] = false;
$this->smtp_params['user'] = '';
$this->smtp_params['pass'] = '';
/**
* Make sure the MIME version header is first.
*/
$this->headers['MIME-Version'] = '1.0';
}
/**
* This function will read a file in
* from a supplied filename and return
* it. This can then be given as the first
* argument of the the functions
* add_html_image() or add_attachment().
*/
function getFile($filename)
{
$return = '';
if ($fp = fopen($filename, 'rb')) {
while (!feof($fp)) {
$return .= fread($fp, 1024);
}
fclose($fp);
return $return;
} else {
return false;
}
}
/**
* Accessor to set the CRLF style
*/
function setCrlf($crlf = "\n")
{
if (!defined('CRLF')) {
define('CRLF', $crlf, true);
}
if (!defined('MAIL_MIMEPART_CRLF')) {
define('MAIL_MIMEPART_CRLF', $crlf, true);
}
}
/**
* Accessor to set the SMTP parameters
*/
function setSMTPParams($host = null, $port = null, $helo = null, $auth = null, $user = null, $pass = null)
{
if ($host!="") $this->smtp_params['host'] = $host;
if ($port!="") $this->smtp_params['port'] = $port;
if ($helo!="") $this->smtp_params['helo'] = $helo;
if ($auth!="") $this->smtp_params['auth'] = $auth;
if ($user!="") $this->smtp_params['user'] = $user;
if ($pass!="") $this->smtp_params['pass'] = $pass;
}
/**
* Accessor function to set the text encoding
*/
function setTextEncoding($encoding = '7bit')
{
$this->build_params['text_encoding'] = $encoding;
}
/**
* Accessor function to set the HTML encoding
*/
function setHtmlEncoding($encoding = 'quoted-printable')
{
$this->build_params['html_encoding'] = $encoding;
}
/**
* Accessor function to set the text charset
*/
function setTextCharset($charset = 'ISO-8859-1')
{
$this->build_params['text_charset'] = $charset;
}
/**
* Accessor function to set the HTML charset
*/
function setHtmlCharset($charset = 'ISO-8859-1')
{
$this->build_params['html_charset'] = $charset;
}
/**
* Accessor function to set the header encoding charset
*/
function setHeadCharset($charset = 'ISO-8859-1')
{
$this->build_params['head_charset'] = $charset;
}
/**
* Accessor function to set the text wrap count
*/
function setTextWrap($count = 998)
{
$this->build_params['text_wrap'] = $count;
}
/**
* Accessor to set a header
*/
function setHeader($name, $value)
{
$this->headers[$name] = $value;
}
/**
* Accessor to add a Subject: header
*/
function setSubject($subject)
{
$this->headers['Subject'] = $subject;
}
/**
* Accessor to add a From: header
*/
function setFrom($from)
{
$this->headers['From'] = $from;
}
/**
* Accessor to set the return path
*/
function setReturnPath($return_path)
{
$this->return_path = $return_path;
}
/**
* Accessor to add a Cc: header
*/
function setCc($cc)
{
$this->headers['Cc'] = $cc;
}
/**
* Accessor to add a Bcc: header
*/
function setBcc($bcc)
{
$this->headers['Bcc'] = $bcc;
}
/**
* Adds plain text. Use this function
* when NOT sending html email
*/
function setText($text = '')
{
$this->text = $text;
}
/**
* Adds a html part to the mail.
* Also replaces image names with
* content-id's.
*/
function setHtml($html, $text = null, $images_dir = null)
{
$this->html = $html;
$this->html_text = $text;
if (isset($images_dir)) {
$this->_findHtmlImages($images_dir);
}
}
/**
* Function for extracting images from
* html source. This function will look
* through the html code supplied by add_html()
* and find any file that ends in one of the
* extensions defined in $obj->image_types.
* If the file exists it will read it in and
* embed it, (not an attachment).
*
* @author Dan Allen
*/
function _findHtmlImages($images_dir)
{
// Build the list of image extensions
while (list($key,) = each($this->image_types)) {
$extensions[] = $key;
}
preg_match_all('/(?:"|\')([^"\']+\.('.implode('|', $extensions).'))(?:"|\')/Ui', $this->html, $images);
for ($i=0; $ihtml = str_replace($images[1][$i], basename($images[1][$i]), $this->html);
}
}
if (!empty($html_images)) {
// If duplicate images are embedded, they may show up as attachments, so remove them.
$html_images = array_unique($html_images);
sort($html_images);
for ($i=0; $igetFile($images_dir.$html_images[$i])) {
$ext = substr($html_images[$i], strrpos($html_images[$i], '.') + 1);
$content_type = $this->image_types[strtolower($ext)];
$this->addHtmlImage($image, basename($html_images[$i]), $content_type);
}
}
}
}
/**
* Adds an image to the list of embedded
* images.
*/
function addHtmlImage($file, $name = '', $c_type='application/octet-stream')
{
$this->html_images[] = array(
'body' => $file,
'name' => $name,
'c_type' => $c_type,
'cid' => md5(uniqid(time()))
);
}
/**
* Adds a file to the list of attachments.
*/
function addAttachment($file, $name = '', $c_type='application/octet-stream', $encoding = 'base64')
{
$this->attachments[] = array(
'body' => $file,
'name' => $name,
'c_type' => $c_type,
'encoding' => $encoding
);
}
/**
* Adds a text subpart to a mime_part object
*/
function &_addTextPart(&$obj, $text)
{
$params['content_type'] = 'text/plain';
$params['encoding'] = $this->build_params['text_encoding'];
$params['charset'] = $this->build_params['text_charset'];
if (is_object($obj)) {
return $obj->addSubpart($text, $params);
} else {
return new Mail_mimePart($text, $params);
}
}
/**
* Adds a html subpart to a mime_part object
*/
function &_addHtmlPart(&$obj)
{
$params['content_type'] = 'text/html';
$params['encoding'] = $this->build_params['html_encoding'];
$params['charset'] = $this->build_params['html_charset'];
if (is_object($obj)) {
return $obj->addSubpart($this->html, $params);
} else {
return new Mail_mimePart($this->html, $params);
}
}
/**
* Starts a message with a mixed part
*/
function &_addMixedPart()
{
$params['content_type'] = 'multipart/mixed';
return new Mail_mimePart('', $params);
}
/**
* Adds an alternative part to a mime_part object
*/
function &_addAlternativePart(&$obj)
{
$params['content_type'] = 'multipart/alternative';
if (is_object($obj)) {
return $obj->addSubpart('', $params);
} else {
return new Mail_mimePart('', $params);
}
}
/**
* Adds a html subpart to a mime_part object
*/
function &_addRelatedPart(&$obj)
{
$params['content_type'] = 'multipart/related';
if (is_object($obj)) {
return $obj->addSubpart('', $params);
} else {
return new Mail_mimePart('', $params);
}
}
/**
* Adds an html image subpart to a mime_part object
*/
function &_addHtmlImagePart(&$obj, $value)
{
$params['content_type'] = $value['c_type'];
$params['encoding'] = 'base64';
$params['disposition'] = 'inline';
$params['dfilename'] = $value['name'];
$params['cid'] = $value['cid'];
$obj->addSubpart($value['body'], $params);
}
/**
* Adds an attachment subpart to a mime_part object
*/
function &_addAttachmentPart(&$obj, $value)
{
$params['content_type'] = $value['c_type'];
$params['encoding'] = $value['encoding'];
$params['disposition'] = 'attachment';
$params['dfilename'] = $value['name'];
$obj->addSubpart($value['body'], $params);
}
/**
* Builds the multipart message from the
* list ($this->_parts). $params is an
* array of parameters that shape the building
* of the message. Currently supported are:
*
* $params['html_encoding'] - The type of encoding to use on html. Valid options are
* "7bit", "quoted-printable" or "base64" (all without quotes).
* 7bit is EXPRESSLY NOT RECOMMENDED. Default is quoted-printable
* $params['text_encoding'] - The type of encoding to use on plain text Valid options are
* "7bit", "quoted-printable" or "base64" (all without quotes).
* Default is 7bit
* $params['text_wrap'] - The character count at which to wrap 7bit encoded data.
* Default this is 998.
* $params['html_charset'] - The character set to use for a html section.
* Default is ISO-8859-1
* $params['text_charset'] - The character set to use for a text section.
* - Default is ISO-8859-1
* $params['head_charset'] - The character set to use for header encoding should it be needed.
* - Default is ISO-8859-1
*/
function buildMessage($params = array())
{
if (!empty($params)) {
while (list($key, $value) = each($params)) {
$this->build_params[$key] = $value;
}
}
if (!empty($this->html_images)) {
foreach ($this->html_images as $value) {
$this->html = str_replace($value['name'], 'cid:'.$value['cid'], $this->html);
}
}
$null = null;
$attachments = !empty($this->attachments) ? true : false;
$html_images = !empty($this->html_images) ? true : false;
$html = !empty($this->html) ? true : false;
$text = isset($this->text) ? true : false;
switch (true) {
case $text AND !$attachments:
$message = &$this->_addTextPart($null, $this->text);
break;
case !$text AND $attachments AND !$html:
$message = &$this->_addMixedPart();
for ($i=0; $iattachments); $i++) {
$this->_addAttachmentPart($message, $this->attachments[$i]);
}
break;
case $text AND $attachments:
$message = &$this->_addMixedPart();
$this->_addTextPart($message, $this->text);
for ($i=0; $iattachments); $i++) {
$this->_addAttachmentPart($message, $this->attachments[$i]);
}
break;
case $html AND !$attachments AND !$html_images:
if ($this->html_text!="") {
$message = &$this->_addAlternativePart($null);
$this->_addTextPart($message, $this->html_text);
$this->_addHtmlPart($message);
} else {
$message = &$this->_addHtmlPart($null);
}
break;
case $html AND !$attachments AND $html_images:
if ($this->html_text!="") {
$message = &$this->_addAlternativePart($null);
$this->_addTextPart($message, $this->html_text);
$related = &$this->_addRelatedPart($message);
} else {
$message = &$this->_addRelatedPart($null);
$related = &$message;
}
$this->_addHtmlPart($related);
for ($i=0; $ihtml_images); $i++) {
$this->_addHtmlImagePart($related, $this->html_images[$i]);
}
break;
case $html AND $attachments AND !$html_images:
$message = &$this->_addMixedPart();
if ($this->html_text!="") {
$alt = &$this->_addAlternativePart($message);
$this->_addTextPart($alt, $this->html_text);
$this->_addHtmlPart($alt);
} else {
$this->_addHtmlPart($message);
}
for ($i=0; $iattachments); $i++) {
$this->_addAttachmentPart($message, $this->attachments[$i]);
}
break;
case $html AND $attachments AND $html_images:
$message = &$this->_addMixedPart();
if ($this->html_text!="") {
$alt = &$this->_addAlternativePart($message);
$this->_addTextPart($alt, $this->html_text);
$rel = &$this->_addRelatedPart($alt);
} else {
$rel = &$this->_addRelatedPart($message);
}
$this->_addHtmlPart($rel);
for ($i=0; $ihtml_images); $i++) {
$this->_addHtmlImagePart($rel, $this->html_images[$i]);
}
for ($i=0; $iattachments); $i++) {
$this->_addAttachmentPart($message, $this->attachments[$i]);
}
break;
}
if (isset($message)) {
$output = $message->encode();
$this->output = $output['body'];
$this->headers = array_merge($this->headers, $output['headers']);
// Add message ID header
srand((double)microtime()*10000000);
$message_id = sprintf('<%s.%s@%s>', base_convert(time(), 10, 36), base_convert(rand(), 10, 36), !empty($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME']);
$this->headers['Message-ID'] = $message_id;
$this->is_built = true;
return true;
} else {
return false;
}
}
/**
* Function to encode a header if necessary
* according to RFC2047
*/
function _encodeHeader($input, $charset = 'ISO-8859-1')
{
preg_match_all('/(\w*[\x80-\xFF]+\w*)/', $input, $matches);
foreach ($matches[1] as $value) {
$replacement = preg_replace('/([\x80-\xFF])/e', '"=" . strtoupper(dechex(ord("\1")))', $value);
$input = str_replace($value, '=?' . $charset . '?Q?' . $replacement . '?=', $input);
}
return $input;
}
/**
* Sends the mail.
*
* @param array $recipients
* @param string $type OPTIONAL
* @return mixed
*/
function send($recipients, $BCC, $type = 'mail')
{
if (!defined('CRLF')) {
$this->setCrlf($type == 'mail' ? "\n" : "\r\n");
}
if (!$this->is_built) {
$this->buildMessage();
}
switch ($type) {
case 'mail':
$subject = '';
if (!empty($this->headers['Subject'])) {
$subject = $this->_encodeHeader($this->headers['Subject'], $this->build_params['head_charset']);
unset($this->headers['Subject']);
}
// Get flat representation of headers
foreach ($this->headers as $name => $value) {
$headers[] = $name . ': ' . $this->_encodeHeader($value, $this->build_params['head_charset']);
}
if($BCC!="leeg"){
$headers[] = $BCC;
}
$to = $this->_encodeHeader(implode(', ', $recipients), $this->build_params['head_charset']);
if (!empty($this->return_path)) {
$result = mail($to, $subject, $this->output, implode(CRLF, $headers), '-f' . $this->return_path);
} else {
$result = mail($to, $subject, $this->output, implode(CRLF, $headers));
}
// Reset the subject in case mail is resent
if ($subject !== '') {
$this->headers['Subject'] = $subject;
}
// Return
return $result;
break;
case 'smtp':
require_once(dirname(__FILE__) . '/smtp.php');
require_once(dirname(__FILE__) . '/RFC822.php');
$smtp = &smtp::connect($this->smtp_params);
// Parse recipients argument for internet addresses
foreach ($recipients as $recipient) {
$addresses = Mail_RFC822::parseAddressList($recipient, $this->smtp_params['helo'], null, false);
foreach ($addresses as $address) {
$smtp_recipients[] = sprintf('%s@%s', $address->mailbox, $address->host);
}
}
unset($addresses); // These are reused
unset($address); // These are reused
// Get flat representation of headers, parsing
// Cc and Bcc as we go
foreach ($this->headers as $name => $value) {
if ($name == 'Cc' OR $name == 'Bcc') {
$addresses = Mail_RFC822::parseAddressList($value, $this->smtp_params['helo'], null, false);
foreach ($addresses as $address) {
$smtp_recipients[] = sprintf('%s@%s', $address->mailbox, $address->host);
}
}
if ($name == 'Bcc') {
continue;
}
$headers[] = $name . ': ' . $this->_encodeHeader($value, $this->build_params['head_charset']);
}
// Add To header based on $recipients argument
$headers[] = 'To: ' . $this->_encodeHeader(implode(', ', $recipients), $this->build_params['head_charset']);
// Add headers to send_params
$send_params['headers'] = $headers;
$send_params['recipients'] = array_values(array_unique($smtp_recipients));
$send_params['body'] = $this->output;
// Setup return path
if (isset($this->return_path)) {
$send_params['from'] = $this->return_path;
} elseif (!empty($this->headers['From'])) {
$from = Mail_RFC822::parseAddressList($this->headers['From']);
$send_params['from'] = sprintf('%s@%s', $from[0]->mailbox, $from[0]->host);
} else {
$send_params['from'] = 'postmaster@' . $this->smtp_params['helo'];
}
// Send it
if (!$smtp->send($send_params)) {
$this->errors = $smtp->errors;
return false;
}
return true;
break;
}
}
/**
* Use this method to return the email
* in message/rfc822 format. Useful for
* adding an email to another email as
* an attachment. there's a commented
* out example in example.php.
*/
function getRFC822($recipients)
{
// Make up the date header as according to RFC822
$this->setHeader('Date', date('D, d M y H:i:s O'));
if (!defined('CRLF')) {
$this->setCrlf($type == 'mail' ? "\n" : "\r\n");
}
if (!$this->is_built) {
$this->buildMessage();
}
// Return path ?
if (isset($this->return_path)) {
$headers[] = 'Return-Path: ' . $this->return_path;
}
// Get flat representation of headers
foreach ($this->headers as $name => $value) {
$headers[] = $name . ': ' . $value;
}
$headers[] = 'To: ' . implode(', ', $recipients);
return implode(CRLF, $headers) . CRLF . CRLF . $this->output;
}
} // End of class.
?>
function BasisControle(){
foreach($_GET as $key => $value) {
if(substr($key,(strlen($key)-2),2)=="Id"){
if(isset($_GET[$key])){
if(!is_numeric($_GET[$key]) && $_GET[$key]!="" && $_GET[$key]!=" " && !is_array($_GET[$key])){
$_GET[$key]= VerwijderAllesBehalveGetallen($_GET[$key]);
VerstuurEmail("Frank de Lange ", "Verkeerde get waarde op ".$_SERVER["SERVER_NAME"], "Variabele: ".$key.", met waarde ".$value." op pagina ".$_SERVER["REQUEST_URI"]." klopt niet. IP ".$_SERVER["REMOTE_ADDR"], "info@bratpack.nl");
if(Zoek($value, ";")>0 || Zoek($value, "DELETE")>0 || Zoek($value, "INSERT")>0 || Zoek($value, "SELECT")>0 || Zoek($value, "UPDATE")>0 || Zoek($value, "UNION")>0 || Zoek($value, "LOAD")>0){
VerstuurEmail("Frank de Lange ", "Verkeerde post waarde op ".$_SERVER["SERVER_NAME"], "Variabele: ".$key.", met waarde ".$value." op pagina ".$_SERVER["REQUEST_URI"]." klopt niet. IP ".$_SERVER["REMOTE_ADDR"], "error@bratpack.nl");
}
}
}
}
}
foreach($_POST as $key => $value) {
if(substr($key,(strlen($key)-2),2)=="Id"){
if(isset($_POST[$key])){
if(!is_numeric($_POST[$key]) && $_POST[$key]!="" && $_POST[$key]!=" " && !is_array($_POST[$key])){
$_POST[$key]= VerwijderAllesBehalveGetallen($_POST[$key]);
VerstuurEmail("Frank de Lange ", "Verkeerde post waarde op ".$_SERVER["SERVER_NAME"], "Variabele: ".$key.", met waarde ".$value." op pagina ".$_SERVER["REQUEST_URI"]." klopt niet. IP ".$_SERVER["REMOTE_ADDR"], "error@bratpack.nl");
if(Zoek($value, ";")>0 || Zoek($value, "DELETE")>0 || Zoek($value, "INSERT")>0 || Zoek($value, "SELECT")>0 || Zoek($value, "UPDATE")>0 || Zoek($value, "UNION")>0 || Zoek($value, "LOAD")>0){
VerstuurEmail("Frank de Lange ", "Verkeerde post waarde op ".$_SERVER["SERVER_NAME"], "Variabele: ".$key.", met waarde ".$value." op pagina ".$_SERVER["REQUEST_URI"]." klopt niet. IP ".$_SERVER["REMOTE_ADDR"], "error@bratpack.nl");
}
}
}
}
}
}
function VerwijderAllesBehalveGetallen($Invoer){
if($_SERVER["SERVER_NAME"]!="webserver"){
$Invoer = html_entity_decode($Invoer,ENT_QUOTES);
}
for($i=33;48>$i;$i++){
$Invoer = ZoekEnVervang($Invoer, chr($i), "");
}
for($i=58;255>$i;$i++){
$Invoer = ZoekEnVervang($Invoer, chr($i), "");
}
$Invoer = ZoekEnVervang($Invoer, " ", "");
return $Invoer;
}
?>