SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



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



:: Buchempfehlung ::

Webseiten professionell erstellen

Webseiten professionell erstellen zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 28.04.2010, 11:51:13
naich78 naich78 ist offline
Anfänger
 
Registriert seit: Apr 2010
Alter: 45
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==&& $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&uuml;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
$zielnamestrtolower(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($pfile0644);
## 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=1session_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
Mit Zitat antworten
  #2  
Alt 28.04.2010, 13:36:51
Ckaos Ckaos ist offline
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!
Mit Zitat antworten
  #3  
Alt 29.04.2010, 08:02:20
naich78 naich78 ist offline
Anfänger
 
Registriert seit: Apr 2010
Alter: 45
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ß
Mit Zitat antworten
  #4  
Alt 29.04.2010, 23:23:13
Ckaos Ckaos ist offline
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($pfile0644);
## 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!
Mit Zitat antworten
  #5  
Alt 06.05.2010, 14:25:19
McB_sser McB_sser ist offline
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_Berechnung0032326666);
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
Mit Zitat antworten
  #6  
Alt 06.05.2010, 15:57:49
Ckaos Ckaos ist offline
Member
 
Registriert seit: Nov 2007
Beiträge: 843
AW: Wasserzeichen bei Upload

Hi

Zitat:
Zitat von McB_sser Beitrag anzeigen
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!
Mit Zitat antworten
  #7  
Alt 06.05.2010, 21:32:22
McB_sser McB_sser ist offline
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.
Mit Zitat antworten
Antwort

Stichworte
bilder, upload, wasserzeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
upload script driver PHP Grundlagen 6 21.06.2007 15:26:10
File Upload Problem wegen upload_tmp_dir Hillkorn PHP für Fortgeschrittene und Experten 14 14.02.2007 17:51:34
Bild per upload aktualisieren jojomo PHP Grundlagen 0 21.11.2003 18:44:13
Upload ... schon wieder!! Domi PHP Grundlagen 0 04.11.2003 22:13:25
ebenfalls Probleme mit Upload - woran kann's liegen? daknuet PHP für Fortgeschrittene und Experten 1 18.09.2002 17:01:57


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:13:01 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt