Wenn HTML-Button gedrückt wird PHP-Script ausführen?
Ich möchte, dass wenn ein Button in HTML gedrückt wir, ein PHP-Script ausgeführt wird. Ich habe im Internet folgendes gefunden:
<? php
if(isset($_POST['sent'])){
// ...
}
?>
<form method="post" action="script.php">
<input type="submit" name="sent" value="senden">
</form>
Das funktioniert aber irgendwie nicht. Man wird wenn man auf den Button drückt nur zum PHP-Script weitergeleitet. (Bin noch neu mit Php und so, also keine Ahnung woran es liegt.) Eigentlich sollte PHP aber im Hintergrund ausgeführt werden.
Hoffe auf Antworten,
-Bohne47
2 Antworten
Man wird wenn man auf den Button drückt nur zum PHP-Script weitergeleitet
Richtig. Genau das bedeutet "ein PHP Skript ausführen".
Alex
Heißt das, das es nicht möglich its, dass das Script quasi nur im Hintergrund ausgeführt wird (ähnlich wie bei JS)?
richtig erkannt. PHP wird auf dem Server ausgeführt und Javascript im Browser.
Ah, toll... Ich glaube ich mache es jetzt einfach so, dass das ausgeführte PHP-Script einen wieder zurück zu der Seite vorher schickt.
Du musst schon wissen, WO das Script ausgeführt werden soll. PHP wird auf dem Server ausgeführt -> Die Daten aus dem Formular müssen also erst an den Server übertragen werden, können dann dort verarbeitet und das Ergebnis mit einer Webseite dann wieder an den Client gesendet werden.
JS hingegen wird auf dem Client im Browser ausgeführt. Da muss nichts an den Server übertragen werden.
Ja, meinte das mit dem js nur als beispiel, weil ich es halt im hintergrund, ohne das man es wirklich merkt wollte. Wenn es nicht geht, dass man es in hintergrund ausführt, sondern man immer weitergeleitet werden muss, gibt es dann eine Möglichkeit nach dem Ausführen von dem PHP wieder zu einer html-seite weitergeleitet wird? Ich habe da was mit header() gelesen, aber das funktioniiiert irgendwie nicht richtig.
steht doch bereits in meiner Antwort.
Die Daten aus dem Formular müssen also erst an den Server übertragen werden, können dann dort verarbeitet und das Ergebnis mit einer Webseite dann wieder an den Client gesendet werden.
Auf dem Prnzip arbeiten sämtliche Content-Management-Systeme (Joomla/Wordpress/Typo3), wenngleich dort auch Javascript für Profungen VOR dem Absenden der Daten an einen Server genutzt werden.
Ah, toll... Ich glaube ich mache es jetzt einfach so, dass das ausgeführte PHP-Script einen wieder zurück zu der Seite vorher schickt.
Das ist i. d. R. Nonsens. Was soll das Skript denn ausführen?
Mit der Funktion header() kann ein PHP Script zu einer bestimmten Seite weiterleiten.
Mit der Funktion header() kann ein PHP Script zu einer bestimmten Seite weiterleiten.
Ja (zumindest so lange noch kein Content ausgegeben wurde). Aber ich zweifle, dass der FS eine Funktion programmiert, bei der ein solches Vorgehen sinnvoll wäre:
- Datenbankabfrage ausführen
- Cookie setzen
- Session-Variable setzen
- Mail verschicken oder dgl.
aber das funktioniiiert irgendwie nicht richtig.
Das funktioniert dann nicht, wenn du im Content Text ausgegeben hast. Dieser Code
<?php
echo "hello world";
header('Location: http://www.example.com/');
exit;
?>
funktioniert nicht, weil vor dem Header Redirect bereits die Zeile "echo world" ausgegeben wurde. Dieser Code funktioniert auch nicht
[LEERZEILE]
<?php
header('Location: http://www.example.com/');
exit;
?>
weil vor dem Header Redirect bereits ein Leerzeichen ausgegeben wurde.
Ja, das war das Problem, Leerzeile vor dem header(). Aber jetzt geht es. Danke an @EinAlexander und @Xandros0506 für die Hilfe.
Du könntest mir Javascript einen Ajax Request an dein php Script auf deinem Server senden. So ist das dann "Im Hintergrund"...
Hier ein simples Beispiel: https://www.andinet.de/technik/programmierung/web/ajax_beispiel.html
Heißt das, das es nicht möglich its, dass das Script quasi nur im Hintergrund ausgeführt wird (ähnlich wie bei JS)?