SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Der CSS-Problemlöser

Der CSS-Problemlöser zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen
Hilfe Community Kalender Heutige Beiträge Suchen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 15.11.2016, 15:47:58
fx1984 fx1984 ist offline
Anfänger
 
Registriert seit: Nov 2016
Alter: 39
Beiträge: 20
Klassenfunktion aus Formular aufrufen?

Hallo Leute,

ich möchte eine Klassenfunktion über das "action"-Attribut eines Formulares aufrufen. Geht sowas? Mein Projekt besteht bisher aus einer index.php die so aussieht:
Code:
<?php
	include('classes\controller.php');
	include('classes\view.php');
	include('classes\model.php');

	$controller = new Controller();
	$controller->display();
?>
dann einer controller.php:
Code:
<?php
	class Controller {

		public function display() {
			$view = new View();
			$view->loadTemplate();
		}

		public function login() {
			echo "login";
		}
	}
?>
und einer view.php:
Code:
<?php
	class View {

		public $data = 'test';

		public function loadTemplate(){
			include('templates/default.php');
		}
	}
?>
und einer default.php:
Code:
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<link rel="stylesheet" type="text/css" href="templates/style.css">
	<title>Test</title>
</head>
<body>
	<header>
		<h1>Überschrift</h1>
	</header>
	<nav>
		<ul>
			<li>Eintrag 1</li>
			<li>Eintrag 2</li>
		</ul>
		<form action="" method="post">
			<label>Benutzername</label>
			<input type="text" name="bname">
			<label>Passwort</label>
			<input type="password" name="bpassw">
			<button type="submit">login</button>
		</form>
	</nav>	
	<main>
		<p>Das ist der Main-Bereich</p>
	</main>
	<footer>
		<p>Das ist der Footer-Bereich</p>
	</footer>
	<!-- <?php //echo $this->data; ?> -->
</body>
</html>
... wie kann ich jetzt die Funktion $controller->login() aus der Form aufrufen?

Danke schonmal
P.S. Ich hoffe es gibt eine einfache schöne Lösung
Mit Zitat antworten
  #2  
Alt 15.11.2016, 16:06:25
chorn chorn ist offline
Junior Member
 
Registriert seit: Apr 2016
Alter: 44
Beiträge: 171
AW: Klassenfunktion aus Formular aufrufen?

Das kann z.B. ein Router machen. Sieh dir einfach mal ein paar Implementierungen an:

https://github.com/dannyvankooten/AltoRouter
https://github.com/klein/klein.php
https://github.com/dannyvankooten/PHP-Router
https://github.com/skipperbent/simple-php-router
https://github.com/nikic/FastRoute
Mit Zitat antworten
  #3  
Alt 15.11.2016, 16:31:44
fx1984 fx1984 ist offline
Anfänger
 
Registriert seit: Nov 2016
Alter: 39
Beiträge: 20
AW: Klassenfunktion aus Formular aufrufen?

Gibt es keine Möglichkeit direkt aus "action" eine Funktion aufzurufen?
Mit Zitat antworten
  #4  
Alt 15.11.2016, 17:51:08
fx1984 fx1984 ist offline
Anfänger
 
Registriert seit: Nov 2016
Alter: 39
Beiträge: 20
AW: Klassenfunktion aus Formular aufrufen?

Habe das jetzt so gelöst: ich geben einfach die index.php an und macht dann eine if-Abfrage... Aber wenn jemand eine bessere Lösung hat würde die interressieren.
So sieht die Index dann aus:

Code:
<?php
	include('classes/controller.php');
	include('classes/model.php');
	include('classes/view.php');

	$controller = new Controller();

	if(isset($_POST['bname']) && $_POST['bpassw']) {
		$controller->login();
	} else {
		echo "Keine login daten angegeben";
	}
	$controller->display();
?>
Aber schonmal danke. Das mit dem Router finde ich auch interressant...
Mit Zitat antworten
  #5  
Alt 16.11.2016, 07:46:57
chorn chorn ist offline
Junior Member
 
Registriert seit: Apr 2016
Alter: 44
Beiträge: 171
AW: Klassenfunktion aus Formular aufrufen?

Ein Router ist so eine Lösung, ganz simpel ausgedrückt mapt er URLs auf irgendwas anderes (Funktionen, Methoden, Closures, ...) und du sparst dir das rum-ge-IF-fe
Mit Zitat antworten
  #6  
Alt 16.11.2016, 09:50:44
fx1984 fx1984 ist offline
Anfänger
 
Registriert seit: Nov 2016
Alter: 39
Beiträge: 20
AW: Klassenfunktion aus Formular aufrufen?

Aber so ganz verstehe ich das mit dem Router noch nicht...

Geändert von fx1984 (16.11.2016 um 10:20:39 Uhr)
Mit Zitat antworten
  #7  
Alt 16.11.2016, 11:28:06
chorn chorn ist offline
Junior Member
 
Registriert seit: Apr 2016
Alter: 44
Beiträge: 171
AW: Klassenfunktion aus Formular aufrufen?

Kannst dir auch mal den hier von mir angucken:

https://github.com/chornde/router/

der und auch die anderen routen halt keine einzelnen Formularfelder, sondern in der Regel URLs und HTTP Methoden - du siehst z.B. das action und method auch im Formular definiert sind.
Mit Zitat antworten
  #8  
Alt 16.11.2016, 14:10:05
fx1984 fx1984 ist offline
Anfänger
 
Registriert seit: Nov 2016
Alter: 39
Beiträge: 20
AW: Klassenfunktion aus Formular aufrufen?

Ich versteh nicht warum man das so macht... und wie sieht dann die Index.php aus? Und was genau erleichtert das?

Trotzdem Danke :)
Mit Zitat antworten
  #9  
Alt 16.11.2016, 16:04:00
sysop sysop ist offline
Member
 
Registriert seit: Mar 2004
Ort: wien
Beiträge: 512
AW: Klassenfunktion aus Formular aufrufen?

Macht MAN ja auch nicht, kann man aber so machen.
Deine Lösung geht ja auch.
__________________
Gruss sys ;-)
Ich möchte wie mein Grossvater sterben, lächelnd und schlafend, nicht schreiend und weinend, wie sein Beifahrer.
Mit Zitat antworten
  #10  
Alt 16.11.2016, 16:49:43
fx1984 fx1984 ist offline
Anfänger
 
Registriert seit: Nov 2016
Alter: 39
Beiträge: 20
AW: Klassenfunktion aus Formular aufrufen?

Bitte nicht falsch verstehen. Ich finde deine Lösung richtig gut. Ich verstehs nur nicht... aber ich würde es gerne verstehen.
Was macht das genau und wie sieht dann meine Index aus? Das würde mich interesserien und was das Herz dieses Routers ist...
die run() Funktion? was ist denn das minimum davon was ich brauche?... ich bin schon froh das ich das alles bis jetzt verstanden hab :)

Ihr könnt mich für bekloppt halten aber: ich dachte mir das so dass ich per action"controller/login" eine controller Funktion aufrufe und mit der dann die login daten checke und gegebenfalls dann eine neue view lade...

Geändert von fx1984 (16.11.2016 um 17:19:43 Uhr)
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Formular n-mal aufrufen Eibenger PHP Grundlagen 4 26.01.2012 13:05:51
Simple formular() aufrufen. peterfox78 PHP Grundlagen 8 05.01.2011 14:28:39
mittels Formular 2 Skripte aufrufen Tim PHP Grundlagen 2 21.06.2003 16:11:57
nach versenden eines Formular, neue HTML-Seite aufrufen! Twolf PHP für Fortgeschrittene und Experten 1 09.04.2002 12:19:14
PHP-Script im Formular per Button aufrufen StephanS PHP für Fortgeschrittene und Experten 1 13.02.2002 10:17:32


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:38:17 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt