Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   PHP HILFFFEEEE!!!!! :-) (https://www.delphipraxis.net/59038-php-hilfffeeee.html)

IOAH 16. Dez 2005 09:33


PHP HILFFFEEEE!!!!! :-)
 
Hallo Leute!

Ich bin gerade mal wieder am Verzweifeln :cry:
Hab folgende PHP-Klasse geschrieben:

Code:
class EinArtikel
  {
    var $datum;
    var $titel;
    var $untertitel;
    var $text;
    var $bildbeschreibung;
    var $bild;

    /*Konstruktor*/
    function EinArtikel($dat , $ti , $untertit , $te , $bildbe , $bil)
      {
        $this->$datum = $dat;
        $this->$titel = $ti;
        $this->$untertitel=$untertit;
        $this->$text =$te;
        $this->$bild = $bil;
        $this->$bildbeschreibung = $bildbe;

      }

    function create()
      {
        ?>
         <table border=0 width="500">
           <tr>
             <td colspan="3" background="pics/classpics/titel.jpg" align="center" valign="top" width="500" height="50">
               <?php
                 print "<h1>";
                 print $this->$titel;
                 print "</h1>";
                 if ($this->$untertitel)
                   {
                      print "<h2>";
                      echo $this->$untertitel;
                      print "</h2>";
                   }
                 else
                   {
                     print "Leck du mich am Arsch";
 
                   }
               ?>
             </td>
           </tr>
           <tr>
             <td align="left" background="pics/classpics/leftright.jpg" width="4" valign="top"></td>
             <td align="justify" width="492" valign="top"><?php print "
";print $this->$datum;print"

";print $this->$text; print "

";
               if ($this->$bildbeschreibung && $this->$bild)
                 {
                    print "<a href=\"index.php?mainframe=";
                    print $this->$bild;
                    print "\">";
                    print $this->$bildbeschreibung;
                    print "</a>";
                 }
             ?></td>
             <td align="right" background="pics/classpics/leftright.jpg" width="4" valign="top"></td>
           </tr>
           <tr>
             <td colspan="3" background="pics/classpics/unten.jpg" align="center" valign="top" width="500" height="6"></td>
           </tr>
         </table>
        <?php
      }
  }
Irgendwie haben plötzlich alle Variablen den gleichen Inhalt wie $bildbeschreibung... Ich hab mittlerweile festgestellt, dass es damit zusammenhängt, dass sie im Konstruktor an letzter Stelle steht... packt man was anderes nach unten, so wird das als allgemeiner Wert verwendet... WARUM??? Wo hat sich da was eingefräst????????? :wiejetzt:

Danke schonmal im Vorraus!!!

IOAH

Sharky 16. Dez 2005 09:35

Re: PHP HILFFFEEEE!!!!! :-)
 
Hai IOAH,

gebe "bitte" deinem Thread einen aussagekräftigen Titel. Mit PHP kann so keiner etwas anfangen und Hilfe sucht hier eigentlich jeder.

Gollum 16. Dez 2005 09:51

Re: PHP HILFFFEEEE!!!!! :-)
 
Hallo,

in Deinem Code taucht immer wieder ?> auf, ohne dass das entsprechende Gegenstück <php vorhanden ist.

An Deiner Stelle würde ich noch einmal die Funktion Create überarbeiten. Ich denke, dass das Objekt durch die Umschaltung PHP - HTML etwas durcheinanderkommt.

xaromz 16. Dez 2005 10:25

Re: PHP HILFFFEEEE!!!!! :-)
 
Hallo,

Code:
$this->$datum = $dat;
$this->$titel = $ti;
$this->$untertitel=$untertit;
$this->$text =$te;
$this->$bild = $bil;
$this->$bildbeschreibung = $bildbe;
Du verwendest das falsch. Das muss so heissen:
Code:
$this->datum = $dat;
$this->titel = $ti;
$this->untertitel=$untertit;
$this->text =$te;
$this->bild = $bil;
$this->bildbeschreibung = $bildbe;
Eigenschaften eines Objekts haben kein Dollarzeichen beim Referenzieren.

Gruß
xaromz

omata 16. Dez 2005 17:16

Re: PHP HILFFFEEEE!!!!! :-)
 
Moin,

ausserdem würde ich nicht HTML- und PHP-Ausgaben mischen.

Bau doch alles in einer PHP-Umgebung zusammen und gib es über einen Rückgabeparameter zurück.
Beim Aufruf deiner Klasse kannst du dann das Echo machen.
Dann wird dein Code gleich viel sicherer, erweiterbarer, stabiler, sprechender, strukturierter, testbarer, ...

Code:
<?php

class EinArtikel {
  var $DATUM;
  var $TITEL;
  var $UNTERTITEL;
  var $TEXT;
  var $BILDBESCHREIBUNG;
  var $BILD;

  /*Konstruktor*/
  function EinArtikel($datum, $titel, $untertitel, $text, $bildbeschreibung, $bild) {
    $this->DATUM = $datum;
    $this->TITEL = $titel;
    $this->UNTERTITEL = $untertitel;
    $this->TEXT = $text;
    $this->BILD = $bild;
    $this->BILDBESCHREIBUNG = $bildbeschreibung;
  }

  function create() {
    $result =
      "<table border=\"0\" width=\"500\">\n" .
      " <tr>\n" .
      " <td colspan=\"3\" background=\"pics/classpics/titel.jpg\" align=\"center\"
             valign=\"top\" width=\"500\" height=\"50\">\n".
      "  <h1>" . $this->TITEL . "</h1>\n";

    if ($this->UNTERTITEL) {
      $result = $result .
        "<h2>" . $this->UNTERTITEL . "</h2>\n"
    } else {
      $result = $result .
        "Hier stand etwas völlig blödsinniges\n";
    }

    $result = $result .
      " </td>\n" .
      " </tr>\n" .
      " <tr>\n" .
      " <td align=\"left\" background=\"pics/classpics/leftright.jpg\"
             width=\"4\" valign=\"top\">\n" .
      " </td>\n" .
      " <td align=\"justify\" width=\"492\" valign=\"top\">\n" .
      "  
" . $this->DATUM . "

" . $this->TEXT . "

\n";
     
    if ($this->BILDBESCHREIBUNG && $this->BILD) {
      $result = $result .
        "<a href=\"index.php?mainframe=" . $this->BILD . "\">" .
        $this->BILDBESCHREIBUNG .
        "</a>\n";
    }

    $result = $result .
      " </td>\n" .
      " <td align=\"right\" background=\"pics/classpics/leftright.jpg\"
             width=\"4\" valign=\"top\">\n" .
      " </td>\n" .
      " </tr>\n" .
      " <tr>\n" .
      " <td colspan=\"3\" background=\"pics/classpics/unten.jpg\" align=\"center\"
             valign=\"top\" width=\"500\" height=\"6\">\n" .
      " </td>\n" .
      " </tr>\n" .
      "</table>\n";
     
    return $result;
  }
}
?>
MfG
Thorsten

generic 17. Dez 2005 01:10

Re: PHP HILFFFEEEE!!!!! :-)
 
ich empfehle für die ausgabe immer eine template engine zu nutzen!

http://www.quantendrehung.de/cms/Dreamteam
http://www.phpug-hannover.de/material.php

gruss


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz