Ankündigung

Einklappen
Keine Ankündigung bisher.

Datenausgabe funktioniert nicht (Formular)

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • altram
    antwortet
    So, habe erfolgreich Fehler gesucht und behoben. SUPERKLASSE. Danke Euch schonmal für diese Tipps.

    Ich wusste zum Beispiel nicht, das man in php gerne sagen sollte, das es eine Variable gibt (da man sonst ja den undefinied variable Fehler bekommt).

    Stimmt doch, oder ?

    Ein Fehler verstehe ich allerdings nicht so ganz. Obwohl die Variable nicht unbekannt ist, sagt er es trotzdem. Hier ein Codeauschnitt:

    PHP-Code:
    function array_escape_and_strip($array){

        if(!
    is_array($array))
        {
            return;
        }    
        foreach(
    $array AS $key => $inhalt)
        {
            if(
    is_array($inhalt))
            {
                
    $array_return[$key] = array_escape_and_strip($inhalt);
            } else 
            {
                if(
    get_magic_quotes_gpc())
                {
                    
    $array_return[$key] = trim(strip_tags($inhalt));
                    continue;
                } 
                
    $array_return[$key] = trim(strip_tags(addslashes($inhalt)));
            }
        }
        
    $array $array_return;
        return 
    $array;

    Fehler: Notice: Undefined variable: array_return in xxxxxxxxxx

    Egla ob ich sie vorher bekannt gebe oder nicht, mosert er trozdem rum.

    Einen Kommentar schreiben:


  • altram
    antwortet
    Öhm, ja ok. Was meinst Du denn genau ?

    Einen Kommentar schreiben:


  • TheMewtu
    antwortet
    Hi ich kenne mich zwar auch noch nicht so gut aus mit PHP,
    würde dir aber empfehlen mal ein Auge auf deine "If Anweisung" zu werfen

    PHP-Code:
     $x = @mail($ihre_email,addslashes($betreff_der_nachrichten),$message,"from: $ihre_email");        
                if(
    $x)  // <--- die hier
                
    {
                    
    $meldungen .= "Vielen Dank für Ihre Nachricht!";
                    
    $_POST = array();
                    
    $write_db 1;
                    break; 

    Einen Kommentar schreiben:


  • altram
    antwortet
    @bystones... Du hast ja so recht (also mit den Kommentaren) tz tz...

    was meinst Du mit: "Solche Konstruktionen bringern nichts solange zwischen den PHP-Tags nichts steht außer Leerzeichen + Zeilenumbrüche..." ?

    Einen Kommentar schreiben:


  • ByStones
    antwortet
    Code:
    INSERT INTO kontakt_db (name, email, telefon, fax, nachricht)
          VALUES ('$name','$email', '$telefon', '$fax', '$nachricht')
    Weis nicht genau wie deine Validierung aussieht, aber falls da nicht alles perfekt läuft kann das böse enden => mysql_real_escape_string();
    EDIT: Wies aussieht überprüfst du garnix bevors in die DB kommt...

    Warum schreibst du die Kommentare die was mit PHP zu tun haben nicht auch in den PHP Code sonst kann jeder sie lesen ?
    PHP-Code:
    <?php
    //Einzeiliger Kommentar

    /* Vielzeiliger Kommentar
    BLubb
    Und nochmal 
    */
    ?>
    Code:
    ?>
    
    <?php
    Solche Konstruktionen bringern nichts solange zwischen den PHP-Tags nichts steht außer Leerzeichen + Zeilenumbrüche...

    Einen Kommentar schreiben:


  • altram
    antwortet
    cool, danke Euch.

    Ich mach ma..

    Gruß Alex

    Einen Kommentar schreiben:


  • lstegelitz
    antwortet
    Andreas hat dir beschrieben, wie du mit dem Debugging beginnen kannst... insbesondere und ausdrücklich erwähnenswert ist dieses Stück Code, mit dem du die Fehleranzeige komplett einschaltest und alle Meldungen im Browser anzeigen lässt.
    PHP-Code:
    error_reporting(-1);
    ini_set('display_errors'1); 
    Das gehört ganz an den Anfang des zu untersuchenden Scripts.

    Einen Kommentar schreiben:


  • altram
    antwortet
    Hi,

    danke für eure Antworten. Ja, das habe ich mir auch schon gedacht, das der Fehler dort sein müsste. Ich komme da nur nicht zu einem Schluß, da in der Datei ja ansich nur Daten ausgelesern werden und nichts gesetzt wird (außer in der DB jetzt). Oder bin ich da aufm Holzweg ?

    Bin in php eben noch nicht sooo fit, daher suche ich hier ein paar Tipps.

    Danke & Gruß Alex

    Einen Kommentar schreiben:


  • lstegelitz
    antwortet
    Zitat von altram Beitrag anzeigen
    Nur wenn alles richtig ist und die Nachricht gesendet wurde, sagt er eben nicht –Vielen Dank für ihre Nachricht-…

    Das macht er nur, wenn ich meine –ich schreibs mal in die DB- Datei weglasse.
    Da ist doch schon die Unstimmigkeit:

    MIT der "ich schreibs mal in die DB Datei" -> Fehler
    OHNE die "ich schreibs mal in die DB Datei" -> kein Fehler

    Mein Tipp: Der Grund für das fehlerhafte Verhalten steckt in der "ich schreibs mal in die DB Datei"

    Einen Kommentar schreiben:


  • Andreas
    antwortet
    Standard-Antwort:
    Richtig debuggen
    1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
    2. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
    3. An den Anfang des Scriptes schreibt man die Zeile: error_reporting(E_ALL);
    4. 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 (oder auch nicht). Hilfreich sind da Funktionen wie var_dump oder print_r
    5. Schritt 4 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
    6. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
    7. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
    8. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

    Einen Kommentar schreiben:

Lädt...
X