Antworten auf deine Fragen:
Neues Thema erstellen

anfänger in oop

sumpfbarbe

Nicht mehr ganz neu hier

Hallo,
ich arbeite mich gerade in die OOP mit PHP ein.
Als ersten Versuch wollte ich das über ein Formular die Daten eingegeben werden und dann entsprechend verglichen werden um schlußendlich die entsprechende Ausgabe zu bekommen.
Leider bekomm ich keine Ausgabe.
Was mach ich falsch?
Code:
programm:
PHP:
<?php
 require_once ("class_site.php");
  require_once ("class_buyer.php");

     $daten = new buyer;
      $art = new site;

 $art->kopf();
?>
 <h1>Webshop</h1>
 <h3>Bitte melden Sie sich an:</h3>


<?php
 $art->formular();

$art->fuss();

?>
site.php:
PHP:
<?php
   class site
   {
     private $titeltext;

     public function kopf()
    {
        print "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"".
              "\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n" ;
        print "<html>\n";
        print "<head>\n";
        print "  <meta http-equiv=\"content-type\"".
               "content=\"text/html\; charset=UTF-8\" >\n";
        if ($this->titeltext !="")
            print " <title>".$this->titeltext."</title>\n";
        print "</head>\n";
        print "<body>\n";
    }

    function formular()

      {
   ?>
    <form action="class_kunde2.php" method="post">
    Name:<br/>
    <input type="text" size="24" maxlength="50"
    name="name"/><br/><br/>

    Passwort:<br/>
    <input type="password" size="24" maxlength="50"
    name="passwort"/><br/><br />

    <input type="submit" value="Senden"/>
    </form>
<?php
    }


     public function setTitel($text)
    {
        $this->titeltext = $text;
    }




    public function fuss()
    {
        print "</body>\n";
        print "</html>\n";
    }
}
?>
buyer.php:
PHP:
<?php
  class_buyer
  {
    function anmeldung()
   {
     $user = $_POST['name'];
     $passwort = $_POST['passwort'] ;

   if   ($user == "Admin"  and $passwort == "Hallo")
     {
       print "Hallo Admin" ;
    }

     else
  {
        print " Hallo Kunde";
  }
}
}
?>
 

S

Snaq

Guest

AW: anfänger in oop

hallo,

wie soll auch eine Überprüfung vorgenommen werden, wenn du die Funktion zur Überprüfung nicht aufrufst?

PHP:
$daten->anmeldung();
Anzumerken wäre das du dir unbedingt einen ordentlichen Einrückstil angewöhnen solltest. Desweiteren solltest du die vom Nutzer eingegebenen Daten zwingend mit mysql_real_escape_string maskieren, da sonst eine POST Injection Schwachstelle auftritt.

Außerdem sollte noch eine Überprüfung vorgenommen werden ob das Formular überhaupt abgeschickt wurde. Dazu musst du erstmal das Submit Tag anpassen
HTML:
<input type="submit" name="submit_form" value="Senden" />

und dann in der Funktion anmeldung überprüfen ob das Formular abgeschickt wurde
PHP:
if(isset($_POST['submit_form']))
{
    //dein bisheriger Code
}
 
Zuletzt bearbeitet:

sumpfbarbe

Nicht mehr ganz neu hier

AW: anfänger in oop

Hallo,
danke erstmal für die schnelle Antwort.
$daten->anmeldung(); hatte ich im programm.php
als Ausgabe bekam ich aber nur ein leeres Browserfenster.
Das mit dem Einrücken stimmt ist durch das viele Probieren ziemlich verschoben.
Wenn ich dein code if (isset... einfüg bekomm ich die Meldung:

Parse error: syntax error, unexpected T_IF, expecting T_FUNCTION
blabla on line 3

Wegen sicherheit hast Du natürlich recht, jedoch möcht ich es zum Lernen im Moment so einfach wie möglich halten.
Weiß nicht ob wichtig: Arbeite mit Scriptly als Editor und xammplite
Grüße
 

saila

Moderatorle

AW: anfänger in oop

Hi,

wenn du dich schon mit OOP beschäftigen möchtest, wäre es ratsam - alleine des Überblickes wegen - html aus php herauszuhalten.

Abgesehen davon ist OOP nicht als HTML-Object zu betrachten, sondern als DATA-Object - also Datenobject. Dies wiederum würde sich somit auf die pure Datenabarbeitung/-bereitstellung zu deinem oder weiterer Formulare. Das weist also direkt auf das logische Problem des Vorhabens hin.

Wenn du also ein Formular (oder mehrere) verarbeiten möchtest und hierfür eine Klasse ansatzt, dann muss diese Klasse in der Lage sein, jedes weitere Formular - gleich welche Daten auch noch übergeben werden, verarbeiten zu können.

Somit wäre also für deine Formularverarbeiten als erster Gedankenschupser folgendes zu beachten:

$_GET, $_POST, enctype - also $_FILES. Wenn du dich nun in OOP einlesen wirst, kannst du unter PHP: Klassen und Objekte - Manual einige weitere wichtige Informationen für dich ziehen :)
 

ak56Lk

Noch nicht viel geschrieben

AW: anfänger in oop

das Thema OOP ist ein riesen Gebiet. Am Besten du liest dazu noch ein Buch, das erspart einige Zeit. Ich hatte mir vom Franzis Verlag das Buch "Objektorientierte Programmierung mit PHP5" von Matthias Kannengiesser.
 
P

phamo

Guest

AW: anfänger in oop

Oder einfach mal Video2Brain zu PHP kaufen, dort ist ein großes Kapitel über OOP und zudem noch viele weitere Dinge.


MfG
 

ChrisvA

Aktives Mitglied

AW: anfänger in oop

[...]Desweiteren solltest du die vom Nutzer eingegebenen Daten zwingend mit mysql_real_escape_string maskieren, da sonst eine POST Injection Schwachstelle auftritt.[...]
Das macht aber auch nur Sinn, falls man die Nutzerverwaltung mit einer Datenbank macht. Momentan ist das Sinnlos, da man die Backslashs vor einer etwaigen Ausgabe sogar erst noch wieder entfernen müsste um dann zur Sicherheit noch die Funktion htmlentities() oder htmlspecialchars() anwenden muss.
mysql_real_escape_string() aber sofort anzuwenden macht wenig Sinn, vor allem wenn man die Daten noch weiterverarbeiten möchte.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben