Wo liegt in diesem PHP Script der Fehler?
Christoph
- php
0 Marco0 Sven Rautenberg
Hi,
habe folgenden Script und dort funzt der Link nicht, dass er im selben Frame geöffnet wird!
<?php
$tf = fopen ('../daten/home.txt', 'r');
$titel = fgets ($tf,70);
$text = fgets ($tf,350);
$link = fgets ($tf,80);
$target = fgets ($tf,15);
$linkt = fgets ($tf,30);
fclose ($tf);
echo ("$titel</b><br><br>$text");
?>
<?php echo ("<a href="$link" target="_$target"><b>>> <u>$linkt</u></b></a>");
?>
hier die home.txt:
SWR3 Dance Night in Walldürn
Am 30. April...bla....bla....bla<br><br>Wir verlosen dafür
../community/gewinnspiel.php
self
Gewinnspiel
danke.
Ich glaube der Unterstrich(_) vor dem $target muss weg!
Probiere das mal aus!
Marco
Nö dass is es leider nicht!
So wirds angezeigt!
warum der das in die nächsten Zeilen setzt ist mir auch ein Rätsel!
<p style="text-align:right; margin-left:20; margin-right:20">
<a href="../community/gewinnspiel.php
" target="_self
"><b>>> <u>Gewinnspiel</u></b></a></p>
Hallo Christoph,
warum der das in die nächsten Zeilen setzt ist mir auch ein Rätsel!
fgets liest auch immer noch das Neue-Zeile-Zeichen mit ein. Daher musst Du dieses Zeichen aus der Zeichenkette entfernen:
if ($str{strlen($str)-1} == "\n") {
$str = substr ($str, 0, strlen ($str) - 1);
}
(für alle Zeichenketten, die betroffen sind)
Viele Grüße,
Christian
Hallo Christian,
if ($str{strlen($str)-1} == "\n") {
es muss doch nicht immer nur "\n" sein, oder?
$str = substr ($str, 0, strlen ($str) - 1);
warum nicht einfach trim() (oder rtrim())?
Grüße aus Nürnberg
Tobias
Hallo Tobias,
if ($str{strlen($str)-1} == "\n") {
es muss doch nicht immer nur "\n" sein, oder?
Ups. Hast recht:
if (($str{strlen($str)-1} == "\012" && $str{strlen($str)-2} != "\015") || $str{strlen($str)-1} == "\015") {
$str = substr ($str, 0, strlen ($str) - 1);
} else if ($str{strlen($str)-2} == "\015" && $str{strlen($str)-1} != "\012") {
$str = substr ($str, 0, strlen ($str) - 2);
}
$str = substr ($str, 0, strlen ($str) - 1);
warum nicht einfach trim() (oder rtrim())?
Weil rtrim auch normale Leerzeichen abschneidet.
Viele Grüße,
Christian
Hallo Christian,
warum nicht einfach trim() (oder rtrim())?
Weil rtrim auch normale Leerzeichen abschneidet.
wo liegt da das Problem? Es ist doch egal, ob am Stringende Leerzeichen sind, oder nicht (in [pref:t=44234&m=241158] sind sowieso keine zu sehen).
Grüße aus Nürnberg
Tobias [verwirrt]
Ist das so viel Aufwand um eine Stelle wegzuschneiden?
if ($titel{strlen($titel)-1} == "\n") {
$titel = substr ($titel, 0, strlen ($titel) - 1); }
mfg chris
Moin!
habe folgenden Script und dort funzt der Link nicht, dass er im selben Frame geöffnet wird!
Dann schau nach, welcher HTML-Code generiert wurde, und ob der möglicherweise nicht das tut, was du erwartest. Validieren dieses Codes wäre z.B. eine gute Idee.
- Sven Rautenberg