SetaPDF
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 16.07.2007, 02:41   #1
TP-Junior
 
Registriert seit: Jul 2007
Ort: Hannover
gl0bal macht alles soweit korrekt

Dateien includen die eine header-function beinhalten?


Hallo Allerseits,
ich habe ein Script das mir Bilder mit der GD-Lib aus Fonts erzeugt, daraus folgt ja, dass ich einen Header benutzen muss wenn ich so ein Bild generieren will.
PHP-Code:
    imagefill($im,0,0,$white);
imagettftext($im,18,0,5,25$black"tahoma.ttf""Copyright by ....");
    
header("Content-type: image/png");
header('Content-Length: ' strlen($im));
    
imagepng($im);
imagedestroy($im); 
Wenn ich die Datei un-includiert ausführe, dann funktioniert alles Perfekt, aber wenn ich sie includiere dann bekomme ich nur "kaputte" Bilder.
Ich denke das liegt höchst wahrscheinlich daran, das der header nicht am Anfang steht und natürlich vorher all mögliche Ausgaben gemacht worden sind.

Nun ja meine Frage ist halt wie ich sowas sonst verwirklichen kann? Ich habe eine Hauptseite in diese werden alle andere Content-Module includiert, so soll auch dieses, aber wie?

Gruß
Thomas
gl0bal ist offline   Mit Zitat antworten


Alt 16.07.2007, 07:11   #2
TP-Urgestein
 
Benutzerbild von webcreate
 
Registriert seit: Nov 2003
Ort: NRW
webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts
Ich verstehe nicht so ganz, warum Du das Script includieren willst.
Normalerweise wird das Script doch einfach via img Tag aufgerufen.
<img src="dateiname.php" />
__________________
Gruß Mark
Mein Blog zum TP || XING Profil || grafiker.de Profil || How to use GOOGLE
emCalculator 1.0

webcreate IT SOLUTIONS
www.webcreate-nrw.de
webcreate ist offline   Mit Zitat antworten
Alt 16.07.2007, 10:19   #3
TP-Junior
 
Registriert seit: Jul 2007
Ort: Hannover
gl0bal macht alles soweit korrekt
Die Bilder werden auch in der includierten Datei erstellt:
PHP-Code:
foreach ($fonts as $font)
{        
    echo 
"<img src='".$_SERVER['SCRIPT_NAME']."?f=$font'><br/>";

Und dabei ist auch egal ob ich den Aufruf in der Hauptseite mache, die Bilder sind trotzdem kaputt.
Da ist irgendwas am header aber ich weis bloß nicht was, da mir dazu die Programmiererfahrung fehlt.

Gruß
Thomas
gl0bal ist offline   Mit Zitat antworten
Alt 16.07.2007, 10:23   #4
TP-Urgestein
 
Benutzerbild von webcreate
 
Registriert seit: Nov 2003
Ort: NRW
webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts
Es wäre wohl am besten, mal das ganze Script zu zeigen, Deine Häppchen verwirren mehr, als das sie dienen ...

$_SERVER['SCRIPT_NAME'] ? Das Script soll sich selber als img darstellen?
__________________
Gruß Mark
Mein Blog zum TP || XING Profil || grafiker.de Profil || How to use GOOGLE
emCalculator 1.0

webcreate IT SOLUTIONS
www.webcreate-nrw.de
webcreate ist offline   Mit Zitat antworten
Alt 16.07.2007, 11:13   #5
TP-Junior
 
Registriert seit: Jul 2007
Ort: Hannover
gl0bal macht alles soweit korrekt
PHP-Code:
<?php      
if (empty($_GET['f']))
{
    
$folder=dir("fonts");
   
    while(
$font=$folder->read())
        if(
stristr($font,'.ttf'))
            
$fonts[]=$font;   
    
    
sort($fonts);
}
else
{
    
$im=imagecreatetruecolor(200,30);
    
    
$black=imagecolorallocate($im,0,0,0);
    
$white=imagecolorallocate($im,255,255,255);
    
    
imagefill($im,0,0,$white);
    
imagettftext($im,18,0,5,25,$black"/fonts/".$_GET['f'], "Copyright by ");
    
    
header("Content-type: image/png");
    
header('Content-Length: ' strlen($im));
    
    
imagepng($im);
    
imagedestroy($im);
}

foreach (
$fonts as $font)       
    echo 
"<img src='".$_SERVER['SCRIPT_NAME']."?f=$font'><br/>";
?>
Noch ne kurze Erklärung zum ganzen Script, es werden alle Fonts ausgelesen die im Ordner "Fonts" liegen, diese werden in ein Array geschrieben. Geordnet und danach wird jeweils ein Bild mit einer anderen Schriftart erzeugt.
gl0bal ist offline   Mit Zitat antworten
Alt 16.07.2007, 11:59   #6
TP-Urgestein
 
Benutzerbild von webcreate
 
Registriert seit: Nov 2003
Ort: NRW
webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts
Nun verstehe ich Dein Problem auch ...
Nach dem include ist $_SERVER['SCRIPT_NAME'] ja auch der Name der Datei, die includiert wird ...
Wenn Du dort einen fixen Namen angibst, ist alles ok.
__________________
Gruß Mark
Mein Blog zum TP || XING Profil || grafiker.de Profil || How to use GOOGLE
emCalculator 1.0

webcreate IT SOLUTIONS
www.webcreate-nrw.de
webcreate ist offline   Mit Zitat antworten
Alt 16.07.2007, 12:01   #7
TP-Supporter
 
Registriert seit: Feb 2005
Driver ist auf einem guten Weg
Versuch mal
PHP-Code:
foreach ($fonts as $font)
{        
    echo 
'<img src="'.$_SERVER['SCRIPT_NAME'].'?f='.$font.'"><br/>';

Driver ist offline   Mit Zitat antworten
Alt 16.07.2007, 12:03   #8
TP-Urgestein
 
Benutzerbild von webcreate
 
Registriert seit: Nov 2003
Ort: NRW
webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts
Das wird nichts bringen, siehe #6
__________________
Gruß Mark
Mein Blog zum TP || XING Profil || grafiker.de Profil || How to use GOOGLE
emCalculator 1.0

webcreate IT SOLUTIONS
www.webcreate-nrw.de
webcreate ist offline   Mit Zitat antworten
Alt 16.07.2007, 13:34   #9
TP-Junior
 
Registriert seit: Jul 2007
Ort: Hannover
gl0bal macht alles soweit korrekt
Ich habe das ganze jetzt so abgeändert:
PHP-Code:
foreach ($fonts as $font)       
    echo 
'<img src="' $_SERVER['PHP_SELF'] . '?f=' $font '" /><br/>'
So müsste es doch auf alle Fälle gehen, weil ja durch "php_self" sich der Dateiname automatisch fix generiert, nur wenn ich es wieder inkludiere, dann funktioniert das nicht.
gl0bal ist offline   Mit Zitat antworten
Alt 16.07.2007, 13:46   #10
TP-Urgestein
 
Benutzerbild von webcreate
 
Registriert seit: Nov 2003
Ort: NRW
webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts
Das ist ja das selbe.
Angenommen das Script, das die Images erzeugt, heißt "img.php"
Dann ist bei aufruf von localhost/img.php die Ausgabe für $_SERVER['PHP_SELF'] img.php
Includiert man nun img in die Datei main.php und ruft es aus, ist die Ausgabe von $_SERVER['PHP_SELF'] main.php

Es ist immer das Script ausschlaggebend, das includiert.
Gib einfach den fixen Dateinamen an (hier: img.php) dann funzt es auch includiert.
__________________
Gruß Mark
Mein Blog zum TP || XING Profil || grafiker.de Profil || How to use GOOGLE
emCalculator 1.0

webcreate IT SOLUTIONS
www.webcreate-nrw.de
webcreate ist offline   Mit Zitat antworten
Alt 16.07.2007, 14:19   #11
TP-Junior
 
Registriert seit: Jul 2007
Ort: Hannover
gl0bal macht alles soweit korrekt
Vielen vielen Dank,
nun funktioniert es auch inkludiert .

Ich hätte noch eine Frage dazu, und zwar wenn ich zum Beispiel selbst einen Text erstellen will, der auf das Bild gelegt wird. Anstatt den statischen "Copyright by... ".
Dazu müsste man doch einfach ein unten drunter ein Formular hinzufügen und den Text durch eine Variable ersetzen.
Das ganze aber erstmal ohne Include, nur als Testzweck in der gleichen Datei.
PHP-Code:
imagettftext($im,18,0,5,25,$black"/fonts/".$_GET['f'], $_POST["vorschau"]); 
PHP-Code:
<form method="POST" action="<?php $_SERVER["PHP_SELF"]?>">
<input type="text" name="vorschau" />
<input type="submit" value="los" name="los" />
</form>
Nun ja, so habe ich bisher alle Formularein -und ausgaben gemacht, nur hier scheint das anders zu sein, ich denke das liegt am header?!?
gl0bal ist offline   Mit Zitat antworten
Alt 16.07.2007, 15:12   #12
TP-Urgestein
 
Benutzerbild von webcreate
 
Registriert seit: Nov 2003
Ort: NRW
webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts
Hier dann mal mit formular:

main.php:
PHP-Code:
<?php
include("font.php");
?>

<form name="form1" id="form1" method="get" action="<?php echo $_SERVER['PHP_SELF'];?>">
<input name="mytext" type="text" />
<input name="submit" type="submit" value="abschicken" />
</form>
font.php:
PHP-Code:
<?php  
if(empty($_GET['mytext'])) $mytext "Copyright by ";
else 
$mytext $_GET['mytext'];  

if (empty(
$_GET['f']))
{
    
$folder=dir("fonts");
   
    while(
$font=$folder->read())
        if(
stristr($font,'.ttf'))
            
$fonts[]=$font;   
    
    
sort($fonts);
}
else
{
    
    
$im=imagecreatetruecolor(200,30);
    
    
$black=imagecolorallocate($im,0,0,0);
    
$white=imagecolorallocate($im,255,255,255);
    
    
imagefill($im,0,0,$white);
    
imagettftext($im,18,0,5,25,$black"/fonts/".$_GET['f'], $mytext);
    
    
header("Content-type: image/png");
    
header('Content-Length: ' strlen($im));
    
    
imagepng($im);
    
imagedestroy($im);
}

foreach (
$fonts as $font)       
    echo 
"<img src='font.php?f=$font&mytext=$mytext'><br/>";
?>
__________________
Gruß Mark
Mein Blog zum TP || XING Profil || grafiker.de Profil || How to use GOOGLE
emCalculator 1.0

webcreate IT SOLUTIONS
www.webcreate-nrw.de
webcreate ist offline   Mit Zitat antworten
Alt 16.07.2007, 19:30   #13
TP-Veteran
 
Benutzerbild von Dome
 
Registriert seit: Feb 2004
Ort: Stuttgart
Dome bringt sich richtig einDome bringt sich richtig ein
Zitat:
Zitat von webcreate Beitrag anzeigen
Das ist ja das selbe.
Angenommen das Script, das die Images erzeugt, heißt "img.php"
Dann ist bei aufruf von localhost/img.php die Ausgabe für $_SERVER['PHP_SELF'] img.php
Includiert man nun img in die Datei main.php und ruft es aus, ist die Ausgabe von $_SERVER['PHP_SELF'] main.php

Es ist immer das Script ausschlaggebend, das includiert.
Gib einfach den fixen Dateinamen an (hier: img.php) dann funzt es auch includiert.
Wozu gibts Magic constants?

http://www.traum-projekt.com/forum/1...tml#post768243

__file__
__________________
Gruß
Dome
__________________
Um mal auf das Renomee-System aufmerksam zu machen: Klick
TP Battlebay: www.tp-battlebay.de.ki (endlich wieder Online!)
Dome ist offline   Mit Zitat antworten
Alt 16.07.2007, 20:44   #14
TP-Urgestein
 
Benutzerbild von webcreate
 
Registriert seit: Nov 2003
Ort: NRW
webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts
Wie war das mit den Wegen nach Rom?
__________________
Gruß Mark
Mein Blog zum TP || XING Profil || grafiker.de Profil || How to use GOOGLE
emCalculator 1.0

webcreate IT SOLUTIONS
www.webcreate-nrw.de
webcreate ist offline   Mit Zitat antworten