 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
16.07.2007, 02:41
|
#1
|
|
TP-Junior
Registriert seit: Jul 2007
Ort: Hannover
|
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
|
|
|
16.07.2007, 07:11
|
#2
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
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" />
|
|
|
16.07.2007, 10:19
|
#3
|
|
TP-Junior
Registriert seit: Jul 2007
Ort: Hannover
|
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
|
|
|
16.07.2007, 10:23
|
#4
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
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?
|
|
|
16.07.2007, 11:13
|
#5
|
|
TP-Junior
Registriert seit: Jul 2007
Ort: Hannover
|
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.
|
|
|
16.07.2007, 11:59
|
#6
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
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.
|
|
|
16.07.2007, 12:01
|
#7
|
|
TP-Supporter
Registriert seit: Feb 2005
|
Versuch mal
PHP-Code:
foreach ($fonts as $font)
{
echo '<img src="'.$_SERVER['SCRIPT_NAME'].'?f='.$font.'"><br/>';
}
|
|
|
16.07.2007, 12:03
|
#8
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
Das wird nichts bringen, siehe #6
|
|
|
16.07.2007, 13:34
|
#9
|
|
TP-Junior
Registriert seit: Jul 2007
Ort: Hannover
|
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.
|
|
|
16.07.2007, 13:46
|
#10
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
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.
|
|
|
16.07.2007, 14:19
|
#11
|
|
TP-Junior
Registriert seit: Jul 2007
Ort: Hannover
|
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?!? 
|
|
|
16.07.2007, 15:12
|
#12
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
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/>"; ?>
|
|
|
16.07.2007, 19:30
|
#13
|
|
TP-Veteran
Registriert seit: Feb 2004
Ort: Stuttgart
|
Zitat:
Zitat von webcreate
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!)
|
|
|
16.07.2007, 20:44
|
#14
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
Wie war das mit den Wegen nach Rom? 
|
|
|
| |