Der folgende ist ein Bericht, den ich versuche, an die Datenbank zu senden. Der PHP-Code funktioniert gut, glaube ich, wie die Zeile erstellt wird. Die Spalte reportdata ist jedoch immer leer. Der Säulentyp ist varchar
. Liegt es daran, dass der Bericht mit # beginnt? Der folgende Aufruf erstellt eine Zeile, aber nichts in der Berichtsdatenspalte. Die Autoinkrement-ID wird angegeben.Wohin ging der Bericht? php to mysql
http://www.someaddress.com/savereport.php?reportdata=#98#1#4#14#3#48#8#88#04/06/2016%2008:05:54%20PM
Wenn ich den Bericht in Basistext ändern, funktioniert es. Was ist los?
http://www.someaddress.com/savereport.php?reportdata=basictext
Hier ist der PHP-Code, der das Zeug hat:
mysqli_set_charset($dbc, 'utf8');
$reportdata = mysqli_real_escape_string($dbc, $_GET['reportdata']);
$query = "INSERT INTO `onwordreports`(`reportdata`) VALUES ('$reportdata')";
$result = mysqli_query($dbc, $query) or trigger_error("Veri yükleme başarısız: " . mysqli_error($dbc));
echo $result;
mysqli_close($dbc);
[Ihr Skript ist für SQL Injection Attacks gefährdet.] (Http://StackOverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) Erfahren Sie mehr über [prepared] (http://en.wikipedia.org/wiki/Prepared_statement) Anweisungen für [MySQLi] (http://php.net/manual/en/mysqli.quickstart.prepared-statements.php). –
Danke für die Warnung .. Es tut mir weh, mein Gehirn versucht, das zu tun, weil ich es nicht wirklich verstehe. Wenn jemand nicht so nett wäre, zu zeigen, wie ich meinen Code wirklich in einen sichereren umwandeln kann, bleibe ich in Gefahr. – Ugur