 |
| 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 |
11.03.2005, 12:49
|
#1
|
|
TP-Supporter
Registriert seit: Jun 2001
Ort: Berlin
|
[PHP] Fehler in for schleife bei Ausgabe von HTML?
Hi,
unter http://www.pixelcoach.de/postkarten/...kat=.&start=40
seht ihr eine Seite die irgendwie aus dem leim geht. Ich finde auf die Schnelle nicht den Fehler, der Verursacher hockt gerade über der Steuer und hat keine Zeit.
wer mag mal mit rüberschauen? ich vermute mal, das in der for schleife der fehler ist.
hier der quellcode der seite
PHP-Code:
<?
include("../conf/config.inc.php");
include("../conf/dirfunctions.inc.php");
include("./inc/postcardheader.inc");
// Folder ermitteln
if (!isset($kat)) $kat = '.';
$adr = $image_root . "/" . $kat;
$b_pics = array();
get_images($adr,&$b_pics);
usort($b_pics,'sort_images');
// Start und Ende der Ausgabe
if (!isset($start)) $start = 0;
$nextstart = ($start/$imgperside + 1) * $imgperside;
$laststart = $nextstart - 2*$imgperside;
if ($laststart < 0) $laststart = 0;
if ($nextstart > count($b_pics)) $nextstart = 0;
$picende = $start + $imgperside;
if ($picende > count($b_pics)) $picende = count($b_pics);
//lang-switcher
(ereg('/de',$_SERVER["REQUEST_URI"])) ? $switcher = ereg_replace('/de','/en',$_SERVER["REQUEST_URI"]) : $switcher = ereg_replace('/en','/de',$_SERVER["REQUEST_URI"]);
?>
<form method="post" action="makecard.php" name="card">
<table class="content" cellpadding="0" cellspacing="0">
<tr>
<td colspan="5" class="transparent" style="border-bottom: 1px solid #90ace3;" width="766"> </td>
</tr>
<tr>
<td colspan="4" class="header" width="711">Bitte wählen Sie:
<select name="kat" onChange="MM_jumpMenu('parent',this,0)">
<? echo get_selecter($kat) ?>
</select></td>
<td class="rechts" style="border-bottom: 1px solid #90ace3;" width="55"><a href="<? echo $switcher ?>" style="font-size:1em; margin-right:8px;" title="english version">English</a></td>
</tr>
<tr>
<td colspan="5" class="transparent" width="766"> </td>
</tr>
<tr>
<td rowspan="3" class="transparent" style="width:10px;" width="10"><img src="../img/spacer.gif" width="10" height="1"></td>
<td width="591" rowspan="3" valign="top" style="border-top: 1px solid #90ace3;border-bottom: 1px solid #90ace3;border-left: 1px solid #90ace3"><table class="cards">
<tr valign="top">
<? // liegt hier der Hund begraben?
for ($i=$start;$i<$start+8;$i++)
{
$image_name = $b_pics[$i];
?>
<td width="<? echo $table_pic_w ?>" height="<? echo $table_pic_h ?>">
<?
if ($image_name!="")
{
$size = get_imgsize($image_name);
if ($size[0] > $size[1])
{
$th_width = max($t_maxbreite,$t_maxhoehe);
$th_height = min($t_maxbreite,$t_maxhoehe);
}
else
{
$th_width = min($t_maxbreite,$t_maxhoehe);
$th_height = max($t_maxbreite,$t_maxhoehe);
}
// altname feststellen
$alt_text = get_alttext($image_name);
$altname = ereg_replace("<br>"," ",$alt_text);
($i == $start) ? $checked = "CHECKED" : $checked = "";
?>
<a href="#" onClick="bigsize('<? echo $image_name ?>','<? echo $size[1] ?>','<? echo $size[0] ?>','<? echo $alt_text ?>','<? echo $image_name ?>');activ(<? echo $j ?>)"><img src="../conf/thumber.php?img=<? echo $image_name ?>" alt="<? echo $altname ?>" width="<? echo $th_width ?>" height="<? echo $th_height ?>" border="0" class="rahmen" title="<? echo $altname ?>"></a><br><input type="radio" name="pic" value="<? echo $image_name ?>" <? echo $checked ?> class="boppel">
<?
} else {
?>
<?
}
?>
<br></td>
<?
if ( ($i+1)%4 == 0 && ($i+1) != $picende )
{
?>
</tr>
<tr valign="top">
<?
}
$j++;
}
?>
</tr>
</table>
</td>
<td rowspan="3" class="transparent" style="width:10px; border-left: 1px solid #90ace3; border-right: 1px solid #90ace3;" width="10"><img src="../img/spacer.gif" width="10" height="1"></td>
<td valign="top" class="white" style="padding-top:0;border-bottom:0;" width="100"><table cellpadding="0" cellspacing="0" class="blaettern">
<tr>
<td align="right">
<?
if ($nextstart>0)
{
?>
<a href="index.php?kat=<? echo $kat ?>&start=<? echo $nextstart ?>" title="weiterblättern">
weiterblättern</a>
<?
}
else
{
echo " ";
}
?>
</td>
</tr>
<tr>
<td align="right">
<? if ($start > 0 )
{
?>
<a href="index.php?kat=<? echo $kat ?>&start=<? echo $laststart ?>" title="zurückblättern">
zurückblättern</a>
<?
}
else
{
echo " ";
}
?>
</td>
</tr>
</table></td>
<td class="white" style="border-bottom:0;" width="55"> </td>
</tr>
<tr>
<td colspan="2" valign="top" class="white" style="border-top:0;height:260px;" width="155"><p> </p>
<p>Wählen Sie ein Bild aus, das Sie als elektronische
Postkarte versenden möchten.</p></td>
</tr>
<tr>
<td colspan="2" width="155" align="right" valign="bottom" class="rechts" style="border-bottom: 1px solid #90ace3; height:20px;"><input type="hidden" value="<? echo $altname ?>" name="altname"><INPUT name="submit" TYPE="submit" VALUE=" Weiter " class="senden"></td>
</tr>
<tr>
<td colspan="5" class="transparent" style="height:20px;" width="766"> </td>
</tr>
</table>
</form>
<?
include("inc/postcardfooter.inc");
?>
ich muß jetzt leider weg und bin erst wieder heute abend zu erreichen.
vielleicht hat ja in der zeit schon einer lust gehabt...
wäre echt nett.
dank euch schon mal dafür...
bei den anderen kategorien läßt es sich nicht simulieren, da dieser effekt wohl nur auftritt, wenn man nur 4 motive auf der seite hat.
gruß
nicole
__________________
nicnac1
~~~~~~~~~~~~
was wäre ich bloß ohne euch!
|
|
|
11.03.2005, 13:31
|
#2
|
|
TP-Greis
Registriert seit: Mar 2001
Ort: Berlin, Germany
|
Äh - wenn Du uns noch sagen könntest, was der Fehler denn genau ist? 
__________________
“My software never has bugs. It just develops random features ...”
» DevShack - die Website des freien Webentwicklers Boris
|
|
|
11.03.2005, 13:43
|
#3
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
 ich kann auch keinen entdecken. 4 Motive nur gibts doch gar nicht ...
|
|
|
11.03.2005, 20:45
|
#4
|
|
TP-Supporter
Registriert seit: Jun 2001
Ort: Berlin
|
puh. hat leider etwas länger gedauert. war ganz schön viel los heute ...
also der fehler auf der verlinkten seite ist doch, dass nach dem vierten bild nicht schluß ist, sondern (läßt sich gut in firefox mit der webdevelopertoolbar - outline -> tables - simulieren) dass er noch für 4 weitere mögliche bilder leere tabellenzellen erstellt. dadurch sprengt es mir rechts das design.
er müßte ja eigentlich nach dem letzten, also 4. bild schluß machen, also ein schließendes </tr> und vielleicht noch eine leere zeile mit 4 zellen (<td>)
der effekt tritt nur im letzten durchlauf -> bild 40-44 bei alle bilder auf.
danke schon einmal für das rüberschauen.
nicole
__________________
nicnac1
~~~~~~~~~~~~
was wäre ich bloß ohne euch!
|
|
|
11.03.2005, 21:57
|
#5
|
|
TP-Specialist
Registriert seit: Nov 2004
Ort: Die Insel in Europa die aus Europa erst Europa macht _________________________ Nähe Lenzburg
|
was soll: $j++; ?
Du arbeitest mit i, aber die Inkrementierung ist mit
for ($i=$start;$i<$start+8;$i++) bereits festgelegt. Also überflüssig.
__________________
[321 Name="Joe"]
wie immer, lieber gleich mit notepad, dem Editor meines Vertrauens
[/321]
use my HTML-Tester
Motto'06: Mut zur deutschen Sprache!
|
|
|
11.03.2005, 22:17
|
#6
|
|
TP-Supporter
Registriert seit: Jun 2001
Ort: Berlin
|
nix wissen.
wie gesagt, ich habe das aussehen gemacht und die postkarten, der programmierer hockt aber leider gerade über den steuern. ich selber habe auch gerade sehr viel zu tun und da komme ich als jemand, der noch nicht sooo fit in php ist mit fremden code erst gar nicht klar.
meinst du, dass es daran liegen könnte?
ich denke zwar überflüssig, aber es bringt uns nicht der lösung näher.
__________________
nicnac1
~~~~~~~~~~~~
was wäre ich bloß ohne euch!
Geändert von nicnac1 (11.03.2005 um 22:36 Uhr).
|
|
|
11.03.2005, 23:03
|
#7
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
ich muss Dir ehrlich sagen, das ich die Schleife etwas verworren finde.
Fakt ist, das bei den letzten Bildern nach dem 4. Bild das </tr><tr> fehlt, dadurch hast Du nach den 4 Bildern noch 4 Tabellenzellen mit space.
versuchs mal mit rausnehmen von && ($i+1) != $picende, also nur
if ( ($i+1)%4 == 0)
|
|
|
12.03.2005, 15:16
|
#8
|
|
TP-Supporter
Registriert seit: Jun 2001
Ort: Berlin
|
ok. verschieben wir mal auf morgen. ich mach jetzt einen auf gastgeber und meine kater tollen hier auf dem tisch rum. also nichts von wegen in ruhe arbeiten.
dank dir schon mal.
vielleicht lag es auch daran, dass ich nicht durch sah, wenn wie du sagst, es so verworren ist.
__________________
nicnac1
~~~~~~~~~~~~
was wäre ich bloß ohne euch!
|
|
|
13.03.2005, 00:50
|
#9
|
|
TP-Specialist
Registriert seit: Nov 2004
Ort: Die Insel in Europa die aus Europa erst Europa macht _________________________ Nähe Lenzburg
|
Zitat:
|
Zitat von nicnac1
ich mach jetzt einen auf gastgeber
|
St@eff.en, wir sind doch gerne Gäste, oder?
@nicole: der ständige Wechsel von
<? php ?> zu Html <? und ?> zurück <? ist ?> etwas <? anstrengend ?> zum ?> lesen und <? analysieren ?>
zB.
PHP-Code:
?>
<td width="<? echo $table_pic_w ?>" height="<? echo $table_pic_h ?>">
<?
__________________
[321 Name="Joe"]
wie immer, lieber gleich mit notepad, dem Editor meines Vertrauens
[/321]
use my HTML-Tester
Motto'06: Mut zur deutschen Sprache!
|
|
|
13.03.2005, 01:07
|
#10
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
|
|
|
13.03.2005, 01:38
|
#11
|
|
TP-Specialist
Registriert seit: Nov 2004
Ort: Die Insel in Europa die aus Europa erst Europa macht _________________________ Nähe Lenzburg
|
Ob wir mit einer formellen Einladung rechnen dürfen? 
__________________
[321 Name="Joe"]
wie immer, lieber gleich mit notepad, dem Editor meines Vertrauens
[/321]
use my HTML-Tester
Motto'06: Mut zur deutschen Sprache!
|
|
|
13.03.2005, 10:42
|
#12
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
<form action="einladung" method="vorher">Party am xx.xx.xxxx</form>

|
|
|
13.03.2005, 11:29
|
#13
|
|
TP-Supporter
Registriert seit: Jun 2001
Ort: Berlin
|
lacht.
gerne.
also, eure empfehlungen habe ich ausprobiert, da ändert sich leider nix.
__________________
nicnac1
~~~~~~~~~~~~
was wäre ich bloß ohne euch!
|
|
|
13.03.2005, 20:14
|
#14
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
Ich habs mal ein bischen leserlicher gemacht und leicht verändert, check das doch mal.
Ich kann das ja nicht testen
ab der Stelle mit dem Hund
PHP-Code:
<? // liegt hier der Hund begraben?
$j=0;
for ($i=$start;$i<$start+8;$i++)
{
$j++;
if($j==5) echo '</tr><tr valign="top"> ';
$image_name = $b_pics[$i];
echo "<td width=\"$table_pic_w\" height=\"$table_pic_h\">";
if ($image_name!="")
{
$size = get_imgsize($image_name);
if ($size[0] > $size[1])
{
$th_width = max($t_maxbreite,$t_maxhoehe);
$th_height = min($t_maxbreite,$t_maxhoehe);
}
else
{
$th_width = min($t_maxbreite,$t_maxhoehe);
$th_height = max($t_maxbreite,$t_maxhoehe);
}
| | |