Hallo,
Ich habe ein Formular welches beim Absenden einen Eintrag in die Datenbank macht. Ich habe bis jetzt immerm vor dem Aufrufen der Funktion für das Eintragen, die Felder überprüft ob sie leer sind.
Da mir die OOP immer mehr Sinn macht bin ich jetzt darauf gestoßen das ich die Werte für ein Objekt auch in der Klasse und der zuständigen Methode überprüfen könnte.
Jetzt ist die Frage:
Was ist besser? Wenn ich die Werte vorher überprüfe kommt das Skript gar nicht erst zur Möglichkeit das Objekt zu erstellen und in die Datenbank hinzuzufügen. Außerdem wird das Anzeigen der Fehlermeldung einfacher.
Welchen Vorteil es bringt das ich die Werte in der Funktion zu überprüfen kommt mir nicht so wirklich in den Sinn. Ich denke aber das es irgendwie sicherer ist falls man das Formular umgehen kann oder sonst was...
Hier ist erstmal der momentane Code:
Alles anzeigen
Ich denke so würde ich das dann ungefähr machen:
Alles anzeigen
Hoffe es ist verständlich :D
MFG
Illidan
Ich habe ein Formular welches beim Absenden einen Eintrag in die Datenbank macht. Ich habe bis jetzt immerm vor dem Aufrufen der Funktion für das Eintragen, die Felder überprüft ob sie leer sind.
Da mir die OOP immer mehr Sinn macht bin ich jetzt darauf gestoßen das ich die Werte für ein Objekt auch in der Klasse und der zuständigen Methode überprüfen könnte.
Jetzt ist die Frage:
Was ist besser? Wenn ich die Werte vorher überprüfe kommt das Skript gar nicht erst zur Möglichkeit das Objekt zu erstellen und in die Datenbank hinzuzufügen. Außerdem wird das Anzeigen der Fehlermeldung einfacher.
Welchen Vorteil es bringt das ich die Werte in der Funktion zu überprüfen kommt mir nicht so wirklich in den Sinn. Ich denke aber das es irgendwie sicherer ist falls man das Formular umgehen kann oder sonst was...
Hier ist erstmal der momentane Code:
Quellcode
- if(isset($_POST['add_entry_submit']))
- {
- $entry_data = array(
- 'entry_name' => $_POST['entry_name'],
- 'entry_text' => $_POST['entry_text'],
- 'entry_mail' => $_POST['entry_mail'],
- 'entry_website' => $_POST['entry_website'],
- 'entry_IP' => $_SERVER['REMOTE_ADDR']
- );
- if(empty($_POST['entry_name']))
- {
- $information = true;
- $information_text = $language['ADD_ENTRY_EMPTY_ENTRY_NAME'];
- $information_type = 'error';
- }
- elseif(empty($_POST['entry_text']))
- {
- $information = true;
- $information_text = $language['ADD_ENTRY_EMPTY_ENTRY_TEXT'];
- $information_type = 'error';
- }
- else
- {
- $entry = new entry($entry_data['entry_name'], $entry_data['entry_text'], $entry_data['entry_mail'], $entry_data['entry_website'], $entry_data['entry_IP']);
- $addEntry = $entry->addEntry();
- if($addEntry == true)
- {
- $information = true;
- $information_text = $language['ADD_ENTRY_SUCCESSFULL'];
- $information_type = 'accept';
- $entry_added = true;
- }
- else
- {
- $information = true;
- $information_text = $language['ADD_ENTRY_ERROR'];
- $information_type = 'error';
- }
- }
- $smarty->assign($entry_data);
- }
Ich denke so würde ich das dann ungefähr machen:
Quellcode
- public function set_entry_name($entry_name)
- {
- if($entry_name != "") // evtl. kann man dann auch hier weitere Überprüfungen reinbringen ob der Wert Wörter enthält die nicht drinstehen dürfen (Badlist oder sowas in der Richtung...)
- {
- $this->entry_name = $entry_name;
- }
- else
- {
- $anonym_entries_allowed = $db->getData("SELECT 'setting_value' FROM ".TABLE_PREFIX."settings WHERE 'setting_name' = 'anonym_entries_allowed");
- if($anonym_entries_allowed[0] == 1)
- {
- $this->entry_name = $language['ENTRY_NAME_ANONYM'];
- }
- else
- {
- return false;
- }
- }
- }
Hoffe es ist verständlich :D
MFG
Illidan