CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
16.07.2014, 19:23:31
|
Anfänger
|
|
Registriert seit: Jul 2014
Alter: 31
Beiträge: 4
|
|
Probleme beim einbinden einer .php Datei
Hallo geschätztes Forum!
Ich bin neu hier und muss gleich mit einer für mich kniffligen Aufgabe hereinplatzen!
Ich habe eine Seite erstellt, auf welcher sich im wesentlichen zwei DIV-Container befinden.
Im einen (links) befinden sich Buttons, die, nachdem auf sie geklickt wurde, jeweils eine bestimmte php Seite in den anderen DIV-Container (rechts) laden sollen.
Das funktioniert soweit auch ganz gut.
Mein Problem besteht jedoch darin, dass sich auf den includierten php Formularen ein Submitputton befindet, der mit
PHP-Code:
if(isset($_POST['submit'])){...}
abgeprüft wird.
Allerdings wird der Button, der die php Seite in den DIV-Container lädt ebenfalls auf diese Weise abgeprüft. Drückt man den Button des inkludierten Files, so geht das "isset" des zuvor gedrückten Buttons verloren und der Code wird nicht mehr weiter ausgeführt.
Hat jemand eine Idee wie man das ganze anders lösen könnte?
Möglicherweise mit GET?
|
18.07.2014, 00:47:00
|
Anfänger
|
|
Registriert seit: Jul 2014
Alter: 41
Beiträge: 14
|
|
AW: Probleme beim einbinden einer .php Datei
Hallo ega364
Willkommen, bin selber auch neu hier.
Mehr Code Deinerseits wäre natürlich hilfreich.
So wie ich das verstehe, haben die beiden verschiedenen Submit-Buttons nichts miteinander zu tun. Dann vergib ihnen doch auch eigene Namen.
Im Div1
HTML-Code:
<input type="submit" name="test1" value="Abschicken">
PHP-Code:
if(isset($_POST['test1'])){...}
Im Div 2/der inkludierten php Datei
HTML-Code:
<input type="submit" name="test2" value="Abschicken">
PHP-Code:
if(isset($_POST['test2'])){...}
Bleib bei POST. GET würde ich nur im folgendem Fall verwenden: Die Ergebnisseite eines GET-Formulars kann man bookmarken, da alle nötigen Informationen in der URL enthalten sind.
Gruss doschni
|
18.07.2014, 17:55:08
|
Anfänger
|
|
Registriert seit: Jul 2014
Alter: 31
Beiträge: 4
|
|
AW: Probleme beim einbinden einer .php Datei
Hallo doschni!
Danke für die Antwort!
Die Buttons haben bereits unterschiedliche Namen, daran kann's also nicht liegen.
Diesmal will ich mit dem Code nicht geizen. Im linken div container werden 3 Buttons erzeugt. Nach dem Anklicken soll für jeden Button in div 2 (rechts) ein anderes Formular geladen werden, das am Ende selbstverständlich bestätigt werden muss:
HTML-Code:
<html>
<head>
<title>Konfiguration</title>
<link href="../stylesheet.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="main">
<div id="banner">
<h1>Konfiguration</h1>
</div>
<div id="menu">
<form action="create_button.php" method="post" />
<input type="submit" name="add" value="Hinzufügen" class="mbutton">
<input type="submit" name="remove" value="Entfernen" class="mbutton">
<input type="submit" name="chorder" value="Ordnen" class="mbutton">
</div>
<div id="switches">
PHP-Code:
<?php
if(isset($_POST['add'])){
include 'add.php';
}
elseif(isset($_POST['remove'])){
include 'remove.php';
}
elseif(isset($_POST['chorder'])){
include 'chorder.php';
}
?>
HTML-Code:
</div>
</div>
</body>
Hier wird das Formular erzeugt welches nach einem Klick auf hinzufügen angezeigt werden soll. db_connect.php is eine von mir erstellte Klasse die eine Verbindung zur MySql-Datenbank aufbaut und dort die eingegebenen Werte einträgt.
HTML-Code:
<html>
<body>
<h1>Ein neues Gerät hinzufügen</h1>
<form action="add.php" method="post" />
<table id="formtable">
<tr>
<td>
Neues Gerät
</td>
<td>
<input type="text" name="nb_name" class="textinput">
</td>
<tr>
<td>
Raum
</td>
<td>
<input type="text" name="nb_group" class="textinput">
</td>
</tr>
<tr>
<td>
Befehl
</td>
<td>
<input type="text" name="nb_command" class="textinput">
</td>
<tr>
<td>
</td>
<td>
<input type="submit" name="addsubmit" value="Gerät hinzufügen" class="submit">
</td>
</tr>
</table>
PHP-Code:
<?php
if(isset($_POST['addsubmit'])){
include('db_connect.php'); //MySql-Klasse einbinden
$read = db_connect("INSERT INTO sw_switches(id, name, swgroup, status, position, command) VALUES (NULL, 'test', 'wz', '0', '1', '01010')", "write"); //Neues Gerät hinzufügen
var_dump($read);
}
?>
HTML-Code:
</body>
</html>
|
18.07.2014, 22:58:11
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 76
Beiträge: 4.001
|
|
AW: Probleme beim einbinden einer .php Datei
Zitat:
Zitat von ega364
Diesmal will ich mit dem Code nicht geizen.
|
Da fehlt noch einiges:
1. kein DOCTYPE: soll das HTML 3.20 sein?
2. form Tag nicht geschlossen. Und selbst wenn er irgend wo geschlossen wird, wäre es falsch geschachtelt.
Code:
<div id="menu">
<form action="create_button.php" method="post" />
<input type="submit" name="add" value="Hinzufügen" class="mbutton">
<input type="submit" name="remove" value="Entfernen" class="mbutton">
<input type="submit" name="chorder" value="Ordnen" class="mbutton">
</div>
Warum kontrollierst Du das HTML nicht mit dem Validator?
http://validator.w3.org/
Da es ua. auch Umlaute gibt, stimmt der charset auch nicht.
Falls es UTF-8 werden soll, mußt Du höchstwahrscheinlich vor dem HTML Gerätze noch nen passenden HTTP header schicken.
Falls nicht: htmlentities() benutzen.
Ganz übel sind allerdings Umlaute in den values von Formularen. Da muß der Browser schon ein großes Herz und viel Mitleid haben... <ggg>
Du hast weniger Ärger, wenn Du Grafiken als Knöppe benutzt.
|
19.07.2014, 01:20:20
|
Anfänger
|
|
Registriert seit: Jul 2014
Alter: 41
Beiträge: 14
|
|
AW: Probleme beim einbinden einer .php Datei
Ich weiss nicht recht, ob Du Dir unter include das vorstellst, was es ist. Es ist nämlich ein, in eine externe Datei ausgelagerter, Codeschnipsel - nicht eine Webseite. D.h. wenn Du z.B. die index.php erstellst, erstellst Du eine Website mit den <html> ,<head> & <body> Tags, die nur einmal !! vorkommen. Du kannst also zuerst alles auf eine Seite schreiben, und wenn Du fertig bist, den Schnipsel den Du möchtest auslagern. Der Sinn ist, dass man eine Datei für mehrere Websites benutzen kann z.B. die db_connect.php. Wenn dann mal der Server gewechselt wird, genügt es, die db_connect.php Datei anzupassen, anstatt tausende Sites zu öffnen und überall die neuen Zugansdaten einzutippen.
Hier hab ich mal Dein Script mit den zwei Dateien so angepasst, dass zumindest mal der Hinzufuegen-Button funktionieren sollte.
index.php
PHP-Code:
<!doctype html> <html> <head> <meta charset="UTF-8"> <title>>Konfiguration</title> <link rel="stylesheet" type="text/css" href="../stylesheet.css"> </head>
<body>
<div id="main"> <div id="banner"> <h1>Konfiguration</h1> </div> <div id="menu">LINKS <form name="links"> <input type="submit" name="add" value="Hinzufuegen" class="mbutton" formaction="" formmethod="post"> <input type="submit" name="remove" value="Entfernen" class="mbutton" formaction="" formmethod="post"> <input type="submit" name="chorder" value="Ordnen" class="mbutton" formaction="" formmethod="post"> </form> </div> <div id="switches">RECHTS <?php
if(isset($_POST['addsubmit'])){ echo $_POST['nb_name'] ." wurde eingetragen"; }
if(isset($_POST['add'])){ include 'add.php'; } elseif(isset($_POST['remove'])){ include 'add2.php'; } elseif(isset($_POST['chorder'])){ include 'chorder.php'; } ?> </div> </div> </body> </html>
add.php
PHP-Code:
<?php include 'db_connect.php'; //MySql-Klasse einbinden
if(isset($_POST['addsubmit'])){
mysql_query("INSERT INTO sw_switches(id, name, swgroup, status, position, command) VALUES (NULL, 'test', 'wz', '0', '1', '01010')")
or die(mysql_error()); } // Hier Datenbank wieder schliessen, je nachdem, was in der db_connect.php steht z.B. // mysql_close($con); ?>
<h1>Ein neues Gerät hinzufügen</h1> <form name="rechts"> <table id="formtable"> <tr> <td> Neues Gerät </td> <td> <input type="text" name="nb_name" class="textinput"> </td> <tr> <td> Raum </td> <td> <input type="text" name="nb_group" class="textinput"> </td> </tr> <tr> <td> Befehl </td> <td> <input type="text" name="nb_command" class="textinput"> </td> <tr> <td> </td> <td> <input type="submit" name="addsubmit" value="Gerät hinzufügen" class="submit" formaction="" formmethod="post"> </td> </tr> </table> </form>
Geändert von doschni (19.07.2014 um 01:48:40 Uhr)
|
19.07.2014, 02:15:55
|
Anfänger
|
|
Registriert seit: Jul 2014
Alter: 41
Beiträge: 14
|
|
AW: Probleme beim einbinden einer .php Datei
Sorry hier die funktionierende Version:
index.php
PHP-Code:
<!doctype html> <html> <head> <meta charset="UTF-8"> <title>Funktionierende Konfiguration</title> </head>
<body>
<div id="main"> <div id="banner"> <h1>Konfiguration</h1> </div> <div id="menu">LINKS <form name="links"> <input type="submit" name="add" value="Hinzufuegen" class="mbutton" formaction="" formmethod="post"> <input type="submit" name="remove" value="Entfernen" class="mbutton" formaction="" formmethod="post"> <input type="submit" name="chorder" value="Ordnen" class="mbutton" formaction="" formmethod="post"> </form> </div> <div id="switches">RECHTS<br> <?php if(isset($_POST['addsubmit'])){ echo $_POST['nb_name']; echo $_POST['nb_group']; echo $_POST['nb_command']; include 'db_connect.php'; //MySql-Klasse einbinden mysql_query("INSERT INTO sw_switches(id, name, swgroup, status, position, command) VALUES (NULL, 'test', 'wz', '0', '1', '01010')")
or die(mysql_error());
// Hier Datenbank wieder schliessen, je nachdem, was in der db_connect.php steht z.B. // mysql_close($con); } if(isset($_POST['add'])){ include 'add.php'; } elseif(isset($_POST['remove'])){ include 'add2.php'; } elseif(isset($_POST['chorder'])){ include 'chorder.php'; } ?> </div> </div> </body> </html>
add.php
PHP-Code:
<h1>Ein neues Gerät hinzufügen</h1> <form name="rechts"> <table id="formtable"> <tr> <td> Neues Gerät </td> <td> <input type="text" name="nb_name" class="textinput"> </td> <tr> <td> Raum </td> <td> <input type="text" name="nb_group" class="textinput"> </td> </tr> <tr> <td> Befehl </td> <td> <input type="text" name="nb_command" class="textinput"> </td> <tr> <td> </td> <td> <input type="submit" name="addsubmit" value="Gerät hinzufügen" class="submit" formaction="" formmethod="post"> </td> </tr> </table> </form>
Gruss und gut Nacht
|
19.07.2014, 11:20:22
|
Anfänger
|
|
Registriert seit: Jul 2014
Alter: 31
Beiträge: 4
|
|
AW: Probleme beim einbinden einer .php Datei
Zitat:
Zitat von meikel
Da fehlt noch einiges:
1. kein DOCTYPE: soll das HTML 3.20 sein?
2. form Tag nicht geschlossen. Und selbst wenn er irgend wo geschlossen wird, wäre es falsch geschachtelt.
|
Wie man vielleicht merkt mache ich das hobbymäßig und hab mir meine bescheidenen Fähigkeiten selbst beigebracht.
Zugegeben bin ich oft zu ungeduldig, um bei den Basics zu beginnen. Aber ich werde fortan darauf achten.
Zitat:
Zitat von meikel
|
Auch das werde ich mir mal anschauen. Danke.
Zitat:
Zitat von meikel
Ganz übel sind allerdings Umlaute in den values von Formularen. Da muß der Browser schon ein großes Herz und viel Mitleid haben...
|
Da kenn ich mich jetzt überhaupt nicht aus. Aber so tragisch ist das nicht. Die Seite wird ja ohnehin nie veröffentlicht, sondern soll nur zu Hause im Lokalnetz laufen. Solang es da funktioniert mach ich mir darüber keine Gedanken
Zitat:
Zitat von meikel
Du hast weniger Ärger, wenn Du Grafiken als Knöppe benutzt.
|
Wie gesagt -> Amateurlaie.
Ich tue mir mit Knöpfen leichter, da soetwas ähnliches noch auf einer zweiten Seite geschehen soll. Dort werden die Buttons jedoch dynamisch aus einer Datenbank generiert... Ist bestimmt auch mit Grafiken möglich, für mich zZ jedoch nicht.
Jedenfalls danke für deine Tipps!
|
19.07.2014, 11:29:37
|
Anfänger
|
|
Registriert seit: Jul 2014
Alter: 31
Beiträge: 4
|
|
AW: Probleme beim einbinden einer .php Datei
Danke doschni!
Jetzt funktioniert es so wie es soll!
Zitat:
Zitat von doschni
Ich weiss nicht recht, ob Du Dir unter include das vorstellst, was es ist.
|
Ja, dass es nur einem ausgelagertem Codeschnipsel entspricht, habe ich gewusst.
Habe jedoch nicht bedacht, dass die angesprochenen html-tags ja bereits in der index.php vorhanden sind.
Hätte man auch selbst draufkommen können. *ärger*
Dann werde ich jetzt Eure Augen verschonen
und alleine mit meinem Code-Gebräu weitermachen. :)
DANKE!
|
19.07.2014, 17:19:04
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 76
Beiträge: 4.001
|
|
AW: Probleme beim einbinden einer .php Datei
Zitat:
Zitat von doschni
Sorry hier die funktionierende Version:
|
Wesentlich besser:
Code:
Errors found while checking this document as HTML5!
Result: 3 Errors, 2 warning(s)
...
Code:
Line 17, Column 110: Bad value for attribute formaction on element input: Must be non-empty.
…name="add" value="Hinzufuegen" class="mbutton" formaction="" formmethod="post">
Syntax of URL:
Any URL. For example: /hello, #canvas, or http://example.org/. Characters should be represented in NFC and spaces should be escaped as %20.
Error Line 18, Column 111: Bad value for attribute formaction on element input: Must be non-empty.
…ame="remove" value="Entfernen" class="mbutton" formaction="" formmethod="post">
Syntax of URL:
Any URL. For example: /hello, #canvas, or http://example.org/. Characters should be represented in NFC and spaces should be escaped as %20.
Error Line 19, Column 109: Bad value for attribute formaction on element input: Must be non-empty.
… name="chorder" value="Ordnen" class="mbutton" formaction="" formmethod="post">
Syntax of URL:
Any URL. For example: /hello, #canvas, or http://example.org/. Characters should be represented in NFC and spaces should be escaped as %20.
Abhilfe:
Code:
... formaction="#" ...
oder:
Erstaunlicherweise wird bei HTML5 ein fehlendes/r Content-type Attribut/Tag nicht vermißt.
Bei Bedarf:
Code:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
19.07.2014, 17:39:27
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 76
Beiträge: 4.001
|
|
AW: Probleme beim einbinden einer .php Datei
Zitat:
Zitat von ega364
Wie man vielleicht merkt mache ich das hobbymäßig und hab mir meine bescheidenen Fähigkeiten selbst beigebracht.
|
a. völlig egal, ob Du das nur "unterm Schreibtisch" oder kommerziell betreibst.
b. hier:
http://de.selfhtml.org/
hier
http://validator.w3.org/
und hier
http://jigsaw.w3.org/css-validator/
gibts Hilfe bzw. "Zensuren".
Man hat die Wahl:
Zitat:
Validate by URI
Validate by File Upload
Validate by Direct Input
|
Falls kein öffentlicher URL: Ich teste das immer so, daß ich das Script via HTTP Server mit dem Browser aufrufe und den HTML-Quelltext über die Zwischenablage dam Validator zum fressen gebe.
Sonst gibts den Link. Dann testet das Teil noch die HTTP Header.
Zitat:
Zugegeben bin ich oft zu ungeduldig, um bei den Basics zu beginnen. Aber ich werde fortan darauf achten.
|
OK.
Zitat:
Da kenn ich mich jetzt überhaupt nicht aus. Aber so tragisch ist das nicht. Die Seite wird ja ohnehin nie veröffentlicht, sondern soll nur zu Hause im Lokalnetz laufen. Solang es da funktioniert mach ich mir darüber keine Gedanken
|
Aus eigener leidvoller Erfahrung: "Nichts ist langlebiger als ein Provisorium."
Zitat:
Ich tue mir mit Knöpfen leichter, da soetwas ähnliches noch auf einer zweiten Seite geschehen soll.
|
Mit Umlauten gibts immer Ärger, der fast unlösbar wird, wenn noch Javascript dazukommt. Es ist einfacher, einen mit <passendes Bildbearbeitungsprogramm> gemalten Knopp zu verwenden. Da kannste Umlaute u/o chinesische Schriftzeichen reinpinseln, weil sich daran weder der Browser noch der Server stört:
http://de.selfhtml.org/html/formular...ons.htm#modern
Das beachten:
11.14. Wie verarbeite ich <input type="image">?
http://home.mengelke.de/html-php-mys...lar-image.html
Zitat:
Ist bestimmt auch mit Grafiken möglich, für mich zZ jedoch nicht.
|
Siehs doch einfach mal so:
das Vorstreichen eines Gegenstandes vor dem Lackieren ist auch dann erforderlich, wenn man kein Malermeister ist, weil sonst der Lack abblättert.
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 08:56:31 Uhr.
|