.inc.php $card_language = ""; // Font settings to use $card_font_errors = ''; $card_font_mask = ''; $card_font_card = ''; // Configuration - you better don't change (better use fxcard_settings.inc.php) /////////////////////////////////////////////////////////////////////////////// // After how many days shall fxCARDs be deleted / shall they expire .. 0 = never expire $card_expiration = 14; // EMail address funcards are sent from - leave it empty to use the sender's address $card_mail_from = ""; // Basisname des Verzeichnises für die fxCARDs. It will get a suffix for security reasons. $card_directorybase = "gxcards"; // Actual name of the script $card_scriptname = "fxcard.php"; // Absolute internet address of the PHP script. This should work as it is, so only // change this if you REALLY know what you are doing. $card_scriptlocation = "http://".$_SERVER["SERVER_NAME"].$_SERVER["PHP_SELF"]; /////////////////////////////////////////// // DO NOT MAKE CHANGES BELOW THIS LINE!! // /////////////////////////////////////////// if (file_exists("fxcard_settings.inc.php")) { include ("fxcard_settings.inc.php"); /* Datei wird eingelesen und ausgewertet, wenn sie existiert. */ } if (!file_exists("fxcard_code.inc.php")) /* wenn Datei nicht existiert */ { $randid=md5(rand().time().microtime().$card_scriptlocation); /* wird verschlüsselte Zufallszeichenkette erzeugt */ if ($outfh=fopen("fxcard_code.inc.php","wb")) /* wenn öffnen und löschen oder erzeugen Datei -> var erfolgreich */ { fputs($outfh,""); /* schreiben der verschl. Zufallszeichenkette in die Datei */ fclose($outfh); /* schließen der Datei */ } else /* ansonsten */ { print "Error 001: Could not create file 'fxcard_code.inc.php' - aborting .."; /* Fehlermeldung und */ exit; /* Script beenden */ } } if (file_exists("fxcard_code.inc.php")) /* wenn Datei existiert */ { require ("fxcard_code.inc.php"); /* einlesen und auswerten (= variable setzen) */ } else /* ansonsten */ { print "Error 002: Could not open file 'fxcard_code.inc.php' - aborting .."; /* Fehlermeldung und */ exit; /* Script beenden */ } $card_directory = $card_directorybase."_".$card_encid; /* Kartenverz name zusammensetzen und in var ablegen */ $card_directoryslash = $card_directory."/"; /* basispfad für hinterlegte Datei zusammensetzen und in var ablegen */ if (!file_exists($card_directory)) /* wenn File nicht existiert nächste Zeile ausführen */ { if (!mkdir($card_directory,02770)) /* wenn File erzeugen nicht erfolgreich, */ { print "Error 003: Could not create directory '".$card_directory."' - aborting .."; /* Fehlermeldung und */ exit; /* Script beenden */ } } /* FUNCTIONS Funktionsdefinitionen */ function card_get_filename($card_id) /* macht aus der übergebenen Bildnummer den Filenamen (var $card_id) für das Bild */ { $card_id /= 1; /* $card_id wenn nicht existent Wert 0, ansonsten alten Wert zuweisen (Wert wird durch 1 geteilt) */ if (file_exists(sprintf("%06ld.jpg",$card_id))) { return (sprintf("%06ld.jpg",$card_id)); } if (file_exists(sprintf("%06ld.png",$card_id))) { return (sprintf("%06ld.png",$card_id)); } if (file_exists(sprintf("th%06ld.jpg",$card_id))) { return (sprintf("th%06ld.jpg",$card_id)); } if (file_exists(sprintf("th%06ld.png",$card_id))) { return (sprintf("th%06ld.png",$card_id)); } return(0); /* Wenn keine der 4 eben abgefragten Dateien existiert, wird $card_id zwecks Fehlermeld unten auf 0 gesetzt Z:409 */ } function card_str_enc($cont) /* verschlüsselt Zeichenkette durch Buchstabentausch */ { $fr_tab = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; /* Ausgangsbuchstabenliste */ $to_tab = 'nopqrstuvwxyzabcdefghijklmNOPQRSTUVWXYZABCDEFGHIJKLM'; /* vertauschte Buchstaben */ return (strtr($cont, $fr_tab, $to_tab)); /* gibt die verschlüsselte Zeichenkette zurück */ } function card_get_line($handle) { $ln = fgets($handle); $ln = eregi_replace("\n","",$ln); $ln = eregi_replace("\r","",$ln); $ln = card_str_enc($ln); return ($ln); } /* LANUAGE DATA */ if (!strlen($card_language)) { if ($HTTP_SERVER_VARS["HTTP_ACCEPT_LANGUAGE"]) { if ($prefs_langs = explode (",", $HTTP_SERVER_VARS["HTTP_ACCEPT_LANGUAGE"])) { $lang_cnt = count($prefs_langs); for ($i=0;$i<$lang_cnt;$i++) { if (!$card_language) { $chklng = trim(array_shift(explode("-",array_shift(explode(";",array_shift($prefs_langs)))))); switch ($chklng) { case "de": case "en": $card_language=$chklng; break; default: if (quotemeta($chklng)==$chklng) { if (file_exists("fxcard_lang_".quotemeta($chklng).".inc.php")) { $card_language=$chklng; } } break; } } } } } } switch ($card_language) { case "de": $card_lastr = array( "yourname" => "Dein Name", "youremail" => "Deine eMail-Adresse", "destname" => "Empfängername", "destemail" => "Empfängeremail", "message" => "Nachricht", "destemail" => "Empfängeremail", "message" => "Nachricht", "err_yourname" => "Du hast Deinen Namen nicht angegeben.", "err_youremail" => "Du hast Deine eMail-Adresse nicht angegeben.", "err_destname" => "Du hast keinen Empfängernamen angegeben.", "err_destemail" => "Du hast keine Empfängeremail angegeben.", "err_message" => "Du hast keine Nachricht eingegeben.", "send" => "Abschicken", "cardforyou" => "GALAXIS-Grußkarte für Dich!", "cardsent" => "Die Grußkarte wurde soeben an %s verschickt. Vielen Dank für die Nutzung unseres Services.", "cardcont" => "Hallo!\n\nFür %s liegt unter\n\n%s\n\neine Grußkarte von %s zur Abholung bereit!\n\nViel Spaß!", "nosend" => "Deine Grußkarte konnte leider nicht verschickt werden. Versuche es bitte später noch einmal.", "cardpresent" => "%s hat an %s folgenden Gruß versandt:", "carddelivered" => "Die Grußkarte von %s an %s wurde soeben abgeholt.", "carddelivery" => "Grußkarten-Zustellung"); break; default: if (file_exists("fxcard_lang_".$card_language.".inc.php")) { require ("fxcard_lang_".$card_language.".inc.php"); if ($card_lastr_version >= 1) { break; } } case "en": $card_lastr = array( "yourname" => "Your Name", "youremail" => "Your eMail-address", "destname" => "Recipient name", "destemail" => "Recipient email", "message" => "Message", "err_yourname" => "You didn't give your name.", "err_youremail" => "You didn't give your email-address.", "err_destname" => "You didn't give a recipient name.", "err_destemail" => "You didn't give a recipient email-address.", "err_message" => "You didn't give a message.", "send" => "Send", "cardforyou" => "fxCARD for you!", "cardsent" => "The fxCARD has just been sent to %s. Thanks a lot for using our service.", "cardcont" => "Hello!\n\nFor %s a fxCARD is available at:\n\n%s\n\nThe card has been sent by %s\n\nEnjoy!", "nosend" => "Your fxCARD couldn't be delivered. Please try again, later.\n", "cardpresent" => "%s has send the following message to %s:", "carddelivered" => "The fxCARD from %s to %s has just been delivered.", "carddelivery" => "fxCARD delivery"); break; } if (file_exists($card_header)) /* wenn alternative Kopfdatei existiert */ { include ($card_header); /* öffnen und auswerten bzw. anzeigen? */ } else /* ansonsten folgenden Dateikopf verwenden */ { ?> fxCARD
'."\n"; print "

\n"; print $card_font_mask.sprintf( $card_lastr['cardpresent'], $file_from_name.' ('.$file_from_email.')', $file_to_name. ' (' .$file_to_email. ')')."
"; print "

\n"; print $card_font_card.$file_to_message."
"; if (!file_exists($card_directoryslash.$card_id."_done.php")) { mail( $file_from_email, $card_sitename." - ".$card_lastr['carddelivery'], sprintf($card_lastr['carddelivered'], $file_from_name." (".$file_from_email.")", $file_to_name." (".$file_to_email.")"), "From: ".($card_mail_from?$card_mail_from:$file_to_email)."\nX-Mailer: fxCARD Mailer 1.0"); if ($donefh=fopen($card_directoryslash.$card_id."_done.php","wb")) { fputs ($donefh,sprintf("\ncard has been fetched by ".$_SERVER['REMOTE_ADDR'])); fclose($donefh); } } } } } else { print "Error 005: Invalid Card ID"; } } else { print "Error 006: Invalid Card ID"; } break; case "sendcard": /* Modus Karte abschicken (2.Durchlauf) */ $post_errors = ""; /* $post_errors wird leer gemacht */ if (!$_POST['from_name']) /* wenn from_name nicht existiert */ { $post_errors .= $card_lastr['err_yourname']."
"; /* err_yourname zu $post_errors hinzufügen */ } if (!$_POST['from_email']) /* wenn from_email nicht existiert */ { $post_errors .= $card_lastr['err_youremail']."
"; /* err_youremail zu $post_errors hinzufügen */ } if (!$_POST['to_name']) /* wenn to_name nicht existiert */ { $post_errors .= $card_lastr['err_destname']."
"; /* err_dest zu $post_errors hinzufügen */ } if (!$_POST['to_email']) /* wenn to_email nicht existiert */ { $post_errors .= $card_lastr['err_destemail']."
"; /* err_destemail zu $post_errors hinzufügen */ } if (!$_POST['f_message']) /* wenn f_message nicht existiert */ { $post_errors .= $card_lastr['err_message']."
"; /* err_message zu $post_errors hinzufügen */ } if (!$post_errors) /* wenn $post_errors nicht existiert */ { $card_id = date("ymdHis")."-".str_replace(".","-",$_SERVER['REMOTE_ADDR']); /* $card_id zusammensetzen aus Datum - und Serveradresse (.e werden durch -e ersetzt) */ $card_url = $card_scriptlocation."?mode=getcard&card_id=".$card_id."&chksum=".md5($card_id.$card_encid); /* $card_url zusammensetzen aus script-url, mode und $card_id und chksum ($card_id und $card_encid verschlüsselt) */ if ($outfh=fopen($card_directoryslash.$card_id.".php","wb")) /* wenn öffnen und löschen oder erzeugen der Kartendatei $outfh erfolgreich */ { fputs($outfh,sprintf("\n")); /* schreiben in Datei $outfh */ fputs($outfh,sprintf("%s\n",card_str_enc($_POST['from_name']))); /* from_name verschl+format in Datei $outfh schreiben */ fputs($outfh,sprintf("%s\n",card_str_enc($_POST['from_email']))); /* from_email verschl+format in Datei $outfh schr. */ fputs($outfh,sprintf("%s\n",card_str_enc($_POST['to_name']))); /* to_name verschl+format in Datei $outfh schreiben */ fputs($outfh,sprintf("%s\n",card_str_enc($_POST['to_email']))); /* to_email verschl+format in Datei $outfh schreiben */ fputs($outfh,sprintf("%s\n",card_str_enc(ereg_replace("\r","",ereg_replace("\n","
",$_POST['f_message']))))); /* f_message verschl+format mit eliminieren von Return und ersetzen von Zeilenumbruch in Datei $outfh schreiben */ fputs($outfh,sprintf("%ld\n",card_str_enc($img_id))); /* $img_id verschlüsselt+formatiert in Datei $outfh schreiben */ fclose($outfh); /* Datei $outfh schließen (Kartendatei gespeichert!*/ } if (mail($_POST['to_email'], /* wenn email an... */ $card_sitename." - ".$card_lastr['cardforyou'], /* ...mit Betreff... */ sprintf($card_lastr['cardcont'], $_POST['to_name']." (".$_POST['to_email'].")", $card_url, $_POST['from_name']." (".$_POST['from_email'].")"), "From: ".($card_mail_from?$card_mail_from:$_POST['from_email'])."\nX-Mailer: fxCARD Mailer 1.0")) /* erfolgreich versendet wurde und */ { if ($img_file = card_get_filename($img_id)) /* wenn der Bildfilename korrekt ist */ { print ''."\n"; /* Ausgabe Bild nach Kopfdatei und */ print "

\n"; print $card_font_mask.sprintf($card_lastr['cardsent'], $_POST['to_name']." (".$_POST['to_email'].")")."
"; /* Versandbest -> Fuß */ } } else /* ansonsten */ { print $card_lastr['nosend']; /* Ausgabe Fehlermeldungstext und */ } break; /* Script abbrechen */ } case "newcard": /* Modus neue Karte */ default: /* trifft auf alles zu, was nicht von voranstehenden case-Ausdrücken erfaßt wird (1.Durchlauf) */ if ($img_id>=0) /* wenn $img_id (wird beim Anklicken übergeben (GET imgid) und oben Z:272 zugewiesen) >=0 und */ { if ($img_file = card_get_filename($img_id)) /* wenn $img_file mit function Card_get_.. erfolgreich erstellt wurde */ { print ''."\n"; /* werden die folgenden 2 Zeilen ausgegeben, sonst nach else weiter */ print "

\n"; if ($post_errors) /* wenn var existiert werden die nächsten 2 Zeilen ausgegeben */ { print "".$card_font_errors.$post_errors."
"; /* Fehlermeldung */ print "
"; } /* es folgt das Formular für das Abschicken der Karte */ echo '
'; /* Methode:POST! action: nach bet. submit script 2.Durchlauf */ echo ''; /* unsichtb Feld "mode" übergibt "senscard" an POST */ echo ''; /* uns Feld "imgid" übergibt $img_id an POST */ echo ''; echo ''; echo ' '; echo ""; echo ''; echo ' '; echo ""; echo ''; echo ""; echo ''; /* legt die Eingaben als $_POST[""] ab und ruft script neu auf */ echo '
'.$card_font_mask.$card_lastr['yourname']. ''.$card_font_mask.$card_lastr['youremail'].'

'.$card_font_mask.$card_lastr['destname']. ' '.$card_font_mask.$card_lastr['destemail'].'

'.$card_font_mask.$card_lastr['message'].':

'; echo "
"; /* Formularende */ } else /* wird ausgeführt, wenn if oben Fehler ergeben hat */ { print "Error 004: An image with this ID does not exist."; /* Fehlermeldung und */ exit; /* Script beenden */ } } break; /* Ende des "case"-Teiles, weiter nächste Zeile */ } if (file_exists($card_footer)) /* wenn alternative Fußdatei existiert */ { include ($card_footer); /* öffnen und auswerten bzw. anzeigen */ } else /* ansonsten folgenden Dateifuß verwenden (Eigenwerbung mit Grafik von fremder Seite - entfernen!) */ { ?>

Ein Service von www.disco-galaxis.de
16)) { $f_timestamp = mktime ($f_hour, $f_mins, $f_secs, $f_month, $f_day, $f_year); if ((time()-$f_timestamp) >= $card_expiration_secs) { unlink($card_directoryslash.$fname); } } } } closedir($hdir); } } ?>