Witajcie.
Mam problem. Otóż robie stronkę o książkach ( coś jak
http://wattpad.com ). Przy dodawaniu nowej książki (która zapisuje się w tabeli w DB wraz z informacją o okładce (obazek dodany przy dodawaniu książki)). Utknąłem na skrypcie, który ma odczytywać adres obrazka z tabeli, usuwał obrazek, dodawał nowy do katalogu i zapisywał jego adres w tabeli.
O to co mam:
<?php
$book_ID = $_GET['book_ID'];
$target_dir = "C:/xampp/htdocs/itellya/covers/";
require_once "connect.php";
$polaczenie = new mysqli($host, $db_user, $db_password, $db_name);
if ($polaczenie->connect_errno!=0)
{
echo "Error: ".$polaczenie->connect_errno; }
else
{
mysqli_query($polaczenie, "SET CHARSET utf8");
mysqli_query($polaczenie, "SET NAMES 'utf8' COLLATE 'utf8_polish_ci'");
mysqli_select_db($polaczenie, $db_name);
$myb =" SELECT book_ID, cover FROM books WHERE book_ID='".$book_ID."' ";
$result = $polaczenie->query($myb);
$dir = 'covers';
$imagesExtensions = array('jpg', 'jpeg', 'gif', 'png'); $files = scandir($dir);
if($result->num_rows >0){
while($row = $result->fetch_assoc()){
$path = $row["cover"];
//$fp = fopen($target_dir, "w+");
//$unlink ($target_dir.$arr['basename']);
}
}
}
$target_fileNEW = $target_dir . basename($_FILES["coverNEW"]["name"]); $uploadOk = 1;
echo "Plik o tej nazwie już istnieje."; $uploadOk = 0;
}
if ($_FILES["coverNEW"]["size"] > 9000000) {
echo "Cover jest za duża."; $uploadOk = 0;
}
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
echo "Tylko obrazki w rozszerzeniu JPG, PNG i GIF"; $uploadOk = 0;
}
if ($uploadOk == 0) {
echo "Nie udało się załadować pliku.";
}
else {
require_once "connect.php";
$polaczenieN = new mysqli($host, $db_user, $db_password, $db_name);
if ($polaczenieN->connect_errno!=0)
{
echo "Error: ".$polaczenieN->connect_errno; }
else
{
mysqli_query($polaczenieN, "SET CHARSET utf8");
mysqli_query($polaczenieN, "SET NAMES 'utf8' COLLATE 'utf8_polish_ci'");
mysqli_select_db($polaczenieN, $db_name);
$dodajC =" UPDATE books SET cover='".$target_file."' WHERE book_ID='".$book_ID."'";
mysqli_query($polaczenieN, $dodajC);
}
header('Location: mybook.php'); }
}
?>
I nie działa. Walczę z tym już kilka dni. Pomóżcie proszę!
poprawiłem trochę kod. Teraz dodawanie i podmianka działa, ale usuwanie powoduje błąd krytyczny error:500
<?php
$book_ID = $_GET['book_ID'];
$target_dir = "C:/xampp/htdocs/itellya/covers/";
require_once "connect.php";
$polaczenie = new mysqli($host, $db_user, $db_password, $db_name);
if ($polaczenie->connect_errno!=0)
{
echo "Error: ".$polaczenie->connect_errno; }
else
{
mysqli_query($polaczenie, "SET CHARSET utf8");
mysqli_query($polaczenie, "SET NAMES 'utf8' COLLATE 'utf8_polish_ci'");
mysqli_select_db($polaczenie, $db_name);
$myb =" SELECT book_ID, cover FROM books WHERE book_ID='".$book_ID."' ";
$result = $polaczenie->query($myb);
$dir = 'covers';
$imagesExtensions = array('jpg', 'jpeg', 'gif', 'png'); $files = scandir($dir);
if($result->num_rows >0){
while($row = $result->fetch_assoc()){
$path = $row["cover"];
$fp = fopen($target_dir, "w+"); $unlink ($target_dir.$arr['basename']);
}
}
}
$target_file = $target_dir . basename($_FILES["coverNEW"]["name"]); $uploadOk = 1;
// Check if file already exists
echo "Plik o tej nazwie już istnieje."; $uploadOk = 0;
}
// Check file size
if ($_FILES["coverNEW"]["size"] > 9000000) {
echo "Cover jest za duża."; $uploadOk = 0;
}
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
echo "Tylko obrazki w rozszerzeniu JPG, PNG i GIF"; $uploadOk = 0;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
echo "Nie udało się załadować pliku."; // if everything is ok, try to upload file
}
else {
require_once "connect.php";
$polaczenieN = new mysqli($host, $db_user, $db_password, $db_name);
if ($polaczenieN->connect_errno!=0)
{
echo "Error: ".$polaczenieN->connect_errno; }
else
{
mysqli_query($polaczenieN, "SET CHARSET utf8");
mysqli_query($polaczenieN, "SET NAMES 'utf8' COLLATE 'utf8_polish_ci'");
mysqli_select_db($polaczenieN, $db_name);
$dodajC =" UPDATE books SET cover='".$target_file."' WHERE book_ID='".$book_ID."'";
mysqli_query($polaczenieN, $dodajC);
}
header('Location: mybook.php'); }
}
?>