Script findet </table> nicht obwohl vorhanden

Brian Folte

Angesehenes Mitglied
Hallo ich habe folgenes Problem, ich beseitige gerade alle Fehler auf meine Website und nun findet mein Script das Endtag </table> nicht.

Hier mal der Code:

Über euere Hilfe wäre ich sehr dankbar den irgendwie verschiebt mir dies nun mein Footer.

CODE echo "<table style=\"width:".$aus_settings->layout_width."px;";

   if(!empty($aus_settings->layout_height))
       echo "height:".$aus_settings->layout_height."px;";

   if(!empty($aus_settings->layout_bgcolor))
       echo "background-color:".$aus_settings->layout_bgcolor.";";

   echo "background-image:url(".$aus_settings->layout_background.");\">";

   if(empty($_POST['mail']) || empty($mail))
   {
       $mail=$lang['onl_formemail'];
       echo "<tr><td class=\"output\" style=\"padding-left:4px\">\n
       <input class=\"output\" type=\"text\" name=\"mail\" value=\"".$mail."\" onfocus=\"if(this.value=='".$mail."') this.value=''\" onblur=\"if(this.value=='')this.value='".$mail."'\" size=\"12\" >\n
       </td></tr>\n";
   }
   else
   {
       echo "<tr><td class=\"output\" style=\"padding-left:4px\">\n
       <input class=\"output\" type=\"text\" name=\"mail\" value=\"".$mail."\" size=\"12\" />\n
       </td></tr>\n";
   }

   if($aus_settings->form_name=="1")
   {
   echo "<tr><td class=\"output\" style=\"padding-left:4px\">\n
   <input class=\"output\" type=\"text\" name=\"name\" value=\"".$lang['onl_formname']."\" onfocus=\"if(this.value=='".$lang['onl_formname']."') this.value=''\" onblur=\"if(this.value=='')this.value='".$lang['onl_formname']."'\" size=\"12\" >\n
   </td></tr>\n";
   }

   if($aus_settings->group_choice=="1")
   {

       echo "<tr><td class=\"output\" style=\"height:8px;\"></td></tr>\n";
       echo "<tr><td class=\"output\" style=\"padding-left:4px; font-family:".$aus_settings->layout_font_face."; font-size:".$aus_settings->layout_font_size."pt; color:".$aus_settings->layout_font_color.";\">".$lang['onl_group'].":</td></tr>\n";
       $i=1;
       $get_groups=$mysql->query("SELECT * FROM {$prefix}_groups WHERE id<>'1' AND hidden<>'1' ORDER BY groupname");
       while($aus_groups=$mysql->fetchObject($get_groups))
       {
       echo "<tr><td class=\"output\" style=\"padding-left:0px; font-family:".$aus_settings->layout_font_face."; font-size:".$aus_settings->layout_font_size."pt; color:".$aus_settings->layout_font_color.";\"><input class=\"output\" type=\"checkbox\" name=\"group_id[".$i."]\" value=\"".$aus_groups->id."\" />".$aus_groups->groupname."</td></tr>\n";
       $i++;
       }
       echo "<tr><td class=\"output\" style=\"height:8px;\"></td></tr>\n";
   }

   if($aus_settings->deactivation=="0")
   {
       echo "<tr><td class=\"output\" style=\"padding-left:0px; font-family:".$aus_settings->layout_font_face."; font-size:".$aus_settings->layout_font_size."pt; color:".$aus_settings->layout_font_color.";\"><input class=\"output\" type=\"radio\" name=\"action\" value=\"ein\" checked=\"checked\" >".$lang['onl_subscribe']."</td></tr>\n";


       echo "<tr><td class=\"output\" style=\"padding-left:0px; font-family:".$aus_settings->layout_font_face."; font-size:".$aus_settings->layout_font_size."pt; color:".$aus_settings->layout_font_color.";\"><input class=\"output\" type=\"radio\" name=\"action\" value=\"aus\" >".$lang['onl_unsubscrib']."<br ></td></tr>\n";
   }
   else
   {
       echo "<tr><td class=\"output\"><input type=\"hidden\" name=\"action\" value=\"ein\" /></td></tr>\n";
   }

   echo "<tr><td class=\"output\" style=\"height:8px;\"></td></tr>\n";
   echo "<tr><td class=\"output\" style=\"padding-left:4px;\"><input class=\"output\" type=\"submit\" name=\"newsletter_ok\" value=\"    ".$lang['onl_ok']."    \" ></td></tr>\n";
   echo "<tr><td class=\"output\" style=\"height:4px;\"></td></tr>\n";

   $get_info=$mysql->query("SELECT * FROM $prefix"."_info");
   $aus_info=$mysql->fetchObject($get_info);

   echo "<tr><td class=\"output\" style=\"padding-left:4px; font-family:".$aus_settings->layout_font_face."; font-size:".$aus_settings->layout_font_size."pt; color:".$aus_settings->layout_font_color."; ></td></tr>\n";


echo "</table>";
 
QUOTE (Brian Folte @ Sa 13.1.2007, 18:16) Hallo ich habe folgenes Problem, ich beseitige gerade alle Fehler auf meine Website und nun findet mein Script das Endtag </table> nicht.

Hier mal der Code:

...
echo "</table>";

Steht doch da.

Nee, ernsthaft, das ist kein Code, sondern Müll - oder soll das Kunst sein?

Da wird ohne jede Fehlerbehandlung auf die Datenbank zugegriffen, wahrscheinlich funktioniert da irgendetwas nicht. Also bricht das Script ab und führt den Schluß nicht mehr aus.

Und ich gucke mir das lieber nicht genauer an, sonst finde ich noch einen Weg, das Ding zu hacken.
 
Danke für deine Meinung. Also meinst du ich soll dieses Script lieber nicht verwenden?

Nur welchen Newsletter soll ich dann nehmen?

LG Brian
 
Ich kenne die Feinheiten des PHP-Zugriffs auf Datenbanken nicht, weil ich das nicht verwende.

Aber wenn ich so etwas

CODE $get_groups=$mysql->query("SELECT * FROM {$prefix}_groups WHERE id<>'1' AND hidden<>'1' ORDER BY groupname");
while($aus_groups=$mysql->fetchObject($get_groups))


sehe, dann fehlt jegliche Fehlerbehandlung: Datenbank nicht erreichbar, keine Daten zurück usw. Das nicht erzeugte </table> am Ende, das ja offenkundig dasteht, ist dann nur ein Indikator dafür, daß irgendetwas in den Zeilen davor schiefgegangen sein muß.

Und wenn das schon so wackelig ist, wie ist dann erst der Rest des Codes? Wird vielleicht die Liste der zu versendenden Mails bei irgendeinem Fehler nicht einmal, sondern als Schleife ausgeführt, so daß der Code permanent Mails verschickt? Und auch da müssen die Variableninhalte gegen Sql- und Codeinjektionen abgesichert sein - was passiert, wenn der Nutzer Spitzklammern, einfache Hochkommata o.ä. einfügt? Wohlgemerkt - nicht der, der sich beim Newsletter anmeldet, sondern Du als Administrator, weil Du irgendeinen besonderen Effekt haben willst oder O'Neill im Text vorkommt.

Ich verstehe nichts von Autos - aber in ein Auto, wo ein Rad oder ein Kotflügel fehlt, würde ich nicht unbedingt einsteigen.
 
Zurück
Oben