in PHP anderes PHP File ausführen

  • Antworten:16
Jakob N.
  • Forum-Beiträge: 282

21.08.2014, 14:51:26 via Website

Hallo!

Ich habe eine frage die an die PHP-Spezialisten hier gerichtet ist ;)

Ich möchte in einem PHP-File ein anderes ausführen und muss dabei dem PHP-File auch POST-Parameter übergeben.

Weiß jemand wie soetwas gemacht werden kann?

LG Jakob

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.288

21.08.2014, 15:44:14 via App

das Php hast du aber vorliegen als .php file.
Ich habe das so gemacht.

erst
ob_start();
require $deinFile;

$phpcontent = ob_get_clean();

für die Syntax vlt nochmal nachschauen kann sein dass des etwas anders ist.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Jakob N.
  • Forum-Beiträge: 282

21.08.2014, 15:50:23 via Website

Was genau soll diese Ausgabepufferung bewirken?

Und wie kann ich da die POST-Parameter mitgeben?

LG Jakob

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.288

21.08.2014, 16:39:43 via App

Ich weiss ja nicht ob du den inhalt der php direkt ausgeben oder nur in einer variable haben möchtest.
Ohne ausgebepufferung würde rin include langen.
Dan könntest du Post parameter auch einfach über dem Include setzen. z.b.
$_POST["test"] = "1234";
include($deinSkriptpfad);

Das mit der Ausgabepufferung benutze ich um vorne und hinten mein eigenes Layout drumzubasteln (mod rewrite auf eine datei)
So muss am ende des skriptes nur ein echo stehen und nicht an 1000 anderen.
Ich finde das auf jeden Fall praktischer als mit include.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Jakob N.
  • Forum-Beiträge: 282

21.08.2014, 16:50:04 via Website

Achso! Ich möchte von dem PHP eigentlich keine Ausgabe. Das File das ich ausführen möchte tut nur etwas inserten.

Also sollte ich das mit der Ausgbepufferung machen?

LG Jakob

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.288

21.08.2014, 17:03:26 via App

Ne wenns nur um ein DB insert oder so geht, dann recht ein include. Aber warum den post parameter?
Benutzt du diesen als insert wert?
Das solltest du nicht machen.
Im includeten file solltest du eine Funktion erstellen die eine String parameter entgegen nimmt und den verarbeitet.
Falls das skript dann per post doch direkt aufgerufen wird stellst du das mit einer if ausserhalf der funktion fest und führst dann deine insert funktion mit dem post parameter aus.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Jakob N.
  • Forum-Beiträge: 282

21.08.2014, 17:06:02 via Website

Warum kann ich nicht gleich $_POST['...'] = xx; schreiben?

LG Jakob

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.288

21.08.2014, 17:08:59 via App

Kannst du schon aber besser ist es das mit funktionen zu machen.
Erst habe ich mit php auch so angefangen aber nach nerweile merkt man, das php auch oop und funktionen unterstützt warum dann nicht nutzen?

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Jakob N.
  • Forum-Beiträge: 282

21.08.2014, 17:12:42 via Website

Dass bedeutet jetzt aber dass ich in meinem PHP-File was ich aufrufen will, alles in eine Funktion packen muss, dass das includen keinen Schaden in meiner Datei bringt oder? So dass nur Funktionen inkludiert werden... Verstehe ich das richtig?

LG Jakob

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.288

21.08.2014, 17:28:48 via App

Genau. Include ist vergleichbar mit copy and pase .
Php nimmteinfach den coder der inkludieten Datei und tut so als wäre er in der anderen Datei enthalten.
Ähnlich wie bei einem include in java.
Ist halt eine Referenz auf ne datei und alle funktionen die da drinnestehen können im hauptscript benutzt werden

— geändert am 21.08.2014, 17:29:20

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Jakob N.
  • Forum-Beiträge: 282

21.08.2014, 17:42:46 via Website

Und wie kann ich überprüfen ob die Datei mit POST aufgerufen wurde, sprich jetzt über den AsyncTask?

LG Jakob

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.288

21.08.2014, 18:00:21 via App

Also sagen wie mal deine funktion heisst insert.

dann machst du vor der funktion:
if(isset($_POST["postvar"]))// vlt noch auf null prüfen
{
insert($_POST["postvar"]);//wenn post gesetzt wirds aus dem asynctask wenn nich dann kannst du im andern php das insert nutzen.
}

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Jakob N.
  • Forum-Beiträge: 282

21.08.2014, 18:09:51 via App

Pascal P.

insert($_POST["postvar"]);//wenn post gesetzt wirds aus dem asynctask wenn nich dann kannst du im andern php das insert nutzen.
}

Was meinst du mit "im anderen php das insert nutzen"?

LG Jakob

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.288

21.08.2014, 18:49:19 via App

Wenn du jetzt dein 2. php hast:
$res =0;
for($i=0;$i<12)
{
$res .=$i;
}
include(deinInsertPhp);
//jetzt kannst du die funktion aus dem anderen php nutzen.
insert($res);

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Georg C.
  • Forum-Beiträge: 235

22.08.2014, 07:31:05 via Website

@ Pascal P.
ob_start(); <==== ???
require $deinFile; <==== ???
$phpcontent = ob_get_clean(); <==== ???
...
und .... und
... lasen wir es lieber - BITTE.

@Jakob N.
ich vermute, du komplizierst dir das ganzes unnötig.
Ein DB insert - also (vermute) ein Statement in der Form -> INSERT INTO .....
ist mit paar php Zeilen gemacht. Beispiele dafür gibt es im Net -> mehr als 1000.
Wen du aber unbedingt zwei Scripte "verbunden" möchtest, geht es am einfachsten
(wie der Pascal es vorgeschlagen hat) mit include.

Das include php Sprachkonstrukt (wird auch als Funktion Bezeichnet) bindet und führt
eine angegebene Datei aus.
In seiner Rudimäre Form sieht es so aus:

meineInclude.php

<?php
// $name ist eine Variable
$name = "Jakob";  
?>

meineTest.php

<?php
include("meineInclude.php");

echo "Hallo ";
echo $name;
echo ", alles verstanden ?";
?>

Wenn du jetzt beide Scripts (meineInclude.php und meineTest.php) auf einem Server speicherst, und in deiner Internetbrowser den meineTest.php Script aufrufst, wird in der Inet-Browser:

Hallo Jakob, alles verstanden ?

angezeigt.

Die include(....) Funktion, ist mit einem import in java vergleichbar. (fast gleiches!)

LG
Georg

— geändert am 22.08.2014, 07:36:20

Sorry für Gramatik & Stilistik Fehler.

Antworten
Georg C.
  • Forum-Beiträge: 235

22.08.2014, 08:34:32 via Website

Ich wiederhole mich:
... lasen wir es lieber - BITTE!

Sorry für Gramatik & Stilistik Fehler.

Antworten