Ich weiß, es gibt mehrere ähnliche Fragen wie meine. Aber ich habe die meisten von ihnen durchgelesen, aber nur ähnliche Antworten gefunden, die meine Situation nicht lösen:Warnung: Erstellen Standardobjekt aus leeren Wert PHP
Ich erstelle eine PHP-Website mit OOP und möchte einen Datensatz aus der Datenbank bearbeiten. Hier ist der Link zu edit_short.php
:
<td><a href="edit_short.php?id=<?php echo $short->id; ?>">Edit</a></td>
Dieser Rekord-ID in edit_short.php
empfangen wird, wie folgt:
<?php
require_once("short.php");
$id = null;
// $short = new stdClass(); **I was told to use this but it didn't work**
if (isset($_GET['id'])) {
$id=$_GET['id'];
$short = Short::find_by_id($id);
}
if (isset($_POST['edit_short_btn'])) {
$short->title = $_POST['title']; //the error is on this line
$short->short_text = $_POST['short_text'];
}
Hier ist meine der entsprechende Abschnitt meiner Short
Klasse:
public static function find_by_id($id=0) {
global $database;
$result_array = self::find_by_sql("SELECT * FROM short WHERE id=$id LIMIT 1");
return !empty($result_array) ? array_shift($result_array) : false;
}
Einige Antworten auf Stackoverflow und andere Websites wurde mir gesagt, $short
als ein Objekt der stdClass()
zu definieren, aber das tut nicht 't hier anwenden, da $short
Objekt in meinem Fall der Short
Klasse sein muss.
Danke Ihnen für jede Hilfe ..
[Little Bobby] (http://bobby-tables.com/) sagt *** [Ihr Skript ist für SQL Injection Attacks gefährdet.] (Http://stackoverflow.com/questions/60174/how- can-i-prevent-sql-injection-in-php) ***. Sogar [die Zeichenfolge zu entkommen] (http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string) ist nicht sicher! [Glauben Sie es nicht?] (Http://stackoverflow.com/q/38297105/1011527) –
FYI, Ihr Code unterliegt SQL-Injection-Angriffen und wahrscheinlich auch XSS. Verwenden Sie vorbereitete/parametrisierte Abfragen in Ihrem SQL. Verwenden Sie 'htmlspecialchars()' oder ähnliches, wenn Sie Daten in einen HTML-Kontext einfügen. – Brad
setzen Sie einfach ein @ vor dieser Zeile, es ist die Antwort auf jeden Fehler in PHP;) – 1Canuck16