Ankündigung

Einklappen
Keine Ankündigung bisher.

Funktion beim Ausführen einer PHP datei aufrufen

Einklappen

Neue Werbung 2019

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

  • Funktion beim Ausführen einer PHP datei aufrufen

    Guten Tag,
    ich bin neu hier in diesem Forum und lerne etwa seit einem Monat PHP. Jedoch habe ich gemerkt, dass die geschriebenen Scripte immer unübersichtlicher wurden und bin dann auf OOP gestoßen. Kurzerhand habe ich mich gleich ans herumprobieren gemacht und gleich versucht mit OOP ein Script zu erstellen, was die simple Aufgabe hat eine Emailadresse eines HTML Formulares zu prüfen und in einer MySQL Datenbank zu speichern (Anfang eines Newslettersystems). Jedoch habe ich das Problem, dass ich die Fehlermeldung Fatal error: Call to undefined function pruefung() bekomme, sobald die Emailadresse aus dem Formular an das Script gesendet werden. Wo ist hier der Fehler?
    Das Formular ist ein einfaches HTML formular, was ein Textfeld und einen Button hat, welches per post an eintragen.php gesendet wird
    PHP-Code:
    <?php
    //Newsletterscripttest: eintragen.php
    require("datenbank.inc.php");

    pruefung();
    class 
    Fehlermeldungen
    {
        public function 
    emptyfield ()
        {
            echo(
    "Feld ist leer");
        return 
    true;     
        }
        public function 
    mysqlerror ()
        {
        echo(
    "MySQL Datenbank nicht erreichbar");    
            return 
    true;
        }
        public function 
    emailnotvalid ()
        {
            die(
    "Email nicht gültig");
        return 
    true;    
        }
        public function 
    emailalreadyexists ()
        {
        die(
    "Email bereits in der Datenbank");
        return 
    true;
        }
    }


    class 
    Eintragen
    {
    public function 
    pruefung()
        {
    if(!isset(
    $_POST['email']) || $_POST['email'] == ""){
    emptyfield ();
    }else{
        if(!
    eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$"$_POST['email'])) {
    emailnotvalid();
    }else{
      
    $query = @mysql_query("SELECT email FROM test WHERE email = '".$_POST['email']."'");
      
    $result = @mysql_fetch_array($query);
      if(
    $_POST['email'] == $result['email']) {
          
    emailalreadyexists ();
      }else{
    succeeded    ();
    }
    }
    }
    return 
    true;    
        }
        
        
    public function 
    succeeded ()
        {
            
    $email $_POST['email'];
        
    $query "INSERT INTO test (email) VALUES('$email')";
        if(
    mysql_query($query)){
            echo(
    "Eintrag erfolgreich!");
        }else{
            
    mysqlerror ();
            
        }
    return 
    true;    
        }
    }
    ?>

  • #2
    Weil eine Klassenmethode keine normale Funktion ist. Du musst schon eine Instanz der Klasse erzeugen und dann kannst du auf diesem Objekt (der Instanz) diese Methode aufrufen! Ich glaub du solltest dich noch ein bisschen mehr mit Klassen und Objekten auseinander setzen.

    Kommentar


    • #3
      Die Funktion befindet sich in einer Klasse. Du musst, um diese nutzen zu können zunächst ein Objekt erzeugen
      $adresse = new Eintragen;

      Funktionen in anderen Klassen kannst du auch nicht einfach so ansprechen. Am Besten machst du nochmal ein Tutorial.
      [PHP]if ($var != 0) {
      $var = 0;
      }[/PHP]

      Kommentar


      • #4
        Irgendwie hab ich gerade eine Denkblockade Wäre hier jemand so freundlich, mir anhand des oben geposteten Scriptes ein Beispiel zu scripten, wie es richtig mit Klassen und Funktionen funktioniert?

        Kommentar


        • #5
          Wäre hier jemand so freundlich, mir anhand des oben geposteten Scriptes ein Beispiel zu scripten, wie es richtig mit Klassen und Funktionen funktioniert?
          Gibt es schon: http://tut.php-q.net/de/oop-usage.html
          [URL]http://hallophp.de[/URL]

          Kommentar

          Lädt...
          X