Egyedi autók - KTRNinjas/Car-Rental GitHub Wiki

Az egyedi autók az autókölcsönzőben elérhető konkrét kocsik.

Adatbázis szerkezet

A Cars Tábla mezői

  • id
  • Rendszám: Varchar mező, ahol a kocsi rendszáma szerepel
  • Alvázszám: Varchar mező, ahol a kocsi alvázszáma szerepel szerepel
  • hajtaslanc_id: unsigned int mező, Hajtáslánc táblában található hajtáslánc id-ja
  • valtotipus_id: unsigned int mező, a Váltótípus táblában található váltótípus id-ja
  • Evjarat: int mező, az autó gyártási éve
  • teljesitmeny: int mező: Az autó teljesítménye kW-ban
  • Biztositasi_dij: int mező, az autó éves biztosítási díja
  • km: int mező, a kilométeróra állás
  • Forgalmi_megujitasanak_ideje: date mező, mikor jár le az autó forgalmija
  • Autotipus_id: unsigned int mező, az Autótípus táblában található autótípus id-ja
  • Kivezetve: nullable date mező: Az autó eladásának/szanálásának dátuma

Kapcsolatok

  • A Cars tábla az adatbázisban a Hajtáslánc táblával egy a többhöz kapcsolatban áll, azaz egy autóhoz egy hajtáslánc tartozhat, de több autó tartozhat egy hajtáslánchoz. Az idegen kulcs a cars táblán található hajtaslanc_id.
  • A Cars tábla az adatbázisban a Váltótípus táblával egy a többhöz kapcsolatban áll, azaz egy autóhoz egy váltótípus tartozhat, de több autó tartozhat egy váltótípushoz.Az idegen kulcs a cars táblán található valtotipus_id.
  • A Cars tábla az adatbázisban az Autótipus táblával egy a többhöz kapcsolatban áll, azaz egy autóhoz egy Autótípus tartozhat, de több autó tartozhat egy Autótípushoztípushoz.Az idegen kulcs a cars táblán található Autotipus_id.
  • Az Autotipus tábla update-elése és deletelése esetén a car tábla automatikusan updatelődik/deletelődik, cascade kapcsolatban vannak.
  • A Cars tábla az adatbázisban a car-image táblával egy a többhöz kapcsolatban áll, azaz egy autóhoz több kép is tartozhat. Az idegen kulcs a car-image tábla car_id mezőjében található. A cars tábla update-elése vagy deletelése esetén a car-image tábla automatikusan updatelődik, vagy törlődik.

Egyedi autó funkciók

Egyedi autó felvétele/módosítása/törlése

Az Autofelvetel honlapon lehetséges egyedi autókat felvenni, módosítani, vagy törölni

Az Autofelvetel honlap

Az autófelvétel honlap listázza ki az adatbázisban található, még nem kivezetett autókat. Az autó összes tulajdonsága szerkeszthető input mezőkben van letárolva, amihez egyedi form tartozik. A mentés gomb megnyomására a tulajdonságok módosíthatóak, a törlés gomb megnyomásával az autó törlhető az adatbázisból.
kép
A hajtáslánc, a váltótípus, és az autótípus legördülő listák segítségével tölthető ki. Mindegyik legördülő tartalmaz egy Válasszon típust opciót, amire az autó nem frissíthető.

Az autótípus legördülő tartalmaz egy "Új autótípus felvétele" opciót, amire kattintva az Autotipusfelvevo honlapra jutunk el.

Az Autofelvetel honlap alján található mezők kitöltésével és az "Új autó felvétele" gomb megnyomásával új autó vehető fel az adatbázisba.

A módosítás, törlés, és felvétel gombok megnyomása esetén a honlap végigmegy egy Post-Redirect-Get cikluson, ezért rögtön frissül, a módosult adatok azonnal láthatóakká válnak, amennyiben a módosítás sikeres volt.

Elfogadási tesztek

  • AutofelvevoCest.test_insert_testcar():
  1. Ellenőrzi, hogy a Filldb-ben felvett tesztautók összes adata látható e a honlapon
  2. Beilleszt egy új tesztautót az adatbázisba tesztparaméterekkel és ellenőrzi, hogy frissítés után a tesztautó paraméterei megjelennek e a honlapon
  3. Egyenként megváltoztatja a tesztautó összes mezőjét, és ellenőrzi, hogy a módosítások frissítés után láthatóak e a honlapon
  4. Törli a tesztautót, és ellenőrzi, hogy az utolsó autó a honalpon ne a tesztautó legyen

A Car Controller

  • A car_controller initCarController() metódusa hívja meg a car_service getAllCarsService() metódusát, ami az összes az adatbázisban találtható még nem kivezetett autóval tér vissza. Ezeket az autókat tartalmazó cars tömböt befejti egy globális változóba
  • A makeHeader() metódus kinyomtatja a grid fölötti fejlécet kép
  • A printCarsInDB() metódus kiszedi a $GLOBALS-ból a cars tömböt, és a tömb minden egyes eleméhez printel egy formot.

    A legelső sorhoz meghívja a makeHeader metódust, hogy a header ugyanakkora legyen, mint az alatta elhelyezkedő inputok

    A formon belül nyomtat egy rejtett mezőt, ami az autó id-jét fogja tartalmazni CarID névvel, illetve az összes input mező value-jának beállítja a cars tömbben található értéket. A metódus hívja meg az ImageService getPiscturesOfACarService($carID) metódusát is, ami alapján beállítja az első oszlop background képének az autóhoz feltöltött képet

    A hajtáslánc legördülő kinyomtatásához meghívja a getAllHajtaslancController(hajtaslancInput) metódust a cars tömbben szereplő hajtásláncértékkel

    A váltótípus legördülő kinyomtatásához meghívja a getAllValtotipusController(valtotipusInput) metódust a cars tömbben szereplő váltótípusértékkel

    Az autótípus legördülő kinyomtatásához meghívja a getAllAutotipusController($marka) metódust a cars tömbben szereplő autótípus márkával

    Végül printel egy "Mentés" (name=updateCar) és "Törlés"(name=deleteCar) nevű gombot, amivel a nyomtatott form beküldhető. Mivel jelenleg az inputok egy 12-es gridben helyezkednek el, ezért meghívja a printSomeGridItems() metódust is, ami azért szükséges, hogy a két gomb ne elcsúszva jelenjen meg az Autofelvetel honlapon.
  • A printSomeGrids() metódus nyomtat 9 grid-itemet a mentés és törlés gombok után, hogy azok az inputmezők alatt helyezkedjenek el
  • A getAllHajtaslancController($hajtaslancInput = null) metódus meghívja a car_service getAllHajtaslancService() metódusát, ami egy az összes hajtáslánc értéket tartalmazó tömbbel tér vissza

    Ezután a metódus végigiterál a hajtaslanc tömbön, és option tageket printel.

    amennyiben az aktuális érték megegyezik a hajtaslancInput paraméter értékével, akkor az option tagbe egy selected attribútumot rak.
  • A getAllValtotipusController($valtotipusInput = null) metódus meghívja a car_service getAllValtotipusService() metódusát, ami egy az összes váltótípus értéket tartalmazó tömbbel tér vissza

    Ezután a metódus végigiterál a valtotipus tömbön, és option tageket printel.

    amennyiben az aktuális érték megegyezik a valtotipusInput paraméter értékével, akkor az option tagbe egy selected attribútumot rak.
  • A getAllAutoTipusController($marka = null) metódus meghívja a car_service getAllAutotipusService() metódusát, ami egy az összes autótípus értéket tartalmazó tömbbel tér vissza

    Ezután a metódus végigiterál az autotipus tömbön, és option tageket printel.

    amennyiben az aktuális érték megegyezik a marka paraméter értékével, akkor az option tagbe egy selected attribútumot rak.
  • Az insertCarController() figyeli, hogy az Autofelvetel honlapon megnyomták e az insertCar (Új autó felvétele) gombot.

    Ha igen, akkor kiszedi a $_POST tömbből az összes beküldött inputot, majd meghívja a car_resvice insertCarService($rendszam, $alvazszam, $hajtaslanc_id, $valtotipus_id, $evjarat, $teljesitmeny, $biztositasi_dij, $kilometer, $forgalmi, $autotipus_id); metódusát. Végül a header() segítségével ráfrissít a honlapra, ezáltal a $_POST paraméterek eltűnnek, és az oldalon megjelenik a letárolt autó.
  • Az updateCarController() figyeli, hogy megnyomták e az updateCar gombot. Ha igen, akkor kiszedi a $_POST-ból az összes input value-ját és a CarID rejtett input value-ját, majd ezekkel meghívja a car_service updateCarService($rendszam, $alvazszam, $autotipus_id, $hajtaslanc_id, $valtotipus_id, $evjarat, $teljesitmeny, $biztositas, $kilometer, $forgalmi, $kivezetve, $carID) metódusát. Végül egy header('Location: /Autofelvetel', true, 303); utasítással frissíti a honlapot, ezáltal eltűntetve a $_POST paramétereket és megmutatja a frissített értékeket az Autofelvetel honlapon.
  • A deleteCarController() figyeli, hogy a honlapon megnyomták a deleteCar(Törlés) gombot. Ha igen, akkor elkéri a $_POST-tól a carID paraméter, majd meghívja a car_service deleteCarService($carID), és az ImageService deleteAllImagesOfACarService($carID); metódusát. Végül a header() metódussal ráfrissít az oldalra, ahonnét az autó törlődött

A Car Service

  • A getAllCarsService() metódus meghívja a car_dao getAllCars() metódusát, és az eredménnyel tér vissza.
  • A getAllHajtaslancService() metódus meghívja a car_dao getAllHajtaslancDAO() metódusát, és az eredménnyel tér vissza.
  • A getAllValtotipusService() metódus meghívja a car_dao getAllValtotipusDAO() metódusát, és az eredménnyel tér vissza.
  • A getAllAutoTipusService() metódus meghívja a car_dao getAllAutoTipusDAO() metódusát, és az eredménnyel tér vissza.
  • Az insertCarService($rendszam,$alvazszam,$hajtaslanc_id,$valtotipus_id,$evjarat,$teljesitmeny,$biztositasi_dij,$kilometer,$forgalmi,$autotipus_id) metódus meghívja a car_dao insertCarDAO($rendszam,$alvazszam,$hajtaslanc_id,$valtotipus_id,$evjarat,$teljesitmeny,$biztositasi_dij,$kilometer,$forgalmi,$autotipus_id) metódusát, és az eredménnyel tér vissza.
  • Az updateCarService($rendszam, $alvazszam,$autotipus_id,$hajtaslanc_id,$valtotipus_id,$evjarat,$teljesitmeny,$biztositas,$kilometer,$forgalmi,$kivezetve,$carID) metódus meghívja a car_dao updateCarDAO($rendszam, $alvazszam,$autotipus_id,$hajtaslanc_id,$valtotipus_id,$evjarat,$teljesitmeny,$biztositas,$kilometer,$forgalmi,$kivezetve,$carID) metódusát.
  • A deleteCarService($carID) meghívja a car_dao deleteCarDAO($carID) metódusát

A Car DAO

  • A getAllCars() metódus indít egy lekérdezést a cars adatbázis felé, és lekéri az összes olyan autó id-jét, rendszámát, alvázszámát, évjáratát, teljesítményét, biztosítási díját, forgalmi lejárati idejét és kivezetve dátumát, amiknek a kivezetve dátuma a mai napnál kisebb. Emellett belső lekérdezésekkel lekérdezi az autó autótípusának márkáját és típusát, az autó hajtásláncának nevét és váltótípusának nevét.

    A lekérdezett autótípusok márkáját és típusát eztán összekonkatenálja, és a többi lekért adattal együtt befejti egy cars nevű számmal indexelt tömbbe, amivel visszatér
  • A getAllAutoTipusDAO() lekérdezi az összes adatbázisban szereplő autótípust, az eredményeket befejti egy autotipusok nevű számmal indexelt tömbbe, amivel visszatér.
  • A getAllAutoTipusDAO() lekérdezi az összes adatbázisban szereplő autótípust, az eredményeket befejti egy autotipusok nevű számmal indexelt tömbbe, amivel visszatér.
  • A getAllHajtaslancDAO() lekérdezi az összes adatbázisban szereplő hajtásláncot, az eredményeket befejti egy hajtaslancok nevű számmal indexelt tömbbe, amivel visszatér.
  • A getAllValtotipusDAO() lekérdezi az összes adatbázisban szereplő váltótípust, az eredményeket befejti egy véatotipusok nevű számmal indexelt tömbbe, amivel visszatér.
  • Az insertCarDAO($rendszam, $alvazszam, $hajtaslanc_id, $valtotipus_id, $evjarat, $teljesitmeny, $biztositasi_dij, $kilometer, $forgalmi, $autotipus_id) beilleszti a paraméterlista alapján az autót az adatbázisba, és a $ok nevű booleannal visszatér, ami megmondja, hogy az adatbázisművelet sikeres volt e
  • Az updateCarDAO($rendszam, $alvazszam, $autotipus_id, $hajtaslanc_id, $valtotipus_id, $evjarat, $teljesitmeny, $biztositas, $kilometer, $forgalmi, $kivezetve, $carID) a paraméterlista alapján módosítja a $carId id-jű autót az adatbázisban, és a $ok nevű booleannal visszatér, ami megmondja, hogy az adatbázisművelet sikeres volt e
  • A deleteCarDAO($carID) a $carID id alapján törli az adott autót az adatbázisból, és a $ok nevű booleannal visszatér, ami megmondja, hogy az adatbázisművelet sikeres volt e

    Adatbázis integrációs tesztek
  • test_if_getAllCars_gets_All_Cars(): Ellenőrzi, hogy a car_dao getAllCars() metódusát meghívva a car dao a bent szereplő paraméterekkel rendelkező kocsikkal tér e vissza
  • test_if_getAllAutotipusDao_gets_All_Autotipus(): Ellenőrzi, hogy a getAllAutotipusDao() metódust meghívva a filldb által betöltött összes autótípus márkájával és fajtájával tér e vissza
  • test_if_getAllHajtaslancDao_gets_All_Hajtaslanc(): Ellenőrzi, hogy a getAllHajtaslancDao() metódust meghívva a benzines, elektromos és diesel opciókkal, és id-kkel tér e vissza
  • test_if_getAllValtotipusDao_gets_All_Valtotipus(): Ellenőrzi, hogy a getAllValtotipusDao() metódust meghívva a kézi és automata opciókkal, és id-kkel tér e vissza
  • test_if_insertCarDao_inserts_testcar(): Ellenőrzi, hogy egy test-001 rendszámmal, és egyéb paraméterekkel ellátott autót az insertCarDAO($rendszam, $alvazszam, $hajtaslanc_id, $valtotipus_id, $evjarat, $teljesitmeny, $biztositasi_dij, $kilometer, $forgalmi, $autotipus_id) beilleszt e az adatbázisba, azaz az insertCarDAO vissztérési értéke true e.
  • test_if_updateCarDao_updates_testcar(): Egy, a rendszámra történő lekérdezéssel megkeresi, majd ellenőrzi, hogy a test_if_insertCarDao_inserts_testcar() teszt során beiktatott kocsi mezőit módosítva, és a Kivezetve dátumot nullon hagyva az updateCarDAO($rendszam, $alvazszam, $autotipus_id, $hajtaslanc_id, $valtotipus_id, $evjarat, $teljesitmeny, $biztositas, $kilometer, $forgalmi, $kivezetve, $carID) true-val tér e vissza, majd a kivezetve értékét valódi dátumra állítva is true-val tér e vissza
  • test_if_deleteCarDao_deletes_testcar(): Egy, a rendszámra történő lekérdezéssel megkeresi, majd ellenőrzi, hogy a test_if_updateCarDao_updates_testcar() teszt során módosított autó carID-jével meghívva a deleteCarDAO($carID) metódus true-val tér vissza

Képfelöltés

Az Autofelvetel honlapon lehetséges már felvett egyedi autókhoz képet társítani. A kép a felvett autók gridjének első oszlopában fog megjelenni. Ha még nincs kép társítva egy autóhoz az első oszlopban automatikusan a noimage.jpg kép jelenítődik meg. kép

Az Autofelvetel honlap

Az autófelvétel honlapon a Képfelöltés gombra kattintva lehetséges több képet feltölteni egy autóhoz.

  • A honlapon található az autoPictureToUpload id-jú input mező, melynek file típusa van, az accept attribútuma jpg jepg és png típusú fileokat fogad el defaultból.
  • Az input mező multiple attribútuma multiple-re van állítva, így egyszerre több képet is fel lehet tölteni.
  • Az input mező rejtett(hidden), hogy a Képfeltöltés gomb mellett ne jelenjen meg a feltöltendő file neve.
  • Az input mezőt a képfeltöltés gomb aktiválja, mely egy button. A button-höz tartozó onclick eseményhez társítva a button automatikusan megnyomja a hidden autoPictureToUpload input mező gombját, ily módon elegánsabb gombkivitelt értünk el
  • Ahhoz, hogy a kép feltöltése meginduljon az autoPictureToUpload input mező adatait be kell submitolni, ehhez egy autoPictureUpload id-jú input mezőt vettünk fel.
  • Az autóPictureUpload mező típusa submit és rejtett mező.
  • A submitoláshoz az autoPictureToUpload file típusú input mező onchange eseményére, azaz, ha kép került feltöltésre, egy javascript kód a hidden autoPictureUpload submit gombra kattint. kép



Elfogadási tesztek

  • AutofelvevoCest.test_insert_testcar():
  1. A teszt csinál egy üres test.txt nevű filet, majd attach-eli az autoPictureToUpload id-jű inputmezőhöz, és megnyomja az autoPictureUpload submit gombot, majd ellenőrzi, hogy megjelenik e az "Only JPG, JPEG & PNG files are allowed." hibüzenet
  2. A teszt átnevezi az üres test.txt nevű filet test.jpg-re, majd attach-eli az autoPictureToUpload id-jű inputmezőhöz, és megnyomja az autoPictureUpload submit gombot, majd ellenőrzi, hogy megjelenik e az "Not an Image" hibüzenet
  3. A teszt csinál egy 50x50-es test.jpg nevű valid képfájlt, majd attach-eli az autoPictureToUpload id-jű inputmezőhöz, és megnyomja az autoPictureUpload submit gombot. Ellenőrzi, hogy ne jelenjen meg semmilyen hibüzenet.
  4. A teszt újra attach-eli az autoPictureToUpload id-jű inputmezőhöz a test.jpg nevű file-t, és megnyomja az autoPictureUpload submit gombot, majd ellenőrzi, hogy megjelenik e a "File already exists" hibaüzenet.
  5. A teszt törli a test.jpg nevű file-t

A Car Controller

  • A car_controller kepFeltoltesController() metódusa figyeli, hogy megnyomták e az autoPictureUpload submit gombot. Ha igen, kiszedi a $_POST-ból a car_id-t, meghívja az imageService kepfeltoltesService($carID) metódusát. Ha nem történt hiba a képfelöltés közben, azaz ha a globális láthatóságú imageErrors[] tömb üres, akkor egy post redirect get paranccal ráfrissít az oldalra, így a kép egyből meg is jelenik. Ha történt hiba, akkor a megfelelő hibaüzenet jelenik meg a honlapon. kép

Az Image Service

  • A kepFeltoltesService($carID) metódus meghívja a FileMuveletek/Kepfeltoltes.php kepFeltoltes metódusátm, ami a sikeresen feltöltött képek neveinek tömbjével tér vissza. Ezután végigiterál a feltöltött képek tömbjén, és minden névre meghívja az ImageDAO kepFeltoltesDAO($carID,$imagePaths[$i]) metódusát.
  • A getPicturesOfACarService($carID) meghívja az ImageDAO getPicturesOfACarDAO($carID); metódusát. Ha nincs kép társítva az adott carID-hez, azaz ha a visszatérő tömb üres, akkor a FileMuveletek/Kepfeltoltes.php noImageReturn() metódusát, ami a noimage.jpg nevével tér vissza, és ezt belerakja a visszatérési tömb nulladik helyére.
  • A deleteAllImagesOfACarService($carID) metódus először meghívja az ImageDAO getPicturesOfACarDAO($carID) metódusát, ami az adott carID-hez tartozó képek neveinek tömbjével tér vissza, majd a carID-vel és a képek neveinek tömbjével meghívja a FileMuveletek/Kepfeltoltes.php deleteAllImagesOfACar($paths, $carID) metódusát

    Integrációs tesztek
  • test_if_getPicturesOfACarService_works():
  1. A teszt beilleszt egy tesztautót a car táblába kép nélkül
  2. Ellenőrzi, hogy a getPicturesOfACarService($carID) metódus a noimage.jpg filenévvel tér vissza
  3. Beilleszti a test1.jpg, test2.jpg és test3.jpg fileneveket a car_image táblába car_id-nek a tesztautó id-jével megadva
  4. Ellenőrzi, hogy a getPicturesOfACarService($carID) metódus a test1.jpg,test2.jpg és test3.jpg filenévvel tér vissza
  • test_if_deleteAllImagesOfACarService_works()
  1. A teszt beilleszt egy tesztautót a car táblába
  2. Beilleszti a test1.jpg, test2.jpg és test3.jpg fileneveket a car_image táblába car_id-nek a tesztautó id-jével megadva
  3. Létrehoz 3db képet a Fileok/Autok mappában test1.jpg,test2.jpg és test3.jpg névvel
  4. Ellenőrzi, hogy a fileok léteznek a mappában
  5. Meghívja a deleteAllImagesOfACarService($carID) metódust a tesztautó id-jével.
  6. Ellenőrzi, hogy a test1.jpg,test2.jpg és test3.jpg fileok nem léteznek tovább a Fileok/Autok mappában

Az image-DAO

  • A kepFeltoltesDAO($carID, $path) beilleszti a car-images táblába a beérkező carID-t és a kép nevét, és visszatér a query eredményével
  • A getPicturesOfACarDAO($carID) metódus lekérdezi az összes ehhez a carID-hez tartozó kép nevét, azokat befejti egy tömbbe, és azzal tér vissza tesztek

    Integrációs tesztek
  • test_if_image_path_inserted(): Meghívja a kepFeltoltesDAO($carID,$path) metódust 1. carID-vel és tesztpath paht-szal. Ha az eredmény true, akkor a teszt átmegy. Végül törli a tesztpath nevű adatázis recordot.

A FileMuveletek/Kepfeltoltes.php:

Míg a DAO művelet csak egy képnév stringet tartalmaz, addig a szerverre ténylegesen a Kepfeltoltes.php file tárolja le az adott képte/képeket

  • A getTargetDir() metódus tér vissza a képek helyével, jelen esetben a Fileok/Autok hellyel
  • A noImageReturn() metódus tér vissza azon kép nevével, amit a view akkor fog használni, ha egy autóhoz egy kép sem tartozik
  • A kepFeltoltes($carID) metódus kezeli a képfeltöltési műveleteket. Először kiszedi a $_FILES globális asszociatív tömbből az autotipusToUpload változóhoz tartozó feltöltött képek számát, és egy for ciklussal végigiterál az összesen. Az iteráció közben kiszedi a fileok ideiglenes (temporary) nevét, végrehajtja rajtuk az ellenőrzéseket, és ha az adott kép minden ellenőrzésen átmegy, azaz a tmpFilePath értéke nem üres string akkor a tmp helyről átmove-olja a képet a getTargetDir() által megadott mappába. Ha a move-olás sikeres volt, akkor befejti a feltöltött kép nevét egy tömbbe és az iteráció után a tömbbel visszatér
  • A check_if_image_file_is_actual_image_or_fake_image($tmpFilePath, $i, $carID) ellenőrzi a getImageSize() metódussal, hogy a feltöltött képnek van fizikai kiterjedése. Ha van, akkor a tmpFilepPath-szal tér vissza, ha nincs üres stringgel tér vissza, és az imageErrors tömbbe berakja a "File is not an Image" hibaüzenetet
  • A check_if_file_already_exists($tmpFilePath, $target_dir, $i, $carID) ellenőrzi, hogy szerepel e ilyen néven kép már a targetDir-ben. Az éppen feltöltendő kép nevét kiszedi a $_FILES asszociatív tömbből a name paramétert és hozzákonkatenálja a targetDir elérési útjához, aztán meghívja rá a file_exists($targetfile) metódust. Ha a metódus true-val tér vissza, akkor a file már létezik a targetDir-ben, azaz az imageErrors tömbbe beírja a "File already exists" hibaüzenetet és a tmpFilePathban üres stringgel tér vissza. Ha false-al tér vissza, akkor a file még nem létezik és a tmpFilePath stringjével tér vissza
  • A check_file_size($tmpFilePath, $i, $carID) metódus ellenőrzi, hogy a file mérete megfelelő legyen úgy, hogy kiszedi a $_FILES asszociatív tömb size elemét. Ha a file túl nagy, akkor a tmpFile-pathban üres stringgel tér vissza és az imageErrors tömbbe belefejti a "File is too large" hibaüzenetet, ha a file kisebb, mint a megengedett méret, akkor a tmpFilePath értékével tér vissza
  • A check_if_image_is_jpeg_or_png($tmpFilePath, $target_dir, $i, $carID) metódus kiszedi a kép nevéből a kiterjesztését a pathinfo() metódussal, kisbetűssé alakítja strtolower metódussal, és betárolja egy $imageFileType változóba. Ha az imageFileType változó nem jpg jpeg vagy png, akkor a tmpFilePath üres stringgel tér vissza és az imageErrors tömbbe befejti az "Only JPG, JPEG & PNG files are allowed." hibaüzenetet. Ha jpg, jpeg vagy png kiterjesztésű a file a tmpFilePath-szal tér vissza.
  • A deleteAllImagesOfACar($paths, $carID) metódus végigiterál a $paths tömbön, ami a képneveket tartalmazza, és unlink-eli, azaz törli az összes a targetDirben található ilyen képnevet. Ha az unlink() metódus false-al tér vissza akkor az imageErrors tömbbe belefejti a "Kép nem törölhető" hibaüzenetet.
⚠️ **GitHub.com Fallback** ⚠️