CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
28.04.2010, 11:51:13
|
Anfänger
|
|
Registriert seit: Apr 2010
Alter: 46
Beiträge: 9
|
|
Wasserzeichen bei Upload
Hallo Experten, Fortgeschrittene und Neulinge in Sachen PHP.
Ich bin neu hier und erhoffe mir ein bisschen Hilfe. Ich habe folgendes Problem. Ich habe ein Uploadformular, wo es den Usern möglich ist, ein Bild hochzuladen. Ich habe es nun erweitert, dass die Besucher ihen Namen eingeben können, damit ich weiss, wer das Bild geschickt hat und ich das Bild mit einem Wasserzeichen versehen kann. Das ist aber immer sehr umständlich, das Bild auf meine Platte zu laden, Wasserzeichen mit einem Grafikprogramm einbetten und wieder in die Galerie zu laden. Es ist eine einfach gehaltene Galerie, wo man sich werder anmleden muss, noch eigene Ordner besitzt. Nun meine eigentliche Frage. Kann man direkt beim Upload ein Wasserzeichen in das hochladene Bild einbetten? Das Wasserzeichen soll einen bestimmten Text haben.
www.meinehomepage.de
Bild von $name
Der Text soll am unteren Rand in einer vorher festgelegten Farbe und Schriftart stehen. Die Bilder haben aber alle verschiedene Größen und sollten ihre Originalgröße auch behalten.
Mein bisheriger Code
PHP-Code:
<?php
if(isset($_POST["name"]))
{
$name = $_POST["name"];
}
$zielordner='upload/';
$upload_limitieren=0;
$upload_groesse=500;
$mailsenden=1;
$emailadresse='meine@anbieter.de';
$betreff='Neuer Upload';
$captcha_verwenden=1;
$ip_sperre=0;
$ip_sperrzeit=10;
$erlaubte_dateiendungen=array('jpg','jpeg','gif','png');
$erlaubte_mimetypen=array("text/plain","image/pjpg","image/pjpeg","image/gif","image/jpg","image/peng","image/jpeg","image/bmp","image/x-windows-bmp","image/tiff","image/x-tiff","application/plain", "application/x-photoshop","application/octet-stream","application/postscript","application/xms-word","application/mspowerpoint","application/powerpoint","application/vnd.ms-powerpoint","application/x-mspowerpoint","application/excel","application/x-excel","application/vnd.ms-excel","application/x-msexcel","application/zip","application/x-zip","application/x-compressed","application/x-zip-compressed","audio/mid","audio/mp3","application/x-winamp-plugin","interface/x-winamp-skin","audio/x-mp3");
$e[0]="Uploadfehler: Die erlaubte Dateigröße $upload_groesse kb ist überschritten";
$e[1]="Uploadfehler: Die Dateiendung ist nicht erlaubt.";
$e[2]="Uploadfehler: Der Mime-Typ der Datei ist fehlerhaft oder wird nicht unterstützt.";
$e[3]="Beim Upload ist ein Fehler aufgetreten.";
$e[4]="Uploadfehler: Keine Datei ausgewählt oder unbestimmter Fehler aufgetreten";
$e[5]="Der Sicherheitscode (Captcha) ist nicht korrekt";
$e[6]="Die IP-Sperre ist für $ip_sperrzeit Minuten aktiv.";
$e[200]="Der Upload war erfolgreich. Dein Bild wird nach erfolgreicher Prüfung freigeschalten. <br/>Du wirst in 3 Sekunden weitergeleitet. Sollte das nicht funktionieren, klicke bitte auf zurück.";
$datum=date("d.m.Y");
$uhrzeit=date("H:i");
$ausgabe='';
if($captcha_verwenden==1){
session_start();
if(isset($_POST['cap'])){$eingabe=mig($_POST['cap']);
if($eingabe=="" || $eingabe!=$_SESSION['cod']){$fehler=1; $ausgabe=$e[5].'<br>';}}
} //endcaptchaprüfung
if($ip_sperre==1){
$ip_sperrzeit_sec=$ip_sperrzeit*60;
// Ordner ipsperre durchscannen
$oeffnevz = openDir('ipsperre');
while($filename = readDir($oeffnevz)){
if($filename != "." && $filename != ".."){
// datei entfernen
if(file_exists('ipsperre/'.$filename)){$tsofthefile=filemtime('ipsperre/'.$filename)+$ip_sperrzeit_sec;
if($tsofthefile<=time()){@unlink('ipsperre/'.$filename);}}}}
$ip1=$_SERVER['REMOTE_ADDR'];
if($ip1==""){if(getenv(HTTP_X_FORWARDED_FOR)){
$ip=getenv('HTTP_X_FORWARD_FOR');}else{$ip=getenv('REMOTE_ADDR');}}
if($ip1!=""){
if(file_exists('ipsperre/'.$ip1)){$fehler=1; $ausgabe=$e[6].'<br>';}
/* $nix='';
$iplog = fopen('ipsperre/'.$ip1, "w+");
fwrite($iplog, $nix);
fclose($iplog); */
}
} //endipsperre
if(!isset($fehler)){
$uploadresult=dotheupload('uploadfile', $zielordner, $upload_limitieren, $upload_groesse, $erlaubte_dateiendungen, $erlaubte_mimetypen, $e, $ip_sperre);
## das dotheupload spuckt Array aus
## [0] wert 0 = Feld nicht gefüllt, kein Upload vorgenommen wert 1= Upload vorgenommen
## [1] wert 0 = Upload nicht erfoglreich wert 1= Upload erfolgreich
## [2] pfad und dateiname
## [3] string mit gesammelten Fehlermeldungen
## [4] Dateiendung (ohne Punkt)
#print_r($uploadresult);
if($uploadresult[0]==1){
if($uploadresult[1]==0){$ausgabe.=$uploadresult[3];}
else{
## Mailsenden
if($mailsenden==1 && $emailadresse!="" && $betreff!=""){
$mailtext="
Upload ausgeführt am $datum, $uhrzeit Uhr
Datei: $uploadresult[2]
Von: $name
";
@mail($emailadresse, $betreff, $mailtext, "\nFrom: $emailadresse <uploadformular>");
# @mail($emailadresse, $betreff, $mailtext, "\nFrom: $emailadresse <uploadformular>","-f $emailadresse");
/* $testmail = fopen("mail.txt", "w+");
fwrite($testmail, $mailtext);
fclose($testmail); */
}
$ausgabe.=$e[200];}
}else{$ausgabe.=$e[4];}
}
echo $ausgabe;
echo '<br><a href="javascript:history.back();">zurück</a><br>';
function dotheupload($feldname, $zielpfad, $upload_limitieren, $size_kb, $allowed_endings=array(), $from_mime=array(), $e=array(),$ip_sperre){
$errnumbers='';
$ucffeldname=ucfirst($feldname);
if($upload_limitieren==1){ //Limitierung eingeschaltet
if($_FILES[$feldname]['size'] > (1000*$size_kb)){$errnumbers.=$e[0].'<br>'; $fehler=1;}
}
if(!$_FILES[$feldname]['name']){$fehler=1; $interner_hinweis=0; /* Uploadfeld nicht gefüllt */ }else{ $interner_hinweis=1;}
if(!$_FILES[$feldname]['error'] && !isset($fehler)){ //
$endung = strrchr($_FILES[$feldname]['name'],'.');
$endung_mp = strtolower($endung);
$endung = str_replace(".", "", strtolower($endung));
$mime = $_FILES[$feldname]['type'];
## Prüfung ob erlaubte Dateiendung okay geht
if(!in_array($endung, $allowed_endings)){$errnumbers.=$e[1].'<br>'; $fehler=1;}
if(!in_array($mime, $from_mime)){$errnumbers.=$e[2].'<br>'; $fehler=1;}
$zielname=str_replace($endung_mp, "", $_FILES[$feldname]['name']);
## Sonderzeichen rausfiltern
$zielname= strtolower(preg_replace('/[^a-zA-Z0-9_.+-]/', '', $zielname));
$pfile=$zielpfad.$zielname.'.'.$endung;
if(!isset($fehler)){
## falls vorhanden, suffix dran, wieder prüfen
$i=0; while(file_exists($pfile)){ $pfile=$zielpfad.$zielname.'_'.$i.'.'.$endung; $i++;}
## ODER
## checken ob eine so benannte datei schon existiert
#if(file_exists($pfile)){$errnumbers.=$e[3].'<br>'; $fehler=1;}
}
if(!isset($fehler)){
## uploadvorgang
@move_uploaded_file($_FILES[$feldname]['tmp_name'], $pfile);
@chmod($pfile, 0644);
## datei exisitert nicht?
if(!file_exists($pfile)){$errnumbers.=$e[3].'<br>'; $fehler=1;}
## wenn Datei exitiert, aber Dateigröße 0Byte, dann weglöschen und ERROR ausgeben.
if (get_size($pfile)=="0"){@unlink($pfile); $errnumbers.=$e[3].'<br>'; $fehler=1; }
}
if(!isset($fehler)){$result=1; session_start(); session_unset(); session_start();
if($ip_sperre==1){
$ip1=$_SERVER['REMOTE_ADDR']; if($ip1==""){if(getenv(HTTP_X_FORWARDED_FOR)){
$ip=getenv('HTTP_X_FORWARD_FOR');}else{$ip=getenv('REMOTE_ADDR');}}
if($ip1!=""){$nix=''; $iplog = fopen('ipsperre/'.$ip1, "w+");
fwrite($iplog, $nix); fclose($iplog); }}
} else {$result=0;}
}
$ergebnisse=array(
'0' => $interner_hinweis,
'1' => $result,
'2' => $pfile,
'3' => $errnumbers,
'4' => $endung
);
return $ergebnisse;
} //endfunction
function get_size($path)
{
if(!is_dir($path))return filesize($path);
$dir = opendir($path);
while($file = readdir($dir))
{
if(is_file($path."/".$file))$size+=filesize($path."/".$file);
if(is_dir($path."/".$file) && $file!="." && $file !="..")$size +=get_size($path."/".$file);
}
return $size;
}
function mig($get){
$get=htmlentities(strip_tags($get));
$get=trim($get);
return $get;}
?>
<head>
<meta http-equiv="refresh" content="3; URL=http://www.meine.de/galerie/">
</head>
Vielen Dank
Gruß, Nico
|
28.04.2010, 13:36:51
|
Member
|
|
Registriert seit: Nov 2007
Beiträge: 843
|
|
AW: Wasserzeichen bei Upload
Hi
Zitat:
Nun meine eigentliche Frage. Kann man direkt beim Upload ein Wasserzeichen in das hochladene Bild einbetten? Das Wasserzeichen soll einen bestimmten Text haben.
|
Ja kann man siehe imagecreatefromXXX
und alle imagebefehle
Das habe ich gern für dich ergooglet.
Aber nun ein bissle mehr eigeninitative ;)
mfg
Ckaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
|
29.04.2010, 08:02:20
|
Anfänger
|
|
Registriert seit: Apr 2010
Alter: 46
Beiträge: 9
|
|
AW: Wasserzeichen bei Upload
Hi Ckaos
Danke für die Antwort
Zitat:
Das habe ich gern für dich ergooglet.
Aber nun ein bissle mehr eigeninitative ;)
|
Sorry, aber was meinst Du, was ich schon alles gemacht habe? Sicherlich habe ich gegoogelt und auch so manche Sache gefunden. Habe auch schon 2 Sachen probiert, die aber nicht funktionieren. Entweder binde ich sie falsch ein, oder es liegt am Script. Da gehe ich aber mit hoher Sicherheit vom falsch Einbinden aus. ;) Darum habe ich versucht, ein wenig Hilfe zu bekommen und nicht weil ich nicht fähig bin, den guten Freund "Google" zu benutzen.
Gruß
|
29.04.2010, 23:23:13
|
Member
|
|
Registriert seit: Nov 2007
Beiträge: 843
|
|
AW: Wasserzeichen bei Upload
Hi
Zitat:
Sorry, aber was meinst Du, was ich schon alles gemacht habe? Sicherlich habe ich gegoogelt und auch so manche Sache gefunden. Habe auch schon 2 Sachen probiert, die aber nicht funktionieren. Entweder binde ich sie falsch ein, oder es liegt am Script
|
Ich seh nur nen RiesenScriptblock nicht deine Versuche oder?
Zeig mal ;)
Und konntest du nun mit meinen tips was anfangen?
Wenn ja /nein zeig deine Versuche...
mfg
Ckaos
PS: Es hätte auch vom Script der Teil gereicht in dem du das Bild
kopierst denn dort muss dann auch die manipulation geschehen.
PHP-Code:
if(!isset($fehler)){
## uploadvorgang
@move_uploaded_file($_FILES[$feldname]['tmp_name'], $pfile);
@chmod($pfile, 0644);
## datei exisitert nicht?
if(!file_exists($pfile)){$errnumbers.=$e[3].'<br>'; $fehler=1;}
## wenn Datei exitiert, aber Dateigröße 0Byte, dann weglöschen und ERROR ausgeben.
if (get_size($pfile)=="0"){@unlink($pfile); $errnumbers.=$e[3].'<br>'; $fehler=1; }
}
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
|
06.05.2010, 14:25:19
|
Anfänger
|
|
Registriert seit: Apr 2008
Beiträge: 66
|
|
AW: Wasserzeichen bei Upload
ich zeig dir mal ein ausschnitt von meinen code der dir mit sicherheit helfen kann, du musst ihn nur anpassen..
ggf. gibt er dir ein paar denk anstöße.
PHP-Code:
[...] $Pos_x_Berechnung = ($DB['x']-$Start_Pos_x)*$Quadradgroesse+$Berechnung_x; $Pos_y_Berechnung = ($DB['y']-$Start_Pos_y)*$Quadradgroesse+$Berechnung_y;
$Pfad_ICON_Ansicht = "http://www.i-land-evolution.de/inhalt/anweisung/insel_icon.php?Insel_ID=".$DB['ID']."&Insel_x=".$DB['x']."&Insel_y=".$DB['y']."";
eval("\$icon = imagecreatefrompng('$Pfad_ICON_Ansicht');"); imagecopyresized($Bild, $icon, $Pos_x_Berechnung, $Pos_y_Berechnung, 0, 0, 32, 32, 66, 66); imagedestroy($icon); [...]
edit:
der generiert ein icon von ein bild und setzt es auf ein anderes generiertes bild.... das andere müsste man vorher initialisieren bevor das icon eingesetzt wird. z. B. in dem du das thumb lädst oder der gleichen.... hiermit lass ich dich wieder allein.... Rätzeln macht ja spaß nicht war CKaos
|
06.05.2010, 15:57:49
|
Member
|
|
Registriert seit: Nov 2007
Beiträge: 843
|
|
AW: Wasserzeichen bei Upload
Hi
Zitat:
Zitat von McB_sser
ich zeig dir mal ein ausschnitt von meinen code der dir mit sicherheit helfen kann, du musst ihn nur anpassen..
|
Mein tip, pass du ihn noch etwas an ;)
Stichwort: eval = evil
Ich benutz ja auch gerne eval aber das hier?
Erklär mir das mal Bitte.
PHP-Code:
eval("\$icon = imagecreatefrompng($Pfad_ICON_Ansicht);");
VS
PHP-Code:
$icon = imagecreatefrompng($Pfad_ICON_Ansicht);
Zitat:
Rätzeln macht ja spaß nicht war CKaos
|
Dir etwa nicht? Also mir haben in der Schulzeit schon Kettenrechnungen Spaß gemacht. Vielleicht häng ich deshalb in der jetzigen Ecke rum ;)
mfg
Ckaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
|
06.05.2010, 21:32:22
|
Anfänger
|
|
Registriert seit: Apr 2008
Beiträge: 66
|
|
AW: Wasserzeichen bei Upload
ja, ich hatte probleme gehabt weil der link string noch nicht existierte, zumindest nicht so wie ich ihn generiert hatte und führte nicht zu mein ergebniss...
ich kann dir jetzt leider nicht sagen ob ein fehler gab oder der gleichen das liegt schon eine weile zurück.
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 09:01:37 Uhr.
|