// --------------------------------------------------------------------------
// Foto-Webcam.eu
// Store the best images found on a particular webcam image archive
// Images are stored as a copy of the original
//
// Flori Radlherr, http://www.radlherr.de
// This is free software, see COPYING for details.
// --------------------------------------------------------------------------
//
require "common.php";
$bestdir= "bestof";
$path= $webcam['workPath'];
$name= $webcam['name'];
$img= $webcam['parImg'];
$wcdir= $webcam['uri']."/".$webcam['name'];
$lastbestof= $webcam['uri'].$webcam['uri']."/lastbestof/".$webcam['name'];
$capflood= false;
$capok= false;
$captcha= @$_POST['captcha'];
$fs= 0;
if ($captcha) {
$captcha= preg_replace("/[^a-z]/", "", $captcha);
$capfile= fopen($webcam['workPath']."/tmp/captcha.txt", "r");
if ($capfile) {
while (! feof($capfile)) {
$line= fgets($capfile);
print("$line '$captcha'
");
if (strlen($captcha)==4 && strpos($line, $captcha)>0) {
$capok= true;
}
$fs++;
if ($fs>20) {
$capok= false; # seems brute force
$capflood= true;
}
}
fclose($capfile);
}
}
$isDelete= false;
if (isset($_GET['delete'])) {
$isDelete= true;
$phrase= "
Das Bild aus der Liste der besten Bilder entfernen?
Bitte nur Bilder löschen, bei denen du dir sicher bist,
dass vergleichbar gute Bilder bereits in der Sammlung sind.
";
$action= "Bild löschen";
}
else {
$phrase= "
Das Bild in die Liste der besten Bilder aufnehmen?
Bitte nur Bilder speichern, die wirklich besondere
Eigenschaften haben und sich vom Durchschnitt deutlich
unterscheiden.
";
$action= "Bild markieren";
}
$captimg= "
";
if ($capok) {
$captimg= "";
}
print "\n
Die besten Bilder

$phrase
Zur Sicherheit übertrage die Buchstabenfolge in das Feld:
";
$message=
"Hinweis: Deine IP-Adresse und die Uhrzeit wird dauerhaft gespeichert.";
if (isset($_POST['submitted'])) {
if ($capok) {
$message= "";
$src= "$path/$img";
$dest= "$path/$bestdir/$img";
$logdir= "$path/$bestdir";
$destdir= preg_replace("/\/[^\/]+$/", "", $dest);
$srcpat= "$src*";
$lastbestofdir = $currentRoot.$webcam['uri']."/lastbestof/";
$lastbestof= $currentRoot.$webcam['uri']."/lastbestof/".$webcam['name'];
$message= "";
$errors= 0;
$logname= null;
# Alle zu einem Bild zugehoerigen Dateien verlinken
$delete=0;
foreach (glob($srcpat) as $filename) {
$destfile= preg_replace("/^.*\//", "", $filename);
if (@filesize("$destdir/$destfile")) {
if ($isDelete) {
if (! @unlink("$destdir/$destfile")) {
$message= "
Mindestens eine Datei ".
"konnte nicht gelöscht werden";
}
}
$logname= "remove.log";
}
else {
if (@filesize($filename)>0 && !$isDelete) {
@mkdir($destdir,0775,true);
if (! copy($filename, "$destdir/$destfile")) {
print("$filename - $destdir/$destfile
");
$errors+=1;
$message= "Mindestens eine Datei ".
"konnte nicht kopiert werden";
}
if ($delete==0){
//Ordnername festlegen in dem die zu löschenden Files liegen
$ordnername = $lastbestofdir;
//überprüfen ob das Verzeichnis überhaupt existiert
if (is_dir($ordnername)) {
//Ordner öffnen zur weiteren Bearbeitung
if ($dh = opendir($ordnername)) {
//Schleife, bis alle Files im Verzeichnis ausgelesen wurden
while (($file = readdir($dh)) !== false) {
//Oft werden auch die Standardordner . und .. ausgelesen, diese sollen ignoriert werden
if ($file!="." AND $file !="..") {
//Files vom Server entfernen
unlink($ordnername.$file);
}
}
//geöffnetes Verzeichnis wieder schließen
closedir($dh);
}
}
}
$delete++;
copy($filename, $lastbestof."_".$destfile);
$logname= "add.log";
}
}
}
if ($logname) {
if ($logf= @fopen("$logdir/$logname", "a")) {
@fputs($logf,
strftime("%d.%m.%y %H:%M:%S").
";".$_SERVER{'REMOTE_ADDR'}.";$wcdir/$img\n");
@fclose($logf);
}
}
else {
$message= "Keine passendes Bild gefunden.";
}
}
else {
if ($capflood) {
$message= "Zu viele Zugriffe, bitte in 10 ".
"Minuten nochmal probieren.";
}
else {
$message= "Bitte Buchstabenfolge in das ".
"Feld eintragen.";
}
}
}
$waitclose= "";
if ($message == "") {
$message= "OK.";
$waitclose= "
if (opener && opener.webcam) {
opener.webcam.go(opener.webcam.data.image);
}
setTimeout(function() {
window.close();
}, 800);
";
}
print "
$message
";
?>