Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Funktionsfrage zu Per PHP-Script ausgewertete bzw. bearbeitete Daten in aufrufender HTML Seite anzeigen lassen.

Mitglied: FunkerVogt

FunkerVogt (Level 1) - Jetzt verbinden

13.10.2013 um 11:49 Uhr, 2528 Aufrufe, 9 Kommentare

Mahlzeit Gemeinde und danke vorab für die Hilfe.


Situation/Frage 1

Ich scripte gerade an einer Seite welche Daten als Diagramm auswertet.
Programmablauf ist: Ich übergebe diverse Nutzereingaben, per $_Post in einer Session an ein PHP-Script.
In dem PHP-Script werden diese Daten dann mittels Datenbankzugriff ausgewertet und es wird ein
Diagramm erstellt. Dazu nutze ich phplot! Funktioniert auch soweit.

Allerdings hätte ich gern, dass das Diagramm in der aufrufenden HTML Seite angezeigt wird.

01.
<form target="_self" method="post" action="getdata.php" >
02.
.
03.
.
04.
.
05.
<input type="submit" value="Diagramm erstellen!" name="submit" />
funktioniert leider nicht. Im Prinzip soll die PHP-Seite nicht angezeigt werden, was sie aber
unverständlicherweise macht.

Wenn ich das PHP-Script "getdata.php" testweise im html-code includiere, wird auch wieder
ein neues Fenster geöffnet.
Situation/Frage 2
In dem PHP-Script habe ich Fehlerbehandlungen, welche fehlerhafte Eingaben abfängt.
z.B. sowas:

01.
<?
02.
    if(!checkdate($EZMon1,$EZTag1,$EZJahr1))
03.
    {
04.
    echo "<script language=\"JavaScript\">
05.
<!--
06.
 alert(\"Bitte noch einmal ueber das Enddatum nachdenken\");
07.
 window.location.href=\"dia.html\";
08.
//-->
09.
</script>";
10.
 
11.
}
12.
?>

Wenn ich mit fehlerhaften Eingaben die Ausgabe provoziere, öffnet sich kein Popup sondern
der Quellcode wird in einem neuen Fenster angezeigt.


Habt Ihr nen Rat/Tip zu den beiden Problematiken??


Mitglied: certifiedit.net
13.10.2013 um 11:55 Uhr
Guten Morgen,

zur Frage 1: Dann musst du eine JS Datei aufrufen, die die Daten per PHP verarbeiten lässt und diese dynamisch ins aufrufende HTML einbettet. So ist die Funktion wie designt. Du gibst dem Gerät nur die falschen Befehle für das, was du wünschst.

Zur Frage 2:

Gleiches Problem teste das ganze einfach mal mit einer HTML Datei, so dass das JS direkt beim Aufruf das Pop Up provoziert - wobei ich das persönlich eher als einfache Ausgabe generieren würde.

Viel Erfolg.

Christian
certified IT
Bitte warten ..
Mitglied: colinardo
13.10.2013, aktualisiert um 12:31 Uhr
Hallo FunkerVogt,
das ist für deine beiden Fälle ein Fall für Ajax. Du übermittelst z.B. mit jQuery und der Funktion post() die Eingabedaten an dein PHP-Script, welches dann die Daten an dein JavaScript in der HTML-Seite zurückgibt, wo du diese Daten dann verarbeitest und darstellst.
Ich hatte hier mal ein einfaches Beispiel dazu gepostet.
Alternativ könntest hier auch mit einem iFrame arbeiten welches nur das zurückgegebene PHP-Dokument in der HTML-Seite darstellt.

Grüße Uwe
Bitte warten ..
Mitglied: Arano
13.10.2013 um 13:38 Uhr
Hallo

PAPERLAPAP !
Drück erst einmal alles Javascript (ja auch JQuery und Konsorten) __in die Tonne__ !
Als erstes muss es so funktionieren und __danach__ kann man es mit JS ausschmücken !

Und jetzt die wichtigste Frage !
WAS MACHT "getdata.php" ?
Erzeugt es die Grafik und gibt sie aus ODER wird die Grafik als Datei gespeichert !?
Oder doch was anderes !?

Trenne deinen Code !
Überprüfe erst die Eingaben und erst wenn diese Korrekt sind gib sie an die nächste Datei weiter.

Allerdings hätte ich gern, dass das Diagramm in der aufrufenden HTML Seite angezeigt wird.
[...]
funktioniert leider nicht. Im Prinzip soll die PHP-Seite nicht angezeigt werden, was sie aber unverständlicherweise macht.
Wieso unverständlicherweise ?
Du hast die PHP-Datei doch im "action"-Attribut des Formulars explizit angegeben, also wird sie auch aufgerufen !

Wenn die PHP-Datei die Grafik auch gleich anzeigt und sonst keine anderen Ausgaben (wie z.B. Hinweise auf falsche Eingaben) generiert, kannst du sie auch direkt als Bild einbinden: <img src="getdata.php">
Allerdings musst du dann die Daten entweder per GET an die Datei weitergeben <img src="getdata.php?wert1=$_POST['wert1']&wert2=$_POST['wert2']"> oder in einer PHP-Session zwischenspeichern !
Und wenn die Grafik z.B. unter dem Formular angezeigt werden soll, könnte das in etwa so aussehen:
01.
<html>
02.
  <head>
03.
    <title>Seitentitel</title>
04.
  </head>
05.
  <body>
06.
  
07.
  <form action="dia.php" method="POST">
08.
    <input type="text" name="wert1" value="">
09.
    <input type="text" name="wert2" value="">
10.
    <input type="submit" name="gfxGenBtn" value="Grafik generieren">
11.
  </form>
12.
  
13.
  <?php
14.
    // wurden Daten vom Formular per Post übergeben ?
15.
    if( isset($_POST['gfxGenBtn]) )
16.
    {
17.
        // hier sämtliche Eingaben auf Gültigkeit überprüfen
18.
        // hier sämtliche Eingaben auf Gültigkeit überprüfen
19.
        // hier sämtliche Eingaben auf Gültigkeit überprüfen
20.
        // man könnte eine eigene PHP-Funktion dafür schreiben die an dieser Stelle aufgerufen wird,
21.
        // dann bleibt der Haupt-Code übersichtlicher ;)
22.
 
23.
        // ggf. die Daten aus den $_POST-Variablen in die $_SESSION-Variablen kopieren
24.
        
25.
        // wenn alle Eingaben gültig sind
26.
        if( FALSE===$inputError )
27.
        {
28.
            // per Session
29.
            echo '<img src="gatdata.php?'.time().'" alt="Chart">';
30.
            // oder per GET
31.
            echo '<img src="gatdata.php?wert1='.$_POST['wert1'].'&wert2='.$_POST['wert2'].'" alt="Chart">';
32.
            // time() wird bei der Session-Variante mit angehangen, um den Cache des Browsers "auszutricksen" weil
33.
            // die Grafiken sonst alle gleich heißen und so aus dem Cache immer die alten Daten angezeigt würden.
34.
        }
35.
        else
36.
        {
37.
            echo 'Es gab '.$inputErrorCounter.' Eingabefehler !';
38.
            echo '<ul>'.$inputErrorMessages.'</ul>'
39.
            // $inputErrorMessages enthält die Fehlermeldungen der Eingabeprüfung.
40.
            // Jede Meldung ist mit einem '<li> ... </li>' umschlossen um eine gültige UL-Liste zu erzeugen.
41.
        }
42.
    }
43.
  ?>
44.
  </body>
45.
</html>
Das Formular ruft sich selber auf und übergibt die eingegebenen Daten so per POST an sich selber.
Der nachfolgende PHP-Code prüft ob die POST-Variable des "submit"-Buttons vorhanden ist und führt erst dann den restlichen PHP-Code aus.
So wird sichergestellt, das beim ersten aufrufen des Formulars - es existieren noch keine POST-Daten - nicht fälschlicherweise versucht wird eine Grafik zu erzeugen, mit Daten und Variablen die es noch nicht gibt, denn das würde jede Menge Fehlermeldungen produzieren.


~Arano
Bitte warten ..
Mitglied: FunkerVogt
13.10.2013 um 14:50 Uhr
Nur mal zur Erklärung!

Was macht getdata.php!!!!

Getdata.php verarbeitet die per $_POST übergebenen Werte in einer Datenbankabfrage.
Diese Daten werden dann für die Darstellung des Diagrammes benutzt, welches auch
innerhalb des .php Skriptes generiert wird (phplot).

Die Datenbanken bestehen aus Datum|Uhrzeit|Wert.
Innerhalb der html Seite gibt es eine Benutzereingabe, in der der Nutzer einen
Startzeitpunk, Endzeitpunkt (Menü) und Zählerpunkte (Radiobuttons) angeben kann.

Zuerst nehme ich im php-Script, die übergebenen Werte aus $_Post und prüfe auf Richtigkeit also
ob z.B. nicht der 30.02.2013 gewählt wurde, der Endzeitpunkt nicht vor dem Startzeitpunkt
liegt und ob auch min. ein Zählerpunkt angegeben wurde (siehe Frage 2 oben).

Innerhalb der Datenbankabfrage werden die Werte bezüglich der Zählpunkte und der
Zeitpunkte aus der Datenbank gelesen und dann von phplot zu einem Diagramm verarbeitet.

Wenn ich fixe Werte in die getdata.php eintragen würde, wäre die Seite auch allein
lauffähig. Sprich es würde das Diagramm dargestellt.

Soweit funktioniert es alles auch wunderbar!
Bitte warten ..
Mitglied: Arano
13.10.2013, aktualisiert um 15:57 Uhr
Hi

Huii, das war jetzt aber ausführlich
So genau hätte es gar nicht sein müssen *g*
Aber lieber so, als das was wichtiges vergessen wird ;)

__getdata.php__
  • Eingaben prüfen
  • Daten aus DB Holen
  • Grafik generiere UND ausgeben

Da der Benutzer hier nur drei Werte als Parameter vorgibt, wäre es doch einfacher alles auf GET umzustellen und die Werte als Parameter beim einbinden von 'getdata.php' als IMG mit anzugeben.
Es so zu machen wie ich es eben schon vorschlug.
__dia.php__
  • Formular
  • Eingaben Prüfung und ggf
  • Anzeigen der Grafik / Ausgabe von Fehleingaben

__getdata.php__
  • Datenbank lesen
  • Grafik generieren und ausgeben

Oder spricht etwas anders dagegen !?


~Arano
Bitte warten ..
Mitglied: FunkerVogt
13.10.2013 um 17:34 Uhr
Ne ne neeee... sind nur 2 Seiten!

Es gibt die dia.HTML (Quasi Startseite)--- da werden die Formulardaten für $_POST eingetragen und an
die getdata.PHP (zweite Seite) übertragen.

In der dia.HTML soll auch das Diagramm der getdata.PHP ausgegeben werden.

oder meinst Du alles auf 3 Seiten aufteilen?

Das mit dem IMG..werde ich mal testen.
Bitte warten ..
Mitglied: Arano
13.10.2013 um 20:48 Uhr
Na dann ist mein Vorschlag genau richtig
(Das sind auch nur zwei Dateien ! Allerdings wird aus der "dis.html" eine "dia.php" weil diese dann PHP-Code enthält)

Das mit dem IMG..werde ich mal testen.
Dann sei noch mal drauf hingewiesen:
In diesem Fall ist es absolut WICHTIG, das die 'getdata.php' __nichts außer den Bilddaten__ ausgibt !
Sollte da vorher auch nur ein einziges Leerzeichen ausgegeben werden - funktioniert es nicht.
Gleichzeitig sollte klar sein, das jegliche Fehlermeldungen die der PHP-Code in 'getdata.php' erzeugt oder die von dir generiert sind nicht auf der Seite angezeigt werden, denn diese Daten werden ja als vermeintliches Bild in die Seite eingebunden und verschwinden so zusagen "im Bild".

Wenn was ist, weißt ja wo du uns findest.

Dann mal viel Erfolg
~Arano
Bitte warten ..
Mitglied: nxclass
13.10.2013, aktualisiert um 21:46 Uhr
der Quellcode wird in einem neuen Fenster angezeigt.
.. "short open tags" deaktiviert ?
01.
- <?
02.
+ <?php
Bitte warten ..
Mitglied: FunkerVogt
20.10.2013 um 21:18 Uhr
@nxclass

Nein.
Benutze ich auch nicht.

In der .htaccess hab ich dennoch "php_flag short_open_tag off" eingetragen.
Selbstverständlich auch den Server neugestartet.

Start und End-Tags sind bei mir:

<?php
.
.
.
?>

@Arano

Mit dem selbstaufrufen der Seite funktioniert auch mit img nich..
Fehler sind keine, zumindest nicht sichtbar. Fehlerlogging über:

01.
error_reporting(E_ALL);
02.
ini_set('display_errors', 0);
03.
ini_set('log_errors', 1);
04.
ini_set('error_log', 'fehler.txt');
Gruss Uwe
Bitte warten ..
Ähnliche Inhalte
PHP
HTML PHP MySQL Webanwendung
Frage von hahaxd3PHP12 Kommentare

Hallo Leute, Ich möchte gerne Meine Datenbank auf einer webseite darstellen. Dabei sollte diese Als normale Tabelle dargestellt sein. ...

PHP
HTML Code in PHP
gelöst Frage von newit1PHP8 Kommentare

Hallo, es geht um folgenden PHP Code: In der letzten Zeile wird ein einer Tabelle die E-Mail Adresse ausgegeben. ...

PHP
Anfängerfrage in HTML und PHP
gelöst Frage von Stefan007PHP4 Kommentare

Hallo Leute, es soll angeblich einen einzigen Echo-Befehl geben innerhalb eines PHP-Scripts, der ein komplettes HTML-Grundgerüst erstellen und ausgeben ...

PHP

Codierung in PHP und HTML richtig einstellen

gelöst Frage von ITHG13PHP5 Kommentare

Hallo, ich beschäftige mich gerade mit PHP/HTML/MySQL. Dafür habe ich eine kleine Linux/Apache-Testumgebung gebaut und eine kleine "Webseite" gebastelt. ...

Neue Wissensbeiträge
iOS
WatchChat für Whatsapp
Tipp von Criemo vor 2 TageniOS3 Kommentare

Ziemlich coole App für WhatsApp User in Verbindung mit der Apple Watch. Gibts für iOS sowohl als auch für ...

iOS
IOS hat nen Cursor !!!
Tipp von Criemo vor 2 TageniOS5 Kommentare

Nette Funktion im iOS. iPhone-Mauszeiger aktivieren „Nichts ist nerviger, als bei einem Tippfehler zu versuchen, den iOS-Cursor an die ...

Off Topic
Avengers 4: Endgame - Erster Trailer
Information von Frank vor 4 TagenOff Topic2 Kommentare

Ich weiß es ist Off Topic, aber ich freue mich auf diesen Film und vielleicht geht es anderen hier ...

Webbrowser
Microsoft bestätigt Edge mit Chromium-Kern
Information von Frank vor 4 TagenWebbrowser5 Kommentare

Microsoft hat nun in seinem Blog bestätigt, dass die nächste Edge Version kein EdgeHTML mehr für die Darstellung benutzen ...

Heiß diskutierte Inhalte
Windows Netzwerk
Kerio. Kann keine Mails empfangen aber senden. Wer ist schuld. Kerio oder Windows domäne?
gelöst Frage von frosch2Windows Netzwerk33 Kommentare

Hallo, es existiert ein Problem bei uns mit dem mailen. Alle bestehenden Nutzer können mailen. Raus wie rein. Neuen ...

LAN, WAN, Wireless
WLAN und Ausmessung - Eine Glaubensfrage?
Frage von ptr2brainLAN, WAN, Wireless23 Kommentare

Liebe Experten, als Sys-Admin habe ich mir schon öfter die Frage gestellt, ob es sich beim Thema WLAN und ...

Hosting & Housing
VMware VM mit über 1TB RAM für S4HANA
gelöst Frage von Leo-leHosting & Housing22 Kommentare

Hallo zusammen, wer hat Erfahrng und kann mir einen Tipp zum sizing von S4HANA Systemen geben? Wir möchten, zunächst ...

Virtualisierung
Gebrauchte Server Hardware als Virtualisierungs-"Spielwiese"?
Frage von NixVerstehenVirtualisierung19 Kommentare

Einen wunderschönen guten Morgen zusammen, ich möchte mich gerne etwas tiefer mit dem Thema Virtualisierung beschäftigen und dazu ein ...