Daten werden nicht in die Datenbank übergeben

Alles, was MariaDB und MySQL betrifft, kann hier besprochen werden.

Daten werden nicht in die Datenbank übergeben

Postby GateToUnder » 14. November 2015 21:06

Moin,

Ich hab ein kleines Problem, welches mir das weitere erlernen von PHP/MySQL erschwert...

Ich habe Daten welche aus einem HTML Formular mittels PHP an die Datenbank übergeben werden sollen.
Das klappt alles bis zu dem Zeitpunkt wo die Daten in der Datenbank abgelegt werden sollen.

Hier mein kompletter Code der 3 Dateien.

dbconnect.php
<?php
$db = mysqli_connect("localhost", "DevelopmentGTU", "U3Kuh4C9tPQ3YBz6", "test");
if(!$db)
{
exit("Verbindungsfehler: ".mysqli_connect_error());
}
?>


index.html
<?php
include("dbconnect.php");
?>
<!DOCTYPE html>
<html>
<head></head>

<body>
PHP Testeingabefelder
<form action="submit.php" method="post">
<p>Ihre URL: <input type="text" name="url"></p>
<p>HyperlinkName: <input type="text" name="hpname"></p>
<p>Besitzer: <input type="text" name="name"></p>
<p>Banner: <input type="text" name="banner"></p>
<p>Beschreibung: <input type="text" name="beschreibung"></p>
<p><input type="submit" /></p>
</form>
</body>

</html>


submit.php
<?php
$url = $_POST["url"];
$hpname = $_POST["hpname"];
$name = $_POST["name"];
$banner = $_POST["banner"];
$beschreibung = $_POST["beschreibung"];
$eintragen = mysqli_query($db, "INSERT INTO test (url, urlname, name, banner, beschreibung) VALUES ('$url', '$hpname', '$name', '$banner', '$beschreibung')");
?>



Ich hoffe ihr könnt mir helfen.

Solltet ihr noch Informationen rbauchen, dann fragt einfach ich versuche so gut es geht dann zu antworten ^^

MFG GateToUnder/Merlin
GateToUnder
 
Posts: 3
Joined: 14. November 2015 20:58
Operating System: Windows 7 Home premium 64 Bit

Re: Daten werden nicht in die Datenbank übergeben

Postby Altrea » 14. November 2015 21:11

Hallo,

Welche Fehlermeldung bekommst du denn?
Wenn die Antwort "keine" ist, dann solltest du mehr MySQL Fehlerausgaben implementieren.

mit freundlichen Grüßen,
Altrea
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 8294
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 10 Pro x64

Re: Daten werden nicht in die Datenbank übergeben

Postby GateToUnder » 14. November 2015 22:00

Ja Die Antwort ist keine ^^

Hättest du denn vielleicht eine Idee welche Fehlermeldungen hier noch rein könnten ?

MFG Merlin
GateToUnder
 
Posts: 3
Joined: 14. November 2015 20:58
Operating System: Windows 7 Home premium 64 Bit

Re: Daten werden nicht in die Datenbank übergeben

Postby Altrea » 14. November 2015 22:02

GateToUnder wrote:$eintragen = mysqli_query($db, "INSERT INTO test (url, urlname, name, banner, beschreibung) VALUES ('$url', '$hpname', '$name', '$banner', '$beschreibung')");

Was passiert hier wohl, wenn die Abfrage - aus welchen Gründen auch immer - fehlschlägt?
Also: An dieser Stelle Fehlerbehandlung einbauen.
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 8294
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 10 Pro x64

Re: Daten werden nicht in die Datenbank übergeben

Postby GateToUnder » 15. November 2015 08:48

Morgen :)

Ich ab jetzt soweit glaube ich eingebaut aber es kommt trotzdem keine Fehlermeldung...

Hier der neue Code

dbconnect.php
<?php
$connection = mysql_connect("%", "DevelopmentGTU", "U3Kuh4C9tPQ3YBz6", "test") or die (mysql_error());
?>


index.html
<?php
include("dbconnect.php") or die (mysql_error());
?>
<!DOCTYPE html>
<html>
<head></head>

<body>
PHP Testeingabefelder
<form action="submit.php" method="post">
<p>Ihre URL: <input type="text" name="url"></p>
<p>HyperlinkName: <input type="text" name="hpname"></p>
<p>Besitzer: <input type="text" name="name"></p>
<p>Banner: <input type="text" name="banner"></p>
<p>Beschreibung: <input type="text" name="beschreibung"></p>
<p><input type="submit" /></p>
</form>
</body>

</html>


submit.php
<?php
$url = $_POST["url"];
$hpname = $_POST["hpname"];
$name = $_POST["name"];
$banner = $_POST["banner"];
$beschreibung = $_POST["beschreibung"];
$eintragen= mysql_query($connection, "INSERT INTO test (url, urlname, name, banner, beschreibung) VALUES ('$url', '$hpname', '$name', '$banner', '$beschreibung')")or die (mysql_error());
?>


Ich hoffe ich hab keinen Fehler gemacht.

MFG Merlin
GateToUnder
 
Posts: 3
Joined: 14. November 2015 20:58
Operating System: Windows 7 Home premium 64 Bit

Re: Daten werden nicht in die Datenbank übergeben

Postby hto » 15. November 2015 09:16

GateToUnder wrote:Morgen :)

Ich ab jetzt soweit glaube ich eingebaut aber es kommt trotzdem keine Fehlermeldung...

Hier der neue Code

dbconnect.php
<?php
$connection = mysql_connect("%", "DevelopmentGTU", "U3Kuh4C9tPQ3YBz6", "test") or die (mysql_error());
?>


index.html
<?php
include("dbconnect.php") or die (mysql_error());
?>
<!DOCTYPE html>
<html>
<head></head>

<body>
PHP Testeingabefelder
<form action="submit.php" method="post">
<p>Ihre URL: <input type="text" name="url"></p>
<p>HyperlinkName: <input type="text" name="hpname"></p>
<p>Besitzer: <input type="text" name="name"></p>
<p>Banner: <input type="text" name="banner"></p>
<p>Beschreibung: <input type="text" name="beschreibung"></p>
<p><input type="submit" /></p>
</form>
</body>

</html>


submit.php
<?php
$url = $_POST["url"];
$hpname = $_POST["hpname"];
$name = $_POST["name"];
$banner = $_POST["banner"];
$beschreibung = $_POST["beschreibung"];
$eintragen= mysql_query($connection, "INSERT INTO test (url, urlname, name, banner, beschreibung) VALUES ('$url', '$hpname', '$name', '$banner', '$beschreibung')")or die (mysql_error());
?>


Ich hoffe ich hab keinen Fehler gemacht.

MFG Merlin



Hallo, als Laie fällt mir in diesem String $eintragen= ... urlname auf. Muss das nicht hpname heißen?
Oder bin ich im ganz falschen Film?

gruss
hto
 
Posts: 53
Joined: 03. August 2005 09:59

Re: Daten werden nicht in die Datenbank übergeben

Postby Nobbie » 15. November 2015 11:44

Wie rufst Du denn im Browser deine Testseite auf?
Nobbie
 
Posts: 8775
Joined: 09. March 2008 13:04

Re: Daten werden nicht in die Datenbank übergeben

Postby Altrea » 15. November 2015 11:44

Hallo,

Ich sehe gleich mehrere Fehler, doch irgendwelche Meldungen müssen dir angezeigt werden (und wenns nur der reine Quelltext der submit.php nach Absenden des Formulars ist)

Hast du die Fehlerausgabe deaktiviert oder heruntergeschraubt? (Stichwort error_reporting, display_errors)

Wie rufst du die index.html auf? Direkt im Browser per Doppelklick oder so wie es richtig ist per URL angefragt? (Stichwort: Was steht in der Browseraddressleiste wenn die Datei dargestellt wird)

dbconnect.php
Code: Select all
$connection = mysql_connect("%", "DevelopmentGTU", "U3Kuh4C9tPQ3YBz6", "test") or die (mysql_error()); 

Das ist Quatsch. "%" als Hostteil ist nonsense. Du musst hier den einen Host angeben (Domainname, Computername, IP-Adresse), auf dem sich die Datenbank befindet. In der XAMPP Umgebung befindet sich die Datenbank auf demselben Host wie der Apache, daher kannst du hier "localhost" angeben.

Der vierte Parameter von mysql_connect kann kein String sein, es ist ein bool Wert. http://php.net/manual/de/function.mysql-connect.php
Du kannst hier nicht die Datenbank angeben zu der du dich verbinden möchtest, dafür gibt es die Funktion mysql_select_db http://php.net/manual/de/function.mysql-select-db.php


index.html
Code: Select all
include("dbconnect.php") or die (mysql_error()); 

Das or die() ist hier Quatsch. Du hast die Fehlerbehandlung schon in der dbconnect.php stehen, das reicht. Es würde auch nie ein MySQL Fehler generiert, wenn der include fehlschlägt.


submit.php
Code: Select all
$eintragen= mysql_query($connection, "INSERT INTO test (url, urlname, name, banner, beschreibung) VALUES ('$url', '$hpname', '$name', '$banner', '$beschreibung')")or die (mysql_error());

mysql_query erfordert als ersten Parameter das SQL-Statement und als zweiten Parameter die DB Ressource, nicht umgekehrt http://php.net/manual/de/function.mysql-query.php

Weiterhin wird $connection an dieser Stelle nicht gefüllt sein, da nach Absenden des Formulars ein neuer Request abgesetzt wird.

Tipp zum Schluß: Lerne die PHP Dokumentation zu lesen und zu verwenden. Viele deiner Fehler ließen sich allein dadurch selbst beheben.

mit freundlichen Grüßen,
Altrea
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 8294
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 10 Pro x64

Re: Daten werden nicht in die Datenbank übergeben

Postby Nobbie » 15. November 2015 11:49

Altrea wrote:doch irgendwelche Meldungen müssen dir angezeigt werden


Nö - wetten, dass das Formular nicht via http: sondern via file: im Browser geöffnet wird und dadurch überhaupt kein PHP ausgeführt wird... (wahrscheinlich Doppelklick im Explorer oder so).
Nobbie
 
Posts: 8775
Joined: 09. March 2008 13:04

Re: Daten werden nicht in die Datenbank übergeben

Postby Altrea » 15. November 2015 11:54

Nobbie wrote:
Altrea wrote:doch irgendwelche Meldungen müssen dir angezeigt werden


Nö - wetten, dass das Formular nicht via http: sondern via file: im Browser geöffnet wird und dadurch überhaupt kein PHP ausgeführt wird... (wahrscheinlich Doppelklick im Explorer oder so).

Möglich, aber dann wird nach Absenden des Formulars der Quelltext von submit.php ausgegeben oder die Datei submit.php zum Download angeboten. Das allein wäre schon auffällig genug es zu erwähnen.
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 8294
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 10 Pro x64

Re: Daten werden nicht in die Datenbank übergeben

Postby Nobbie » 15. November 2015 12:00

Altrea wrote:Möglich, aber dann wird nach Absenden des Formulars der Quelltext von submit.php ausgegeben


Genau. Nämlich leere Seite. PHP ist dann nur HTML Kommentar. Da wette ich ein halbes Jahresgehalt drauf, denn es sind so viele Fehler drin, die auch explizit per die() ausgegeben werden müßten, dass wahrscheinlich überhaupt kein PHP aktiv ist.

Da submit.php auch im "korrekten" Fall nichts ausgibt, wäre das nichts ungewöhnliches.
Nobbie
 
Posts: 8775
Joined: 09. March 2008 13:04

Re: Daten werden nicht in die Datenbank übergeben

Postby Altrea » 15. November 2015 12:10

Ich wäre mit dem Verwetten von soviel Geld vorsichtig. Es ist nämlich tatsächlich Browserabhängig, wie der Aufruf ausgeführt wird.

Ich habe mal den Test gemacht:
IE Edge: Download
IE 11: Download
Firefox 42: leere Seite
Chrome 46.0.2490.86: Quelltext
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 8294
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 10 Pro x64

Re: Daten werden nicht in die Datenbank übergeben

Postby Nobbie » 15. November 2015 13:11

Altrea wrote:Ich habe mal den Test gemacht:
IE Edge: Download
IE 11: Download
Firefox 42: leere Seite
Chrome 46.0.2490.86: Quelltext


Dann mache mal den Gegentest - versuche es mal zu schaffen, dass keine einzige Fehlermeldung kommt, die hier explizit mit "die()" ausgegeben werden... (und in submit.php fehlt vollkommen der connect, das gibt in jedem Fall eine fette Fehlermeldung). Es gib keine andere Erklärung, als der falsche Aufruf im Browser. (Oder wir sehen hier nicht den richtigen Quellcode)

P.S.: Außerdem ist ein halbes JahresGEHALT bei mir Null, ich habe kein Gehalt...
P.P.S.: Edge gibt es erst mit Windows 10.
Nobbie
 
Posts: 8775
Joined: 09. March 2008 13:04

Re: Daten werden nicht in die Datenbank übergeben

Postby Altrea » 15. November 2015 13:38

Nobbie wrote:Es gib keine andere Erklärung, als der falsche Aufruf im Browser. (Oder wir sehen hier nicht den richtigen Quellcode)

Ich sage ja nicht, dass deine Erklärung falsch ist. Im Gegenteil ist es sogar sehr wahrscheinlich dass du recht hast.
Doch es gibt andere Erklärungen:
- display_errors Off führt ebenso zu einer weißen Seite trotz korrektem Aufruf
- fehlende oder falsche Informationen des Thread Erstellers (kommt hier schließlich immer wieder vor)

Nobbie wrote:P.S.: Außerdem ist ein halbes JahresGEHALT bei mir Null, ich habe kein Gehalt...

Dann sieht mir das für eine Wette aus, die keinen Verlust nach sich ziehen kann :D
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 8294
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 10 Pro x64

Re: Daten werden nicht in die Datenbank übergeben

Postby Nobbie » 15. November 2015 14:11

Altrea wrote:- display_errors Off führt ebenso zu einer weißen Seite trotz korrektem Aufruf


Der Fehler in submit.php ist unvermeidbar und ist kein PHP Fehler, der vom Error Logging und display_errors gesteuert wird. Da steht ein die() und das ist eine explizite Ausgabe und anschließende Beendigung des Programms. Diese Meldung muss in jedem Fall angezeigt werden, wenn submit.php ausgeführt wird. Diese Ausgabe wäre nur noch durch Output Buffering zu cachen, aber das sehe ich hier nicht.

Altrea wrote:Dann sieht mir das für eine Wette aus, die keinen Verlust nach sich ziehen kann :D


Ja, sieht so aus.

Ich bin dennoch sicher, dass die index.html im falschen Modus geöffnet wurde. Aber es scheint außer uns beiden keinen mehr zu interessieren...
Last edited by Nobbie on 15. November 2015 14:15, edited 2 times in total.
Nobbie
 
Posts: 8775
Joined: 09. March 2008 13:04

Next

Return to MariaDB - MySQL

Who is online

Users browsing this forum: No registered users and 1 guest