[FRAGE] Iframe Variable an PHP übergeben zur Speicherung in der DB

c-i-k-o

New member
allo Zusammen,

vorerst, ja ich weiss es gibt viele Themen mit ähnlichen Titeln. Allerdings bin ich ein sehr anfänglicher newbie und verstehe nicht so recht was da steht und brauche dringend Unterstützung.

es geht um folgendes:
ich habe folgenden php-Code in der Hauptdatei implementiert, darin ist das iframe:

PHP:
  $questionoutput = "<iframe sandbox='allow-scripts allow-popups allow-forms'
       src='{$url}'
       width='90%'
       height='400'
       name='{$url}'>
       </iframe>";
 
        return $questionoutput;


der Inhalt des Iframes sieht so aus (es ist nur eine simple testaufgabe zum testen des gesamten):

HTML:
..... hier vor ist der jsscript in welches zwei simple aufgaben implementiert sind.
 
<body onload="zahl()">
 
<p>Die Summe von <strong id="zahl1"></strong> und <strong id="zahl2"></strong> ist?</p>
<p><input id="eingabe" width="3"/></p>
<p><button id="ergebnis" onclick="check1()">Pruefe</button></p>
 
<p>Die Summe von <strong id="zahl3"></strong> und <strong id="zahl4"></strong> ist?</p>
<p><input id="eingabe2" width="3"/></p>
<p><button id="ergebnis2" onclick="check2()">Pruefe</button></p>
 
<p id="punktegesamt">Gesamtpunkte</p>
 
</body>

Mein Ziel ist es nun die Variable <p id="punktegesamt">Gesamtpunkte</p> rauszulesen und in eine PHP-Variable zu schreiben. dabei ist zu beachten, dass diese url auf einem anderen webserver liegt und da entstehen wieder fragen der policy, die als nächstes gelöst werden müssen.

Ich bitte um dringende Hilfe. Ich doktore jetzt schon seit längerem rum und komme immer noch nicht zu Ende... Bitte sehr dringend um Hilfe...

Besten Dank und freundliche Grüße
 
Mein Ziel ist es nun die Variable <p id="punktegesamt">Gesamtpunkte</p> rauszulesen und in eine PHP-Variable zu schreiben.
Ich würde das ja nicht als Variable bezeichnen... aber warum machst du da überhaupt einen iFrame, wenn du einfach nur das HTML von einer Webseite haben und dann in PHP weiterverarbeiten willst? PHP hat ein Binding zu cURL - schau' dir da mal die Doku zu an. Damit kannst du dir das HTML holen und anschließend kannst du mit DOMDocument::loadHTML das HTML parsen und dann darin auch suchen bzw. den gewünschten Inhalt extrahieren.

PS: Du hast im falschen Unterforum gepostet... ich hab's verschoben.
 
Ich würde das ja nicht als Variable bezeichnen... aber warum machst du da überhaupt einen iFrame, wenn du einfach nur das HTML von einer Webseite haben und dann in PHP weiterverarbeiten willst? PHP hat ein Binding zu cURL - schau' dir da mal die Doku zu an. Damit kannst du dir das HTML holen und anschließend kannst du mit DOMDocument::loadHTML das HTML parsen und dann darin auch suchen bzw. den gewünschten Inhalt extrahieren.

PS: Du hast im falschen Unterforum gepostet... ich hab's verschoben.

Danke für das Verschieben.

iFrame deswegen, weil die seite in einer anderen Seite eingebettet werden soll und die Gesamtpunkte ja mittels js zusammengerechnet werden. Kann ich auch dann mit PHP und cURL arbeiten? Weil ich ja nur was aus dem HTML-Teil ausgelesen haben möchte geht das? hinzukommt - dass die seite die da ist ein prototyp ist. d.h. wenn die anwendung steht, sollen irgendwelche seiten mit aufgaben als iframe eingebettet werden. mit der prämisse sie berechnen die punkte genauso wie in diesem code - sodass es immer eine variable gesamtpunkte gibt im html teil.

Beste Grüße
 
Wie man ein eingetragenes Ergebnis unter "punktegesamt" via cURL holt, wäre mir jetzt schleierhaft. :D (nicht hauen ... nur Spaß!)

cURL wäre auch meine Antwort gewesen - alles von dort holen, parsen (hier gibt es mind. drei Möglichkeiten) und bei Dir darstellen.

Wie Du dann den Prototyp zu Deiner Seite synchron hältst (wenn die dort bspw. was ändern), steht dann auf einem anderen Blatt. Die Frage wird irgendwo eine ID versteckt haben o. ä. ... einen unique Wert, den Du dann auch in die Datenbank bei Dir stopfen musst.

Das sollte allerdings nichts sein, was Dich mit Urheberrecht o. ä. in Kontakt bringt. Einfach auf einer fremden Seite bedienen ... naja ... mach es kenntlich, woher es kommt (das Mindeste) oder hole Dir vorab eine Erlaubnis vom anderen Anbieter.

Beste Grüße
 
cURL wäre auch meine Antwort gewesen - alles von dort holen, parsen (hier gibt es mind. drei Möglichkeiten) und bei Dir darstellen.

könntest du das etwas näher erklären?

Das sollte allerdings nichts sein, was Dich mit Urheberrecht o. ä. in Kontakt bringt. Einfach auf einer fremden Seite bedienen ... naja ... mach es kenntlich, woher es kommt (das Mindeste) oder hole Dir vorab eine Erlaubnis vom anderen Anbieter.

nun ja das wird immer eine Seite vom Webserver der Hochschule, sein daher gibt es dort keine Probleme.
 
Geht es hier um das gleiche Projekt wie mit den Gesamtpunkten in dem Quiz? Da wird ja das <div> per JS mit den Punkten befüllt. Somit wird das gar nicht funktionieren, wenn die SOP im Weg steht, und muss komplett anders realisiert werden, wenn nicht.

Aber was willst du denn eigentlich erreichen? Warum brauchst du die Punkte im PHP? Und warum schickst du sie nicht von der Seite aus, die auch die Daten hat?
 
könntest du das etwas näher erklären?
Die Seite, die Du im iFrame darstellen würdest, holst Du Dir per cURL(). Wenn diese Seite dynamisch ist (ein Quiz?), ist u. U. die URL immer gleich, nur die Frage eben anders (da dynamisch generiert).

Womöglich wäre es fast leichter, wenn Du die Seite so lange "cURL"st, bis Du alle Fragen und in Deine eigene Datenbank übernommen hast. Ich kann mir fast nicht vorstellen, dass da GET-Parameter zum Einsatz kommen. :D

Wie cURL funktioniert, hast Du bereits oben als Link bekommen. Und je nach Ergebnis vom Host (Fremdserver) kannst Du das via ...
- DOMDocument::loadHTML (s. o.) beackern
- explode("\n", $antwortViaCurl); und dann Zeilenweise durchschrubben
- regulärer Ausdrücke verkleinern (die relevanten Bereiche entnehmen)
- mb_substr(); das ist übel, aber - hey! - ginge auch

Bedenke, dass Du kein JavaScript oder CSS vom Host bekommst. Die müsstest Du "erkennen" und ebenfalls via cURL() anfordern, einlesen, parsen und dann bspw. als Inline-CSS ergänzen.

Das geht ... alles ... kostet nur Zeit. ;)
 
Zurück
Oben