Beiträge von Arne Drews

    Sicherheitsrelevante Token o.ä. in JavaScript zu erstellen ist selten eine gute Idee, da Client seitig, manipuier- einsehbar, usw.

    Gerade aus Sicherheitssicht sollte das alles Server seitig bspw. mit PHP erfolgen. Auch die Verarbeitung sollte grundlegend auf dem Server ausgewertet werden.

    Mit Javascript kann man eine "Vor"-Prüfung machen, um die Usability zu erhöhen. Mehr sollte man damit aber auch nicht machen.

    1. Nicht numerische Indizes werden in Quotes geschrieben, bspw.: $Data['ID'], da sie ansonsten als Konstanten interpretiert werden. Bei korrekt eingestelltem ErrorReporting sollte an der Stelle auch ein Hinweis ausgespuckt werden.
    2. Ein @ vor einer Funktion unterdrückt Fehlermeldungen! Du verbaust Dir eine sinnvolle Fehleranalyse.
      Jedes Tutorial, das @ vor Funktionen verwendet, solltest Du in Frage stellen!
    3. Die mysql_* Erweiterung ist schon seit einigen Jahren deprecated und in ab PHP 7 endlich entfernt. Sollte Dein Provider - falls Du nicht lokal testest? - mal umstellen, fliegt Dir eh alles um die Ohren, wie m.scatello schon schrieb. Verwende MySQLi oder - meine persönliche Empfehlung - PDO. Und zwar gleich, denn: "Ich will erstmal, dass es läuft, dann stelle ich um..." wird meistens nichts!
    4. PHP zerstört kein Design! Mit PHP generierst Du ein HTML-Dokument, das an den Browser gesendet wird. Für den Aufbau des Dokument/DOM bist Du verantwortlich und da wird der Fehler irgendwo liegen.

    Du meinst sowas: $low['Über uns'];? Das ist erlaubt, ja. PHP lässt ziemlich viel zu, wenn es um die Benennung von Schlüssel geht, u.a. auch Sonderzeichen.

    Ich bin mir allerdings nicht ganz sicher, ob MySQL das auch als Spaltenbezeichner zulässt...

    EDIT: Gerade mal geschaut, MySQL erlaubt das auch, wenn man den Bezeichner in Backticks setzt, was der TE ja getan hat.

    Trotzdem gibt es immer noch einen syntaktischen Fehler an der Stelle.

    Die Fehermeldung kann man googlen. Man stößt dann mit einer Wahrscheinlichkeit von ca. 99.8% auf die Lösung, dass mysqli_query() keine gültige Resource zurückgibt. Dazu hilft dann die Doku weiter.

    Was also tun?

    Einfach mal die Query manuell bspw. über phpMyAdmin ausführen und schauen, was da passiert.

    Alternativ, aber immer erwähnenswert: Fehlerbehandlung auch für MySQLi berücksichtigen bzw. anwenden.

    PS: ein syntaktischer Fehler ist übrigens in der Query bereits sehr offensichtlich erkennbar

    Hi,

    -1, weil die Variable bereits im ersten Durchgang inkrementiert wird und somit dann 0 ist ;)

    Aber das Thema mit dem Leerzeichen finde ich interessant, ist mir so noch nie aufgefallen.

    Vermutlich hatte sich da bisher nie eins eingeschlichen bei mir, aber trotzdem schon merkwürdig, dass der Parser da so ein Problem mit hat.

    Das Highlightning ist vermutlich nur hier im Editor fehlerhaft.

    Solange das schließende EOHTML; keine Einrückung hat, sollte das technisch kein Problem geben.

    Allerdings dürfte es Probleme mit dem Heredoc in Bezug auf die DoubleQuotes geben, fällt mir gerade auf.

    Evtl. mal mit der Nowdoc-Syntax testen:

    PHP
    $sHtmlTableRow =<<<'EOHTML'
    <tr>
        <td><a class="#CSSCLASS#" href="db_verlauf.php?objektId=#ID#">#ID#</a></td>
        <td>#OBJEKT#</td>
        <td>#PREIS#</td>
        <td>#EIGENSCHAFTEN#</td>
        <td>#ANGEBOT#</td>
    </tr>
    EOHTML;

    Sollte das nicht helfen, musst Du die DoubleQuotes innerhalb der des String maskieren.

    Ich kann mich täuschen aber man kann zunächst mal jede Seite in einem iFrame anzeigen wenn es nicht ausdrücklich unterbunden wird.

    Dann wären wir schon zwei, die sich täuschen würden. Das macht es für mich ja eben etwas unglaubwürdig, denn wenn er seine eigene Seite nicht in einen iframe einbinden kann, weiß er auch, wie man das unterdrückt. ;)

    Nur mal als Anregung, man muss nicht die Ausgabe komplett wiederholen, wenn sich nur ein einziger Parameter ändert.

    Angenommen ich bereite meine Ausgabe in einer Variablen vor:

    PHP
    $sHtmlTableRow =<<<EOHTML
    <tr>
        <td><a class="#CSSCLASS#" href="objekt.php?objektId=#OBJID#">#OBJID#</a></td>
        <td>#OBJNAME#</td>
        <td>#OBJPROPS#</td>
    </tr>
    EOHTML;

    Dann benötige ich lediglich eine ternäre Operation für die Entscheidung, ob die Zeile eingefärbt wird oder nicht:

    ungetestet, aber sollte so in etwa hinhauen...