+ Antworten
Ergebnis 1 bis 7 von 7

Thema: PHP im Content

  1. #1
    ath
    ath ist offline
    Neu an Board
    Registriert seit
    31.12.2007
    Beiträge
    21
    Bedankte sich
    1
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard PHP im Content

    Hallo,

    ich setzte Joomla 1.5.17 ein und füge mittels "jumi" ein PHP-Script in einen Beitrag ein. Grundsätzlich scheint das auch zu funktionieren.

    Das eingesetzte Script soll aus einer Datenbank lesen und die Informationen tabellarisch darstellen. Es funktioniert, solange nicht zuviele Daten angezeigt werden müssen. Bis zu 17 Datensätze lassen sich anzeigen, ab dem 18. Satz erhalte ich nur eine leere Seite.

    Woran kann das liegen bzw. gibt es noch andere Möglichkeiten SQL-Daten aufbereitet in einem Beitrag anzeigen zu lassen?

    Das Scipt hänge ich mal an - vielleicht sieht ja jemand einen Fehler, den ich übersehe.

    Gruß
    Andreas

    $land=$_GET['land'];
    $vgl2='';
    $dblnk = mysql_connect( 'meinhost', 'sqluser', 'sqlpasswort');
    if ( ! dblnk ) die("keine Verbindung zur Datenbank");
    mysql_select_db('meineDatenbank', $dblnk) or die ("keine Verbindung zur Tabelle");

    $ergebnis = mysql_query("select * from klimatabelle where land = '$land' order by stadt" );
    mysql_close($dblnk);

    echo '<table cellpadding="2" cellspacing="2" border="1" id="Klimatabelle">';
    echo '<tbody>';

    while($row = mysql_fetch_assoc($ergebnis))
    {
    $vgl1=$row["stadt"];
    if ($vgl1 != $vgl2)
    {
    echo '<tr>';
    echo '<td valign="top" style="background-color: #6481a6; border: 1px solid;"><strong><span style="color: #ffffff;">Stadt:</span></strong></td>';
    echo '<td colspan="12"><strong><span style="font-size: 12pt;">'.$row["stadt"].'; '.$row["hoehe"].' m &uumlber NN; Landesregion: '.$row["region"].', '.$row["hinweis"].'</span></strong></td>';
    echo '</tr>';
    echo '<tr valign="top" style="background-color: #6481a6;">';
    echo '<td></td>';
    echo '<td><strong><span style="color: #ffffff;">Jan.</span></strong></td>';
    echo '<td><strong><span style="color: #ffffff;">Feb.</span></strong></td>';
    echo '<td><strong><span style="color: #ffffff;">Mrz.</span></strong></td>';
    echo '<td><strong><span style="color: #ffffff;">Apr.</span></strong></td>';
    echo '<td><strong><span style="color: #ffffff;">Mai</span></strong></td>';
    echo '<td><strong><span style="color: #ffffff;">Jun.</span></strong></td>';
    echo '<td><strong><span style="color: #ffffff;">Jul.</span></strong></td>';
    echo '<td><strong><span style="color: #ffffff;">Aug.</span></strong></td>';
    echo '<td><strong><span style="color: #ffffff;">Sep.</span></strong></td>';
    echo '<td><strong><span style="color: #ffffff;">Okt.</span></strong></td>';
    echo '<td><strong><span style="color: #ffffff;">Nov.</span></strong></td>';
    echo '<td><strong><span style="color: #ffffff;">Dez.</span></strong></td>';
    echo '</tr>';
    $vgl2=$vgl1;
    }
    if ($row["tt"] == 1)
    {
    echo '<tr>';
    echo '<td valign="top" style="background-color: #6481a6;"><strong><span style="color: #ffffff;">Temperatur in &degC</span></strong></td>';
    echo '<td><span style="color: #000000;">'.$row["tt01"].'</span></td>';
    echo '<td><span style="color: #000000;">'.$row["tt02"].'</span></td>';
    echo '<td><span style="color: #000000;">'.$row["tt03"].'</span></td>';
    echo '<td><span style="color: #000000;">'.$row["tt04"].'</span></td>';
    echo '<td><span style="color: #000000;">'.$row["tt05"].'</span></td>';
    echo '<td><span style="color: #000000;">'.$row["tt06"].'</span></td>';
    echo '<td><span style="color: #000000;">'.$row["tt07"].'</span></td>';
    echo '<td><span style="color: #000000;">'.$row["tt08"].'</span></td>';
    echo '<td><span style="color: #000000;">'.$row["tt09"].'</span></td>';
    echo '<td><span style="color: #000000;">'.$row["tt10"].'</span></td>';
    echo '<td><span style="color: #000000;">'.$row["tt11"].'</span></td>';
    echo '<td><span style="color: #000000;">'.$row["tt12"].'</span></td>';
    echo '</tr>';
    }
    }
    echo '</tbody>';
    echo '</table>';


    ?>

  2. #2
    Verbringt hier viel Zeit
    Registriert seit
    29.05.2007
    Beiträge
    548
    Bedankte sich
    33
    Erhielt 139 Danksagungen
    in 138 Beiträgen

    Standard

    HI!

    Ist der Quelltext der leeren Seite auch leer oder erscheint da eine Fehlermeldung?

    Funktioniert das Skript außerhalb von Joomla - auf einer Extra-Seite?

    Liegt die Tabelle in einer Extra-Datenbank?

    cu
    Volker
    lesenswert - nicht nur für Einsteiger: Joomla-FAQ
    mit dem Fahrrad in Pavenstädt

  3. #3
    ath
    ath ist offline
    Neu an Board
    Registriert seit
    31.12.2007
    Beiträge
    21
    Bedankte sich
    1
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Hallo Volker,

    es ist keine extra Datenbank und das Script funktioniert grundsätzlich, d.h. in 99% aller Fälle. Lediglich aber einer gewissen Anzahl von Sätzen im Ergebnis erfolgt keine Anzeige mehr. Schränke ich mein SQL-Select-Statement mittels einer limit Klausel ein, funktioniert es wieder. Insofern sieht es so aus, als ob es etwas mit der Anzahl der Datensätze oder der daraus resultierenden Größe des Beitrages zu tun hat.

    Wenn es nicht funktioniert, so ist die gesamte Seite leer, d.h. kein Menü oder sonst etwas. Lasse ich mir den Quellcode anzeigen (im Explorer), so sehe ich dieses:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML><HEAD>
    <META content="text/html; charset=utf-8" **********=Content-Type></HEAD>
    <BODY></BODY></HTML>
    l

  4. #4
    Moderator Avatar von Lacki
    Registriert seit
    27.04.2006
    Ort
    Direkt um die Ecke
    Beiträge
    8.729
    Bedankte sich
    337
    Erhielt 3.611 Danksagungen
    in 2.970 Beiträgen

    Standard

    Nur mal so als Anmerkung: Wenn Du GET-Variablen direkt in einem SQL-Statment gebrauchst, öffnet das einer SQL-Injection Tür und Tor. Benutzereingaben sind immer als "Böse" zu betrachten und entsprechend zu filtern. Informiere Dich zu Deiner eigenen Sicherheit über die sichere Übernahme von Benutzereingaben.

  5. #5
    Hat hier eine Zweitwohnung Avatar von Alan
    Registriert seit
    01.10.2006
    Ort
    Mülheim an der Ruhr
    Alter
    51
    Beiträge
    1.701
    Bedankte sich
    71
    Erhielt 470 Danksagungen
    in 426 Beiträgen

    Standard

    Nun bin ich kein Fachmann für die interne Funktionsweise von MySQL
    Deshalb vielleicht nur als Möglichkeit:
    Nimm mal das
    mysql_close($dblnk);
    aus deinem Code. Wird normalerweise bei Beendigung des scriptes automatisch geschlossen. Vielleicht wird ja der Link hier zu früh geschlossen
    Ich reagiere nur auf Fragen, deren Lesbarkeit keine Zumutung darstellt
    JUG-im-Pott (Joomla-User-Group)
    und ebenfalls "no Artisteer support"

  6. #6
    ath
    ath ist offline
    Neu an Board
    Registriert seit
    31.12.2007
    Beiträge
    21
    Bedankte sich
    1
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Zitat Zitat von Alan Beitrag anzeigen
    Nimm mal das
    mysql_close($dblnk);
    aus deinem Code.
    Hi Alan,

    das habe ich schon probiert, d.h. ganz weggelassen oder an's Ende vom Script gestellt. Halt leider keine Auswirkungen. Abgesehen davon steht das Ergebnis in der Variablen $row und die ist da - unabhängig davon, ob die SQL-Verbindung noch steht oder nicht.

    Gruß
    Andreas

  7. #7
    ath
    ath ist offline
    Neu an Board
    Registriert seit
    31.12.2007
    Beiträge
    21
    Bedankte sich
    1
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    [QUOTE=Lacki;1072479 Benutzereingaben sind immer als "Böse" zu betrachten und entsprechend zu filtern. Informiere Dich zu Deiner eigenen Sicherheit über die sichere Übernahme von Benutzereingaben.[/QUOTE]

    Hi Lacki,

    ich bin für jeden Vorschlag offen. Bedenke aber bitte, daß es sich nicht um eine Benutzereingabe handelt, sondern lediglich um eine Variablenübergabe. Wie kann ich sonst eine Variable übergeben?

    Gruß
    Andreas

+ Antworten

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein