Beiträge von m.scatello

    ich habe diesen Codeteil gesehen:

    Der steht so in der Doku.

    und frage mich für was man sowas denn braucht? Hat dies Vorteile?

    Wenn du ein Script auf mehreren Domain laufen hast, ist das direkte Schreiben der URL immer anzupassen

    Ich halte dies für überflüssig und auch gefährlich. Weil über $_SERVER['PHP_SELF'] können auch XSS-Attacken erfolgen.

    Das dirname entschärft die Sache.

    Die tragen doch zum Fehler finden nicht bei.

    Doch!!! Es kann auch vorkommen, dass da steht

    output started .....php:1

    Dann kann das noch ein ganz anderes Problem sein. Und wo siehst du da einen Link? Für mich stehen da nur Pfade drin, die keinem was nutzen und genau die könntest du unkenntlich machen, Aber eben nicht die relevanten Teile der Fehlermeldung wegschneiden.

    Die ist voll ständig.

    Nein, ist sie nicht, vollständig ist doch wohl:

    Zitat

    Warning: Cannot modify header information - headers already sent by (output started at /users/sebastian1012/www/homepagebasti1012/gastebuch/admin.php:16) in /users/sebastian1012/www/homepagebasti1012/gastebuch/admin.php on line 22


    Warning: Cannot modify header information - headers already sent by (output started at /link.php

    Und wieder eine verstümmelte Fehlermeldung, der entscheidende Teil fehlt (output started....)

    google liefert mit

    Warning: Cannot modify header information - headers already sent

    Zitat


    Ungefähr 1.710.000 Ergebnisse

    Das sollte reichen.

    Also, Tutorials gibt es zu dem Thema massenhaft. Daher verstehe ich nicht so ganz, warum du da nichts Passendes finden kannst.

    Beispieltabelle:

    Und ein Beispielscript zur Überprüfung des Logins:

    In jedem Script, dass nur für den Admin bestimmt ist, schreibst du an den Anfang:

    PHP
    <?php
       session_start();
       
       if (! isset($_SESSION['isadmin']) || ! $_SESSION['isadmin'])
       {
           header ("Location: url_zum_user_bereich_oder_login");
           exit;
       }
    ?>

    Das ist natürlich alles nicht getestet, aber das Prinzip sollte klar werden.

    Schreibe mal vor

    Code
    <!DOCTYPE HTML>

    diese Zeilen rein:

    PHP
    <?php
       error_reporting(E_ALL);
       ini_set('display_errors', true);
    ?>

    Das solltest du eigentlich immer drin stehen haben, solange das Script nicht endgültig fertig ist.


    Man kann einer Person lediglich Ratschläge geben. Ob er diese annimmt ist seine ganz eigene Sache.

    Das stimmt, ich werde mich jetzt bei basti1012 komplett zurückhalten, weil ich für mich keinen Sinn darin sehe, Hinweise und Tipps zu geben, wenn sie dann ignoriert werden.

    du Antwortest doch irgendein Müll der nix mit den Thema zu tun hat.

    Ja, nee, hat nix mit dem Thema zu tun?!?!?!? Ich habe dir nur Hinweise geschrieben, dass das, was du mit dem Script vor hast, garnicht geht! Und das hat dann nichts mit dem Thema zu tun????

    Woher willst du wissen womit ich mich beschäftige.

    Das weiß ich auch nicht, aber Fakt ist, du fängst etwas an und bringst es dann nicht zu Ende, bestes Beispiel ist dein Gästebuch.

    m.scatello : Lass ihn doch seine Wunschseite so erstellen wie er es für richtig findet. Wenn basti1012 darauf besteht dann ist das eben so. Jeder hat seine eigene Sicht dazu.

    Du hast ja vom Prinzip her Recht, aber basti fängt drei Baustellen auf einmal, ohne eine davon richtig zu beseitigen, Wichtig ist für ihn immer wieder, dass er seine JavaScript-Sch.... einbaut, die vorrangig völliger Blödsinn ist und nicht zum Ziel führt. Der postet seine sinnlosen Dinge ja nicht nur hier, sondern auch in anderen Foren. Und immer endet das im Chaos. Das ist einfach nur extrem albern. Da verliert man einfach die Lust zu helfen, weil man regelmäßig die Sinnlosigkeit bemerkt.

    Zudem kommt noch, dass er sich einfach nicht richtig mit der Materie beschäftigt, sondern wegen jedem Kleinkram in einem Forum nachfragt. Man erkennt leider viel zu oft, dass er sich viel zu wenig mit den Grundlagen beschäftigt. Und das alles mal abgesehen von seiner katastrophalen Rechtschreibung, die oft genug eine Zumutung ist.

    Dann scheint

    Code
    if($row['u_access']=='3')

    nie zuzutreffen. Warum das so ist, kannst nur du selber herausfinden.

    Richtig debuggen

    1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
    2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(-1);
    3. Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.
    4. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
    5. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (...not a valid MySQL result resource...): mysqli_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
    6. Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
    7. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
    8. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
    9. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.