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, 2451 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
Webentwicklung
SQL Daten in HTML anzeigen lassen
Frage von MiStWebentwicklung1 Kommentar

Hallo, ich habe eine Sybase-Datenbank und ich möchte gerne mir Tabellen aus dieser Datenbank im Browser anzeigen lassen. Welche ...

PHP
PHP Script zum Daten auslesen gesucht
Frage von majas3PHP2 Kommentare

Hallo, ich habe viele taußend HTML Seiten in verschiedenen Verzeichnissen und bin auf der Suche nach einem PHP Script ...

Batch & Shell

Kann man mit Power Schell auch Daten von HTML Seiten auslesen?

gelöst Frage von Maik007Batch & Shell4 Kommentare

Hi, nachdem ich nun schon hier sehr professionell gute Hilfe bekommen habe, frage ich mich ob man ggfs. eine ...

Batch & Shell

HTML-Seiten öffnen und bestimmte Daten auslesen

gelöst Frage von makroll10Batch & Shell1 Kommentar

Hallo, ich möchte hintereinander verschiedene HTML-Seiten hintereinander per IP-Adresse aufrufen, bestimmte Daten daraus auslesen und diese Daten dann lokal ...

Neue Wissensbeiträge
Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 1 StundeHumor (lol)

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 14 StundenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Sicherheit

Intel gibt neue Spectre V2-Microcode-Updates frei (20.02.2018)

Information von kgborn vor 14 StundenSicherheit

Intel hat zum 20. Februar 2018 weitere Microcode-Updates für OEMs freigegeben, um Systeme mit neueren Prozessoren gegen die Spectre ...

Microsoft
ARD-Doku - Das Microsoft Dilemma
Tipp von Knorkator vor 17 StundenMicrosoft3 Kommentare

Hallo zusammen, vor einigen Tagen lief in der ARD u.a. Reportage. Das Youtube Video dazu dürfte länger verfügbar sein. ...

Heiß diskutierte Inhalte
Windows Server
AD DS findet Domäne nicht, behebbar?
Frage von schapitzWindows Server40 Kommentare

Guten Tag, ich habe bei einem Kunden ein Problem mit den AD DS. Umgebung ist folgende: Windows Server 2016 ...

Router & Routing
LANCOM VPN CLIENT einrichten
Frage von Finchen961988Router & Routing27 Kommentare

Hallo, ich habe ein Problem und hoffe ihr könnt mir helfen, wir haben einen Kunden der hat einen Speedport ...

Router & Routing
ISC DHCP 2 Subnetze
gelöst Frage von janosch12Router & Routing19 Kommentare

Hallo, ich betreibe bei mir im Netzwerk einen ISC DHCP Server auf Debian, der DHCP verwaltet aktuell ein /24 ...

Switche und Hubs
Cisco SG350X-48 AdminIP in anderes VLAN
Frage von lcer00Switche und Hubs14 Kommentare

Hallo zusammen, ich habe ein Problem mir einem Cisco SG350X-48 bei der Erstinstallation wurde eine IP 192.168.0.254 (Default VLAN ...