h
hi I want to insert data in database included photo. also after inserting in database, image should come to a web page. it get inserted in database but I get the following warning when I want to see it in a web page:
Warning: Undefined array key "photoPath" in D:\xamppweekend\htdocs\work\deliverc\web7ForServer3\insertItem.php on line 30
Warning: Trying to access array offset on value of type null in D:\xamppweekend\htdocs\work\deliverc\web7ForServer3\insertItem.php on line 30
Warning: Undefined array key "photoPath" in D:\xamppweekend\htdocs\work\deliverc\web7ForServer3\insertItem.php on line 43
Warning: Trying to access array offset on value of type null in D:\xamppweekend\htdocs\work\deliverc\web7ForServer3\insertItem.php on line 43 Insert item <?php require_once "classes/DBAccessModify.php";
$title = "Insert";
$pageHeading = "Insert item";
//get database settings
include "settings/db.php";
// ob_start();
//create database object
$db = new DBAccess($dsn, $username, $password);
//connect to database
$pdo = $db->connect();
$message = "";
$error = false;
//get categories to poulate drop down list
$sql = "select categoryId, categoryName from category";
$stmt = $pdo->prepare($sql);
//execute SQL query
$categoryRows = $db->executeSQL($stmt);
//insert item when the button is clicked
if(isset($_POST["submit"]))
{
//check a item name was supplied
if(!empty($_POST["itemName"]))
{
$targetDirectory = "images/";
// //get the filename
$photoPath = basename($_FILES["photoPath"]["name"]);
// //set the entire path
$targetFile = $targetDirectory . $photoPath;
// //only allow image files
$imageFileType = pathinfo($targetFile,PATHINFO_EXTENSION);
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" )
{
$message = "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
$error = true;
}
//check the file size php.ini has an upload_max_filesize, default set to 2M
// if the file size exceeds the limit the error code is 1
if ($_FILES["photoPath"]["error"] == 1)
{
$message = "Sorry, your file is too large. Max of 2M is allowed.";
$error = true;
}
if($error == false)
{
if (move_uploaded_file($_FILES["photoPath"]["tmp_name"], $targetFile))
{
$message = "The file $photoPath has been uploaded.";
}
else
{
$message = "Sorry, there was an error uploading your file. Error Code:" . $_FILES["photoPath"]["error"];
$photoPath = "";
}
}
else
{
$photoPath = "";
}
//set up query to execute
//insert items
$sql = "insert into item(itemName, price, salePrice, categoryId, photo, description) values(:itemName, :price, :salePrice, :categoryId, :photo,
:description)";
$stmt = $pdo->prepare($sql);
$stmt->bindValue(":itemName" , $_POST["itemName"], PDO::PARAM_STR);
$stmt->bindValue(":price" , $_POST["price"], PDO::PARAM_STR);
$stmt->bindValue(":salePrice" , $_POST["salePrice"], PDO::PARAM_STR);
$stmt->bindValue(":categoryId" , $_POST["categoryId"], PDO::PARAM_STR);
$stmt->bindValue(":photo" , $photoPath, PDO::PARAM_STR);
$stmt->bindValue(":description" , $_POST["description"], PDO::PARAM_STR);
//execute SQL query
$id = $db->executeNonQuery($stmt, true);
$message = "The item was added, id: " . $id;
}
}
//start buffer
ob_start();
//display form
// include "templates/modifyItemForm.html.php";
$output = ob_get_clean();
include "templates/layoutModifyItem.html.php"; ?>
CodePudding user response:
I should put image in "image" directory. Thanks for reading
CodePudding user response:
droopsnoot solved the problem Not me! Do not know how to put him instead. Thanks a lotttt
Does your form opening tag contain the appropriate enctype setting? – droopsnoot 15 hours ago