0
Ich wollte eine Bearbeitungsdatei bilden, wo Sie die eine andere Datei zum Hochladen und Ersetzen der vorherigen Datei wählen. Das ist mein Code.PHP - Dateibearbeitungsformular zeigt leer
<?php
require("config.php");
$id = $_GET['id'];
$sql = "SELECT * FROM contracts WHERE id= '$id'";
$result = $con->query($sql);
while ($row = $result->fetch_assoc())
{
?>
<html><head></head>
<body>
<form method="GET" action="" enctype="multipart/form-data">
ID: <?php echo $id; ?><br>
<input type="hidden" name="id" value="<?php echo $id; ?>" />
Upload File:
<input type="file" name="upload" value="<?php echo $row($_FILES['name']) ?>"/><br>
<input type="submit" name="submit" value="Submit"/>
</form>
</body>
</html>
<?php
}
if(isset($_GET['edit']) ){
if ($_FILES['upload']['size'] != 0){
$filename = $con->real_escape_string($_FILES['upload']['name']);
$filedata= $con->real_escape_string(file_get_contents($_FILES['upload']['tmp_name']));
$filetype = $con->real_escape_string($_FILES['upload']['type']);
$filesize = intval($_FILES['upload']['size']);
$query = "UPDATE `contracts` set `filename` = '$filename',`filedata` = '$filedata', `filetype` = '$filetype',`filesize` = '$filesize' WHERE `id` = '$id' " ;
if ($con->query($query) == TRUE) {
echo "<br><br> New record created successfully";
} else {
echo "Error:<br>" . $con->error;
}
} else {
$filename = $con->real_escape_string($_FILES['upload']['name']);
$filetype = $con->real_escape_string($_FILES['upload']['type']);
$filesize = intval($_FILES['upload']['size']);
$query = "UPDATE `contracts` set `filename` = '$filename', `filetype` = '$filetype',`filesize` = '$filesize' WHERE `id` = '$id' " ;
if ($con->query($query) == TRUE) {
echo "<br><br> New record created successfully";
} else {
echo "Error:<br>" . $con->error;
}
}
$con->close();
}
?>
Wenn ich auf die Seite ging, wird nur leer angezeigt. So kann
Kann mir jemand sagen, was habe ich falsch gemacht?
Sie keine Dateien mit einer GET-Methode hochladen. –
** WARNUNG **: Wenn Sie 'mysqli' verwenden, sollten Sie [parametrisierte Abfragen] (http://php.net/manual/en/mysqli.quickstart.prepared-statements.php) und [' bind_param'] (http://php.net/manual/en/mysqli-stmt.bind-param.php), um Benutzerdaten zu Ihrer Abfrage hinzuzufügen. ** Verwenden Sie ** NICHT manuelle Entschlüsselung und String-Interpolation oder Verkettung, um dies zu erreichen, da Sie schwerwiegende [SQL-Injektionsfehler] (http://bobby-tables.com/) erstellen werden. Versehentlich ungenutzte Daten sind ein ernstes Risiko. – tadman
Versuchen Sie, sich von der Gewohnheit zu lösen, Ihren Code mit überflüssigen Dingen wie '== TRUE' zu überladen. Viele Funktionen sind so konzipiert, dass sie Werte zurückgeben, die als "wahr" gewertet werden, sodass der wörtliche Vergleich überflüssig ist. – tadman