Script - Funktionalität

  • Die Notice-Meldungen kommen, weil das Script schlampig programmiert wurde, aber wo sind jetzt die MySQL-Fehler? Plötzlich weg?

  • Moin moin,

    ein Fehler war ganz am Anfang im HTML - Code,

    HTML
    <input type="submit" value="weiter -->">

    Die anderen Fehler sind in line 35 + 53, also hier:

    PHP
    if ($_GET['schritt'] == "1") {
    +
    if ($_GET['schritt'] == "2") {

    Ich überlege ob ich das Ding nicht ummodel mit Installation create table usw. anstatt der hier verwendeten setup.php.
    Und vor allem dann mit einer include.php bei den anderen Dateien, ist eh nicht so toll in ausgabe.php und eingabe.php jedesmal die Zugangsdaten drin zu haben oder ?

    Gruß Nobbi.

  • Und was sollen wir jetzt machen? Oder glaubst du wirklich, dass wir mit den Infos irgendetwas anfangen könnten?

  • Nee, besser wäre dein letzter Deutsch-Aufsatz :lach-hand:

    Hallloooooo? Jemand zu Hause? Was denn sonst????

  • ok, dann hätten wir das eintragen-script


    wo das absenden-script drin liegt

    welches wiederum das ausgeba-script ausgibt


    die Frage ist jetzt warum kommt in der Datenbank keine Eintragung an ....... hab ich was vergessen ?

    Gruß Nobbi.

  • Für jedes mal 1 Euro, und ich würde in Urlaub fahren:

    Richtig debuggen:

    • Man bemerkt, dass ein Skript nicht das tut, was es soll.
    • Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(E_ALL);
    • Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.
    • Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
    • 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...): mysql_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
    • Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
    • Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
    • Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
    • Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.


    Dass bei dir nix eingetragen wird, ist kein Wunder, denn du greifst auf Variablen zu, die es nicht gibt. Außerdem sind Insert's ohne ein mysql_real_escape_string auf die Werte sehr gefährlich und an jedes mysql_query gehört auch eine Fehlerüberprüfung. Und dann dieses elendige "Select *", was anscheinend auch nicht auszurotten ist!

    Warum soll ich nicht SELECT * schreiben?
    http://www.php-faq.de/q-sql-select.html

  • 1. Man bemerkt, dass ein Skript nicht das tut, was es soll.


    jep


    2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(E_ALL);


    ok


    3. Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.


    wußte ich nicht, danke für den Tip


    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.


    so seh ich das auch... "lö schrott".


    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...): mysql_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.


    was es nicht alles gibt, ich muß noch viel lernen.


    6. Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen


    ok


    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.


    ok


    8. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.


    ok


    9. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.


    ok


    Dass bei dir nix eingetragen wird, ist kein Wunder, denn du greifst auf Variablen zu, die es nicht gibt.


    Hatte ich mir fast gedacht, war aber extrem verunsichert


    Außerdem sind Insert's ohne ein mysql_real_escape_string auf die Werte sehr gefährlich


    Wußte ich, hätte ich noch geändert

    und an jedes mysql_query gehört auch eine Fehlerüberprüfung.


    Wußte ich nicht, werde ich mich drum kümmern

    Und dann dieses elendige "Select *", was anscheinend auch nicht auszurotten ist!


    Warum soll ich nicht SELECT * schreiben?
    http://www.php-faq.de/q-sql-select.html


    Krass, hör ich zum ersten mal....


    Also erstmal: vielen Dank für die Tips, jetzt hab ich gut was zu tun :-).

    Die Denk- und Vorgehensweise von (mehr oder weniger) Anfängern ist leider häufig eine andere als die von "alten Hasen".
    Kommt auch daher das Dinge, die nicht funktionieren, manchmal wirklich nur kleinste Ursachen haben.
    Muß man drauf kommen, was nicht immer auf anhieb gelingt.
    Daß allerdings das Script so fehlerhaft ist finde ich doch ein bissl erschreckend.

    Danke und viele Grüße, Nobbi.

  • mal ganz am rande nobbi...
    in der ganzen zeit der diskussion und reparaturversuche bei einem fremden script, wäre, wie ich glaube, die effizienz wesentlich erhöht, wenn du es selber geschrieben hättest ;)

  • jo, das habe ich nachher auch gedacht.
    Dagegen sprach erstmal das ich gehofft hatte es funktioniert auf anhieb bzw.nach der setup.php Änderung.
    Und komplett selber schreiben "KÖNNEN" muß man das ja auch.
    Ich denke ich werde mir irgendwas zurecht biegen :-).
    Was ich komisch finde:

    Habe im Dezember überhaupt erst angefangen (und wußte bis dahin nicht mal was ein Editor ist ).
    Ich fand HTML angennehm, CSS spannend, MySQL ging auch....
    Nur bei PHP, was angeblich eine einfache Sprache ist, platzt einfach der Knoten nicht.
    Selbst nach mehrmaligen durcharbeiten von 2 verschiedenen Büchern und "unzähligen" Internetseiten und Tutorials dazu.
    Tja, man kann nicht alles haben :-o.

  • Nur bei PHP, was angeblich eine einfache Sprache ist, platzt einfach der Knoten nicht.


    PHP ist einfach, ohne Zweifel. Und nur Geduld, der Knoten wird schon noch platzen, und wenn nicht, auch nicht schlimm. Nicht jeder ist zum Programmieren geeignet.