Avatar
terezagabrielova:

Ahoj, chodim na stredni, obor grafika a webdesign. Dostali jsme se spoluzaky zadanou tymovou praci na vyvoreni webovych stranek. A me dali za ukol nastylovat galerii a k tomu soubor PHP. Akorat vubec nevim co s tim mam delat. A tak jsem chtela poprosit o radu jak zacit. Prikladam PHP soubor co mi poslali.

<?php
/**
* ÚVOD
* Typ uživatele: 1-admin, 2-učitel, 3-rodič, neexistuje $_SESSION["typ"]-nepřihlášený uživatel
*/
require_once("Da­tabaze.php");

class Galerie extends Databaze {

private $pripony = array("jpg", "jpeg", "Jpg", "Jpeg", "JPG", "JPEG");
protected $mysqli;

public function __construct()
{
parent::__con­struct();
}

public function vypisNacteniS­criptu()
{
if(!empty($_GET["s­tranka"]))
{
switch($_GET["st­ranka"])
{
case "noveAlbum":
echo '<script src="upload/jquery-1.4.min.js" type="text/ja­vascript"></scrip­t>
<script src="upload/jqu­ery.flash.min­.js" type="text/ja­vascript"></scrip­t>
<script src="upload/pro­gressBar.js" type="text/ja­vascript"></scrip­t>

<script src="upload/agile-uploader-3.0.js" type="text/ja­vascript"></scrip­t>
<link type="text/css" rel="stylesheet" href="upload/agile-uploader.css" />';
break;
case "alba":
echo '<link href="lightbox.css" rel="stylesheet" />
<script src="js/jquery-1.11.0.min.js"></scrip­t>
<script src="js/lightbox­.js"></script>';
break;
case "upravitAlbum":
echo '<script src="upload/jquery-1.4.min.js" type="text/ja­vascript"></scrip­t>
<script>
$(document).re­ady(function() {
$(\'#oznacitVse\')­.click(functi­on(event) { //on click
if(this.checked) { // check select status
$(\'.chboxObr\')­.each(function() { //loop through each checkbox
this.checked = true; //select all checkboxes with class "checkbox1"
});
}else{
$(\'.chboxObr\')­.each(function() { //loop through each checkbox
this.checked = false; //deselect all checkboxes with class "checkbox1"
});
}
});

});
</script>';
}
}
}

// Má na starost výpis obsahu stránky (volá dané metody na výpis dané části). Dále rozděluje přístup podle typu uživatele. Nepřihlášený uživatel nemá přístup ke galerii vůbec.
public function vypisObsah()
{
if(!$_GET && isset($_SESSI­ON["typ"])) //Zobrazí rozcestník pokud: uživatel je přihlášený a neexistuje proměnná $_GET
{
echo $this->vypisUvod();
return;
}
elseif(isset($_SES­SION["typ"]) && isset($_GET["s­tranka"])) // Přihlášený uživatel vybere kam chce jít pomocí proměnné "stranka".
{
switch($_GET["st­ranka"]) // Pokud zadá stránku,která není v nabídce -> vyhodí chybu.
{
case "alba": // Vypíše seznam alb
$this->vypisAlba();
break;
case "noveAlbum": // Vypíše přidání nového alba
if($_SESSION["typ"] != 3)
{
$this->vypisNoveAlbum();
}
else echo "Nemáš přístup k této stránce!";
break;
case "upravitAlbum": // Vypíše upravu alb
if($_SESSION["typ"] != 3)
{
$this->vypisAlba();
}
else echo "Nemáš přístup k této stránce!";
break;
default:
echo "Zadaná stránka neexistuje!";
}
}
else echo "Musiš se přihlásit pro vstup na tuto stránku!";
}

private function vypisUvod()
{
switch($_SESSI­ON["typ"])
{
case 1:
return '<p>Prohlédnout alba</p>
<p>Nové album</p>
<p>Upravit alba</p>';
break;
case 2:
return '<p>Prohlédnout alba</p>
<p>Nové album</p>
<p>Upravit alba</p>';
break;
case 3:
return '<p>Prohlédnout alba</p>';
break;
}
}

private function vypisNoveAlbum()
{
$albumNazev = "";
$albumPopisek = "";
$albumId = "";
if(!empty($_POS­T["pridejObr-albumNazev"]) && !empty($_POST["pri­dejObr-albumPopisek"]))
{
$albumNazev = $_POST["pridejObr-albumNazev"];
$albumPopisek = $_POST["pridejObr-albumPopisek"];
}
if(!empty($_POS­T["pridejObr-albumId"]))
{
$albumId = $_POST["pridejObr-albumId"];
}
echo '<form id="multipleDemo" enctype="multi­part/form-data">
<input type="hidden" name="album_id" value="'.$albu­mId.'">
<label for="album_na­zev">Název alba</label>

<input type="text" name="album_nazev" value="'.$album­Nazev.'">

<label for="album_po­pisek">Popisek pro album</label>

<textarea rows="4" cols="30" name="album_po­pisek" maxlength="255">'­.$albumPopisek­.'</textarea>

<div id="multiple"></div>
</form>

Submit

<script type="text/ja­vascript">
$("#multiple")­.agileUploader({
submitRedirect: "?stranka=alba",
formId: "multipleDemo",
flashVars: {
firebug: true,
form_action: "./obsluha/ga­lerieZapis.php",
file_limit: 20,
max_post_size: (20000 * 1024),
file_post_var: "Filedata",
max_height: 1500,
max_width: 1500
}
});
</script>';
}

public function zpracujObrazek()
{
$sql = 'SELECT AUTO_INCREMENT FROM INFORMATION_SCHE­MA.TABLES WHERE TABLE_SCHEMA = "'.SQL_DATABASE.'" AND TABLE_NAME = "obrazek"';
$posledni_obr = $this->vyberJedenVys­ledek($sql);
$posledni_obr = ($posledni_obr == -1) ? 1 : $posledni_obr;

if(empty($_POS­T["album_id"]))
{
$sql = 'SELECT AUTO_INCREMENT FROM INFORMATION_SCHE­MA.TABLES WHERE TABLE_SCHEMA = "'.SQL_DATABASE.'" AND TABLE_NAME = "album"';
$posledni_album = $this->vyberJedenVys­ledek($sql);
$posledni_album = ($posledni_album == -1) ? 1 : $posledni_album;
}
else
{
$posledni_album = $_POST["album_id"];
}
foreach($_FILES["Fi­ledata"]["error"] as $key => $error)
{
if($error == UPLOAD_ERR_OK)
{
$jmenoDocasne = $_FILES["File­data"]["tmp_na­me"][$key];
$jmeno = basename($_FI­LES["Filedata"]["na­me"][$key]);
$pripona = substr(strrchr(­$jmeno,'.'), 1);

if(in_array($pri­pona, $this->pripony))
{
move_uploaded_fi­le($jmenoDocas­ne, "./../images/tem­p/".$posledni_o­br.".".$pripo­na);
$this->udelejMiniatu­ru($posledni_o­br.".".$pripo­na, $posledni_obr­.".".$pripona);

rename("./../i­mages/temp/".$pos­ledni_obr."."­.$pripona, "./../images/o­brazky/".$pos­ledni_obr."."­.$pripona);

$sql = 'INSERT INTO obrazek(id_album, pripona) VALUES('.$pos­ledni_album.', "'.$pripona.'")';
$this->prerus($sql);
$posledni_obr++;
}
}
}
$sql = "SELECT id_album FROM album WHERE id_album = ".$posledni_album;
if($this->vyberPoleObjek­tu($sql))
{
return;
}
$album_nazev = "";
$album_popisek = "";
$vytvoreno = date("Y-m-d H:i:s", time());
if($_POST)
{
if(!empty($_POS­T["album_nazev"]))
{
$album_nazev = $_POST["album_na­zev"];
}
if(!empty($_POS­T["album_popi­sek"]))
{
$album_popisek = $_POST["album_po­pisek"];
}
}
$sql = 'INSERT INTO album(nazev, vytvoreno, popisek) VALUES("'.$al­bum_nazev.'", "'.$vytvoreno.'", "'.$album_popi­sek.'")';
$this->prerus($sql);
}

private function udelejMiniatu­ru($obr, $nazev)
{
$strana = 250;
$imgt = "";
$imgcreatefrom = "";
$nova_width = "";
$nova_width = "";
$obrDetail = getimagesize("­./../images/tem­p/".$obr);
$width = $obrDetail[0];
$height = $obrDetail[1];
if($width >= $height)
{
$nova_width = $strana;
$nova_height = intval($nova_width * $height / $width);
}
else
{
$nova_height = $strana;
$nova_width = intval($nova_height * $width / $height);
}
if($obrDetail[2] == IMAGETYPE_JPEG)
{
$imgcreatefrom = "imagecreatefrom­jpeg";
$imgt = "ImageJPEG";
}
if($imgt)
{
$staryObr = $imgcreatefrom("­./../images/tem­p/$obr");
$novyObr = imagecreatetru­ecolor($nova_wid­th, $nova_height);
imagecopyresi­zed($novyObr, $staryObr, 0, 0, 0, 0, $nova_width, $nova_height, $width, $height);
$imgt($novyObr, "./../images/mi­niatury/" . "mini_".$nazev);
//imageantiali­as($novyObr, true);
}
}

private function vypisAlba()
{
if(!empty($_GET["i­d"]) && $_GET["stranka"] === "upravitAlbum")
{
$this->vypisUpravitAl­bum();
return;
}
elseif(!empty($_GET["i­d"]) && $_GET["stranka"] == "alba")
{
$this->vypisAlbum();
return;
}
$pocetNaStranku = 2;
$strankovani = (empty($_GET["s­trankovani"])) ? 0 : ($_GET["stran­kovani"] - 1)*$pocetNaStranku;
$sql = "SELECT COUNT(id_album) AS pocet FROM album";
$pocet = $this->vyberJedenVys­ledek($sql);
$sql = "SELECT id_album, nazev, popisek FROM album ORDER BY vytvoreno DESC LIMIT $strankovani,$po­cetNaStranku";
if($poleAlb = $this->vyberPoleObjek­tu($sql))
{
foreach ($poleAlb as $album) {
echo '<a href="?stranka='­.$_GET["stran­ka"].'&id=' . $album->id_album . '">';
echo '<div class="vypis_al­b">';
echo "<h2>$album->nazev</h2>
";
echo "<p>$album->popisek</p>
";
$sql = "SELECT id_obrazku, id_album, pripona FROM obrazek WHERE id_album=$album->id_album LIMIT 6";
if ($poleObrazku = $this->vyberPoleObjek­tu($sql)) {
foreach ($poleObrazku as $obrazek) {
echo '<img src="./images/mi­niatury/mini_' . $obrazek->id_obrazku . '.' . $obrazek->pripona . '" width=80 />';
}
}
echo '</div>';
echo '';
}
for ($i = 1; $i <= ceil($pocet / $pocetNaStranku); $i++) {
echo "$i ";
}
}
else echo "Neplatný příkaz!";
}

private function vypisAlbum()
{
$sql = "SELECT nazev, vytvoreno, popisek FROM album WHERE id_album = ".$_GET['id'];
if($poleAlb = $this->vyberPoleObjek­tu($sql))
{
foreach($poleAlb as $album)
{
echo "<div id=\"albumHla­vicka\">";
echo "<h2>$album->nazev</h2>";
echo "<p>$album->popisek</p>";
echo "</div>";
}
}
else
{
echo "Album neexistuje!";
return;
}

$sql = "SELECT id_obrazku, pripona FROM obrazek WHERE id_album = ".$_GET['id'];
if($poleObrazku = $this->vyberPoleObjek­tu($sql))
{
$pocet = 0;
echo '<div id="obrazky">';
echo '<table>';
foreach ($poleObrazku as $obrazek)
{
$pocet++;
if($pocet == 1)
{
echo '<tr>';
}

echo '<td>
<img src="./images/mi­niatury/mini_'­.$obrazek->id_obrazku.'­.'.$obrazek->pripona.'" width="150" />
</td>';

if($pocet == 4)
{
echo '</tr>';
$pocet = 0;
}
}
echo '</table>';
echo '</div>';
}
else
{
echo "Nenalezeny žádné obrázky!";
}
}

private function vypisUpravitAlbum()
{
if(!empty($_POS­T["album_tl_u­pravit"]))
{
$this->upravParametry­Alba();
}
if(!empty($_POS­T["album_tl_o­brVymazat"]))
{
$this->vymazObrazky();
}
if(!empty($_POS­T["vymazAlb-tl"]))
{
$this->vymazAlbum();
return;
}
$sql = "SELECT id_album, nazev, popisek FROM album WHERE id_album = " . $_GET["id"];
if($album = $this->vyberPoleObjek­tu($sql))
{
echo '<form method="post">';
echo '<label for="album_na­zev">Název alba</label>
';
echo '<input type="text" name="album_nazev" value="' . $album[0]->nazev . '" />
';
echo '<label for="album_po­pisek">Popisek pro album</label>
';
echo '<textarea rows="4" cols="30" name="album_po­pisek" maxlength="255">'­.$album[0]->popisek.'</tex­tarea>
';
echo '<input type="submit" name="album_tl_u­pravit" value="Upravit" />';
echo '</form>';
echo '<h2>Vyber obrázky, které chceš odstranit</h2>';

$sql = "SELECT id_obrazku, pripona FROM obrazek WHERE id_album = ".$_GET['id'];
if($poleObrazku = $this->vyberPoleObjek­tu($sql))
{
$pocet = 0;
echo '<div id="obrazky">';
echo '<form method="POST">';
echo '<input type="checkbox" id="oznacitVse"/> Označit vše
';
echo '<table>';
foreach ($poleObrazku as $obrazek)
{
$pocet++;
if($pocet == 1)
{
echo '<tr>';
}
echo '<td>
<img src="./images/mi­niatury/mini_'­.$obrazek->id_obrazku.'­.'.$obrazek->pripona.'" width="150" />
<input type="checkbox" class="chboxObr" name="obrVymaz[]" value="'.$obrazek->id_obrazku.'"/>
</td>';
if($pocet == 4)
{
echo '</tr>';
$pocet = 0;
}
}
echo '</table>';
echo '<input type="submit" name="album_tl_o­brVymazat" value="Vymazat obrázky" />';
echo '</form>';
echo '</div>';
}
else
{
echo "Nenalezeny žádné obrázky!";
}

echo '<form method="post" action="?stran­ka=noveAlbum">
<input type="hidden" name="pridejObr-albumNazev" value="'.$album[0]->nazev.'" />
<input type="hidden" name="pridejObr-albumPopisek" value="'.$album[0]->popisek.'" />
<input type="hidden" name="pridejObr-albumId" value="'.$album[0]->id_album.'" />
<input type="submit" name="pridejObr-tl" value="Přidat obrázky do alba" />
</form>';

echo '<form method="post">
<input type="hidden" name="vymazAlb-albumId" value="'.$album[0]->id_album.'" />
<input type="submit" name="vymazAlb-tl" value="Vymazat album" />
</form>';
}
else
{
echo "Album neexistuje!";
return;
}
}

private function vymazObrazky()
{
if(empty($_POS­T["obrVymaz"]))
{
echo "Nevybral jsi žádné obrázky!";
return;
}
foreach($_POS­T["obrVymaz"] as $obrazek)
{
$sql = "SELECT pripona FROM obrazek WHERE id_obrazku = ". $obrazek;
$obr = $this->vyberPoleObjek­tu($sql);
$sql = "DELETE FROM obrazek WHERE id_obrazku = ".$obrazek;
if($this->prerus($sql))
{
unlink("./ima­ges/obrazky/"­.$obrazek."."­.$obr[0]->pripona);
unlink("./ima­ges/miniatury/mi­ni_".$obrazek­.".".$obr[0]->pripona);
}
else
{
echo "Nepodařilo se vymazat obrázek: " . $obrazek;
}
}
echo "Obrázky byly úspěšně vymazány.";
}

private function upravParametry­Alba()
{
$kontrolaNazev = 1;
$kontrolaPopisek = 1;
if(!$this->kontrolaRegVy­razu($_POST["al­bum_nazev"], '/^[\pL\pN -]{2,}$/u'))
{
echo "Název alba je špatně zadán!";
$kontrolaNazev = 0;
}
if(!$this->kontrolaRegVy­razu($_POST["al­bum_popisek"], '/^[\pL\pN\s.:-_!?,%]{2,}$/u'))
{
echo "Popisek alba byl špatně zadán!";
$kontrolaPopisek = 0;
}
if(!($kontrolaNazev * $kontrolaPopisek))
return FALSE;

$sql = "UPDATE album SET nazev = \"" . $_POST["album_na­zev"] . "\", popisek = \"" . $_POST["album_po­pisek"] . "\" WHERE id_album = ". $_GET["id"];
if(!$this->prerus($sql))
{
echo "Změnu se nepodařilo uložit!";
return FALSE;
}
echo "Změna byla úspěšně provedena.";
return TRUE;
}

private function vymazAlbum()
{
$sql = "SELECT id_obrazku, pripona FROM obrazek WHERE id_album = ".$_POST["vymazAlb-albumId"];
$obrazky = $this->vyberPoleObjek­tu($sql);
$sql = "DELETE FROM obrazek WHERE id_album =".$_POST["vymazAlb-albumId"];
$vymazObr = $this->prerus($sql);
$sql = "DELETE FROM album WHERE id_album = ".$_POST["vymazAlb-albumId"];
$vymazAlbum = $this->prerus($sql);
if
{
foreach($obrazky as $obrazek)
{
unlink("./ima­ges/obrazky/"­.$obrazek->id_obrazku."­.".$obrazek->pripona);
unlink("./ima­ges/miniatury/mi­ni_".$obrazek->id_obrazku."­.".$obrazek->pripona);
}
echo "Vymazání bylo úspěšné!";
}
}

private function kontrolaRegVy­razu($prom, $regularVyraz)
{
if(preg_match($re­gularVyraz, $prom)) return TRUE;
else return FALSE;
}
}

Editováno 16.5.2015 15:19
 
Odpovědět 16.5.2015 15:18
Avatar
Odpovídá na terezagabrielova
Josef Kuchař (Pepa489):

Použij prosím tlačítko zdrojový kód, tento kód je jedna z největších špagetti prasáren co jsem vyděl, ale každý nějak začínal ;)

Nahoru Odpovědět 16.5.2015 15:38
2x piš, jednou debuguj
Avatar
terezagabrielova:
<?php
/**
 * ÚVOD
 * Typ uživatele: 1-admin, 2-učitel, 3-rodič, neexistuje $_SESSION["typ"]-nepřihlášený uživatel
 */
require_once("Databaze.php");

class Galerie extends Databaze {

    private $pripony = array("jpg", "jpeg", "Jpg", "Jpeg", "JPG", "JPEG");
    protected $mysqli;

    public function __construct()
    {
        parent::__construct();
    }

    public function vypisNacteniScriptu()
    {
        if(!empty($_GET["stranka"]))
        {
            switch($_GET["stranka"])
            {
                case "noveAlbum":
                    echo '<script src="upload/jquery-1.4.min.js" type="text/javascript"></script>
                        <script src="upload/jquery.flash.min.js" type="text/javascript"></script>
                        <script src="upload/progressBar.js" type="text/javascript"></script>

                        <script src="upload/agile-uploader-3.0.js" type="text/javascript"></script>
                        <link type="text/css" rel="stylesheet" href="upload/agile-uploader.css" />';
                    break;
                case "alba":
                    echo '<link href="lightbox.css" rel="stylesheet" />
                        <script src="js/jquery-1.11.0.min.js"></script>
                        <script src="js/lightbox.js"></script>';
                    break;
                case "upravitAlbum":
                    echo '<script src="upload/jquery-1.4.min.js" type="text/javascript"></script>
                        <script>
                        $(document).ready(function() {
                            $(\'#oznacitVse\').click(function(event) {  //on click
                                if(this.checked) { // check select status
                                    $(\'.chboxObr\').each(function() { //loop through each checkbox
                                        this.checked = true;  //select all checkboxes with class "checkbox1"
                                    });
                                }else{
                                    $(\'.chboxObr\').each(function() { //loop through each checkbox
                                        this.checked = false; //deselect all checkboxes with class "checkbox1"
                                    });
                                }
                                    });

                                });
                        </script>';
            }
        }
    }

    // Má na starost výpis obsahu stránky (volá dané metody na výpis dané části). Dále rozděluje přístup podle typu uživatele. Nepřihlášený uživatel nemá přístup ke galerii vůbec.
    public function vypisObsah()
    {
        if(!$_GET && isset($_SESSION["typ"])) //Zobrazí rozcestník pokud: uživatel je přihlášený a neexistuje proměnná $_GET
        {
            echo $this->vypisUvod();
            return;
        }
        elseif(isset($_SESSION["typ"]) && isset($_GET["stranka"])) // Přihlášený uživatel vybere kam chce jít pomocí proměnné "stranka".
        {
            switch($_GET["stranka"]) // Pokud zadá stránku,která není v nabídce -> vyhodí chybu.
            {
                case "alba": // Vypíše seznam alb
                    $this->vypisAlba();
                    break;
                case "noveAlbum": // Vypíše přidání nového alba
                    if($_SESSION["typ"] != 3)
                    {
                        $this->vypisNoveAlbum();
                    }
                    else echo "Nemáš přístup k této stránce!";
                    break;
                case "upravitAlbum": // Vypíše upravu alb
                    if($_SESSION["typ"] != 3)
                    {
                        $this->vypisAlba();
                    }
                    else echo "Nemáš přístup k této stránce!";
                    break;
                default:
                    echo "Zadaná stránka neexistuje!";
            }
        }
        else echo "Musiš se přihlásit pro vstup na tuto stránku!";
    }

    private function vypisUvod()
    {
        switch($_SESSION["typ"])
        {
            case 1:
                return '<p><a href="galerie.php?stranka=alba">Prohlédnout alba</a></p>
                        <p><a href="galerie.php?stranka=noveAlbum">Nové album</a></p>
                        <p><a href="galerie.php?stranka=upravitAlbum">Upravit alba</a></p>';
                break;
            case 2:
                return '<p><a href="galerie.php?stranka=alba">Prohlédnout alba</a></p>
                        <p><a href="galerie.php?stranka=noveAlbum">Nové album</a></p>
                        <p><a href="galerie.php?stranka=upravitAlbum">Upravit alba</a></p>';
                break;
            case 3:
                return '<p><a href="galerie.php?stranka=alba">Prohlédnout alba</a></p>';
            break;
        }
    }

    private function vypisNoveAlbum()
    {
        $albumNazev = "";
        $albumPopisek = "";
        $albumId = "";
        if(!empty($_POST["pridejObr-albumNazev"]) && !empty($_POST["pridejObr-albumPopisek"]))
        {
            $albumNazev = $_POST["pridejObr-albumNazev"];
            $albumPopisek = $_POST["pridejObr-albumPopisek"];
        }
        if(!empty($_POST["pridejObr-albumId"]))
        {
            $albumId = $_POST["pridejObr-albumId"];
        }
            echo '<form id="multipleDemo" enctype="multipart/form-data">
                <input type="hidden" name="album_id" value="'.$albumId.'">
                <label for="album_nazev">Název alba</label><br />
                <input type="text" name="album_nazev" value="'.$albumNazev.'"><br />
                <label for="album_popisek">Popisek pro album</label><br />
                <textarea rows="4" cols="30" name="album_popisek" maxlength="255">'.$albumPopisek.'</textarea><br />
                <div id="multiple"></div>
                </form>

                <a href="#" onClick="document.getElementById(\'agileUploaderSWF\').submit();">Submit</a>

                <script type="text/javascript">
                    $("#multiple").agileUploader({
                        submitRedirect: "?stranka=alba",
                        formId: "multipleDemo",
                    flashVars: {
                        firebug: true,
                            form_action: "./obsluha/galerieZapis.php",
                        file_limit: 20,
                        max_post_size: (20000 * 1024),
                        file_post_var: "Filedata",
                        max_height: 1500,
                        max_width: 1500
                        }
                    });
                </script>';
    }

    public function zpracujObrazek()
    {
        $sql = 'SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = "'.SQL_DATABASE.'" AND TABLE_NAME = "obrazek"';
        $posledni_obr = $this->vyberJedenVysledek($sql);
        $posledni_obr = ($posledni_obr == -1) ? 1 : $posledni_obr;

        if(empty($_POST["album_id"]))
        {
            $sql = 'SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = "'.SQL_DATABASE.'" AND TABLE_NAME = "album"';
            $posledni_album = $this->vyberJedenVysledek($sql);
            $posledni_album = ($posledni_album == -1) ? 1 : $posledni_album;
        }
        else
        {
            $posledni_album = $_POST["album_id"];
        }
        foreach($_FILES["Filedata"]["error"] as $key => $error)
        {
            if($error == UPLOAD_ERR_OK)
            {
                $jmenoDocasne = $_FILES["Filedata"]["tmp_name"][$key];
                $jmeno = basename($_FILES["Filedata"]["name"][$key]);
                $pripona = substr(strrchr($jmeno,'.'), 1);

                if(in_array($pripona, $this->pripony))
                {
                    move_uploaded_file($jmenoDocasne, "./../images/temp/".$posledni_obr.".".$pripona);
                    $this->udelejMiniaturu($posledni_obr.".".$pripona, $posledni_obr.".".$pripona);

                    rename("./../images/temp/".$posledni_obr.".".$pripona, "./../images/obrazky/".$posledni_obr.".".$pripona);

                    $sql = 'INSERT INTO obrazek(id_album, pripona) VALUES('.$posledni_album.', "'.$pripona.'")';
                    $this->prerus($sql);
                    $posledni_obr++;
                }
            }
        }
        $sql = "SELECT id_album FROM album WHERE id_album = ".$posledni_album;
        if($this->vyberPoleObjektu($sql))
        {
            return;
        }
        $album_nazev = "";
        $album_popisek = "";
        $vytvoreno = date("Y-m-d H:i:s", time());
        if($_POST)
        {
            if(!empty($_POST["album_nazev"]))
            {
                $album_nazev = $_POST["album_nazev"];
            }
            if(!empty($_POST["album_popisek"]))
            {
                $album_popisek = $_POST["album_popisek"];
            }
        }
        $sql = 'INSERT INTO album(nazev, vytvoreno, popisek) VALUES("'.$album_nazev.'", "'.$vytvoreno.'", "'.$album_popisek.'")';
        $this->prerus($sql);
    }

    private function udelejMiniaturu($obr, $nazev)
    {
        $strana = 250;
        $imgt = "";
        $imgcreatefrom = "";
        $nova_width = "";
        $nova_width = "";
        $obrDetail = getimagesize("./../images/temp/".$obr);
        $width = $obrDetail[0];
        $height = $obrDetail[1];
        if($width >= $height)
        {
            $nova_width = $strana;
            $nova_height = intval($nova_width * $height / $width);
        }
        else
        {
            $nova_height = $strana;
            $nova_width = intval($nova_height * $width / $height);
        }
        if($obrDetail[2] == IMAGETYPE_JPEG)
        {
            $imgcreatefrom = "imagecreatefromjpeg";
            $imgt = "ImageJPEG";
        }
        if($imgt)
        {
            $staryObr = $imgcreatefrom("./../images/temp/$obr");
            $novyObr = imagecreatetruecolor($nova_width, $nova_height);
            imagecopyresized($novyObr, $staryObr, 0, 0, 0, 0, $nova_width, $nova_height, $width, $height);
            $imgt($novyObr, "./../images/miniatury/" . "mini_".$nazev);
            //imageantialias($novyObr, true);
        }
    }

    private function vypisAlba()
    {
        if(!empty($_GET["id"]) && $_GET["stranka"] === "upravitAlbum")
        {
            $this->vypisUpravitAlbum();
            return;
        }
        elseif(!empty($_GET["id"]) && $_GET["stranka"] == "alba")
        {
            $this->vypisAlbum();
            return;
        }
        $pocetNaStranku = 2;
        $strankovani = (empty($_GET["strankovani"])) ? 0 : ($_GET["strankovani"] - 1)*$pocetNaStranku;
        $sql = "SELECT COUNT(id_album) AS pocet FROM album";
        $pocet = $this->vyberJedenVysledek($sql);
        $sql = "SELECT id_album, nazev, popisek FROM album ORDER BY vytvoreno DESC LIMIT $strankovani,$pocetNaStranku";
        if($poleAlb = $this->vyberPoleObjektu($sql))
        {
            foreach ($poleAlb as $album) {
                echo '<a href="?stranka='.$_GET["stranka"].'&id=' . $album->id_album . '">';
                echo '<div class="vypis_alb">';
                echo "<h2>$album->nazev</h2><br />";
                echo "<p>$album->popisek</p><br />";
                $sql = "SELECT id_obrazku, id_album, pripona FROM obrazek WHERE id_album=$album->id_album LIMIT 6";
                if ($poleObrazku = $this->vyberPoleObjektu($sql)) {
                    foreach ($poleObrazku as $obrazek) {
                        echo '<img src="./images/miniatury/mini_' . $obrazek->id_obrazku . '.' . $obrazek->pripona . '" width=80 />';
                    }
                }
                echo '</div>';
                echo '</a>';
            }
            for ($i = 1; $i <= ceil($pocet / $pocetNaStranku); $i++) {
                echo "<a href='?stranka=".$_GET['stranka']."&strankovani=$i'>$i</a>  ";
            }
        }
        else echo "Neplatný příkaz!";
    }

    private function vypisAlbum()
    {
        $sql = "SELECT nazev, vytvoreno, popisek FROM album WHERE id_album = ".$_GET['id'];
        if($poleAlb = $this->vyberPoleObjektu($sql))
        {
            foreach($poleAlb as $album)
            {
                echo "<div id=\"albumHlavicka\">";
                echo "<h2>$album->nazev</h2>";
                echo "<p>$album->popisek</p>";
                echo "</div>";
            }
        }
        else
        {
            echo "Album neexistuje!";
            return;
        }

        $sql = "SELECT id_obrazku, pripona FROM obrazek WHERE id_album = ".$_GET['id'];
        if($poleObrazku = $this->vyberPoleObjektu($sql))
        {
            $pocet = 0;
            echo '<div id="obrazky">';
            echo '<table>';
            foreach ($poleObrazku as $obrazek)
            {
                $pocet++;
                if($pocet == 1)
                {
                    echo '<tr>';
                }

                echo '<td><a href="./images/obrazky/'.$obrazek->id_obrazku.'.'.$obrazek->pripona.'" data-lightbox="example-set" data-title="">
                          <img src="./images/miniatury/mini_'.$obrazek->id_obrazku.'.'.$obrazek->pripona.'" width="150" />
                      </td>';

                if($pocet == 4)
                {
                    echo '</tr>';
                    $pocet = 0;
                }
            }
            echo '</table>';
            echo '</div>';
        }
        else
        {
            echo "Nenalezeny žádné obrázky!";
        }
    }

    private function vypisUpravitAlbum()
    {
        if(!empty($_POST["album_tl_upravit"]))
        {
            $this->upravParametryAlba();
        }
        if(!empty($_POST["album_tl_obrVymazat"]))
        {
            $this->vymazObrazky();
        }
        if(!empty($_POST["vymazAlb-tl"]))
        {
            $this->vymazAlbum();
            return;
        }
        $sql = "SELECT id_album, nazev, popisek FROM album WHERE id_album = " . $_GET["id"];
        if($album = $this->vyberPoleObjektu($sql))
        {
            echo '<form method="post">';
            echo '<label for="album_nazev">Název alba</label><br />';
            echo '<input type="text" name="album_nazev" value="' . $album[0]->nazev . '" /><br />';
            echo '<label for="album_popisek">Popisek pro album</label><br />';
            echo '<textarea rows="4" cols="30" name="album_popisek" maxlength="255">'.$album[0]->popisek.'</textarea><br />';
            echo '<input type="submit" name="album_tl_upravit" value="Upravit" />';
            echo '</form>';
            echo '<h2>Vyber obrázky, které chceš odstranit</h2>';

            $sql = "SELECT id_obrazku, pripona FROM obrazek WHERE id_album = ".$_GET['id'];
            if($poleObrazku = $this->vyberPoleObjektu($sql))
            {
                $pocet = 0;
                echo '<div id="obrazky">';
                echo '<form method="POST">';
                echo '<input type="checkbox" id="oznacitVse"/> Označit vše <br />';
                echo '<table>';
                foreach ($poleObrazku as $obrazek)
                {
                    $pocet++;
                    if($pocet == 1)
                    {
                        echo '<tr>';
                    }
                    echo '<td>
                          <img src="./images/miniatury/mini_'.$obrazek->id_obrazku.'.'.$obrazek->pripona.'" width="150" />
                          <input type="checkbox" class="chboxObr" name="obrVymaz[]" value="'.$obrazek->id_obrazku.'"/>
                          </td>';
                    if($pocet == 4)
                    {
                        echo '</tr>';
                        $pocet = 0;
                    }
                }
                echo '</table>';
                echo '<input type="submit" name="album_tl_obrVymazat" value="Vymazat obrázky" />';
                echo '</form>';
                echo '</div>';
            }
            else
            {
                echo "Nenalezeny žádné obrázky!";
            }

            echo '<form method="post" action="?stranka=noveAlbum">
                  <input type="hidden" name="pridejObr-albumNazev" value="'.$album[0]->nazev.'" />
                  <input type="hidden" name="pridejObr-albumPopisek" value="'.$album[0]->popisek.'" />
                  <input type="hidden" name="pridejObr-albumId" value="'.$album[0]->id_album.'" />
                  <input type="submit" name="pridejObr-tl" value="Přidat obrázky do alba" />
                  </form>';

            echo '<form method="post">
                  <input type="hidden" name="vymazAlb-albumId" value="'.$album[0]->id_album.'" />
                  <input type="submit" name="vymazAlb-tl" value="Vymazat album" />
                  </form>';
        }
        else
        {
            echo "Album neexistuje!";
            return;
        }
    }

    private function vymazObrazky()
    {
        if(empty($_POST["obrVymaz"]))
        {
            echo "Nevybral jsi žádné obrázky!";
            return;
        }
        foreach($_POST["obrVymaz"] as $obrazek)
        {
            $sql = "SELECT pripona FROM obrazek WHERE id_obrazku = ". $obrazek;
            $obr = $this->vyberPoleObjektu($sql);
            $sql = "DELETE FROM obrazek WHERE id_obrazku = ".$obrazek;
            if($this->prerus($sql))
            {
                unlink("./images/obrazky/".$obrazek.".".$obr[0]->pripona);
                unlink("./images/miniatury/mini_".$obrazek.".".$obr[0]->pripona);
            }
            else
            {
                echo "Nepodařilo se vymazat obrázek: " . $obrazek;
            }
        }
        echo "Obrázky byly úspěšně vymazány.";
    }

    private function upravParametryAlba()
    {
        $kontrolaNazev = 1;
        $kontrolaPopisek = 1;
        if(!$this->kontrolaRegVyrazu($_POST["album_nazev"], '/^[\pL\pN -]{2,}$/u'))
        {
            echo "Název alba je špatně zadán!";
            $kontrolaNazev = 0;
        }
        if(!$this->kontrolaRegVyrazu($_POST["album_popisek"], '/^[\pL\pN\s.:-_!?,%]{2,}$/u'))
        {
            echo "Popisek alba byl špatně zadán!";
            $kontrolaPopisek = 0;
        }
        if(!($kontrolaNazev * $kontrolaPopisek))
            return FALSE;

        $sql = "UPDATE album SET nazev = \"" . $_POST["album_nazev"] . "\", popisek = \"" . $_POST["album_popisek"] . "\" WHERE id_album = ". $_GET["id"];
        if(!$this->prerus($sql))
        {
            echo "Změnu se nepodařilo uložit!";
            return FALSE;
        }
        echo "Změna byla úspěšně provedena.";
        return TRUE;
    }

    private function vymazAlbum()
    {
        $sql = "SELECT id_obrazku, pripona FROM obrazek WHERE id_album = ".$_POST["vymazAlb-albumId"];
        $obrazky = $this->vyberPoleObjektu($sql);
        $sql = "DELETE FROM obrazek WHERE id_album =".$_POST["vymazAlb-albumId"];
        $vymazObr = $this->prerus($sql);
        $sql = "DELETE FROM album WHERE id_album = ".$_POST["vymazAlb-albumId"];
        $vymazAlbum = $this->prerus($sql);
        if(($vymazAlbum * $vymazObr))
        {
            foreach($obrazky as $obrazek)
            {
                unlink("./images/obrazky/".$obrazek->id_obrazku.".".$obrazek->pripona);
                unlink("./images/miniatury/mini_".$obrazek->id_obrazku.".".$obrazek->pripona);
            }
            echo "Vymazání bylo úspěšné!";
        }
    }

    private function kontrolaRegVyrazu($prom, $regularVyraz)
    {
        if(preg_match($regularVyraz, $prom)) return TRUE;
        else return FALSE;
    }
}
 
Nahoru Odpovědět 16.5.2015 15:55
Avatar
Odpovídá na terezagabrielova
Martin Konečný (pavelco1998):

Dotaz - kdo ti poslal tenhle script (nebo spíš, kdo ho psal)?

Editováno 16.5.2015 15:55
 
Nahoru Odpovědět 16.5.2015 15:55
Avatar
Odpovídá na terezagabrielova
Martin Konečný (pavelco1998):

Máš smůlu v tom, že spolužák vůbec neví, že je důležitá i přehlednost (kromě toho, že to má špatně napsaný).
Tvým cílem tedy je té stránce udělat nějakou grafiku nebo co?

 
Nahoru Odpovědět 16.5.2015 16:22
Avatar
Odpovídá na Martin Konečný (pavelco1998)
terezagabrielova:

Zde http://prntscr.com/75uvrx mam nastylovat galerii, ke ktere mi dal ten soubor PHP

 
Nahoru Odpovědět 16.5.2015 16:36
Avatar
hanpari
Redaktor
Avatar
Odpovídá na Martin Konečný (pavelco1998)
hanpari:

At ti da html vystup, ten nastyluj pomoci css do externiho souboru a pak mu dej vysledek, at ho zapracuje. Tj. doplni pripadne atributy class a id do zdrojoveho kodu. Mel by mu stacit seznam zmen v html kodu, zbytek bude v externim css

 
Nahoru Odpovědět 16.5.2015 16:43
Avatar
hanpari
Redaktor
Avatar
Odpovídá na terezagabrielova
hanpari:

Pardon chyba v reakci precti si prispevek nad timto

 
Nahoru Odpovědět 16.5.2015 16:45
Avatar
Odpovídá na terezagabrielova
Martin Konečný (pavelco1998):

V tom případě jak píše hanpari, ať ti pošle jen HTML a ne celej PHP script. Ty to pomocí CSS nastyluješ a pošleš zpět. On si pak udělá v tom kódu změny, které budou třeba.
Je škoda, že vás na škole neučí něco jako šablonovací systémy.

 
Nahoru Odpovědět  +1 16.5.2015 16:53
Avatar
Dan Balarin
Člen
Avatar
Dan Balarin:

offtopic
pavelco1998: já bych byl rád i za tohle, jsem ve třetím ročníku IT, a ohledně webu jsme se naučili základní html tagy a v PHP nás tam učej tak hnusný a nepřehledný prásárny, okolo OOP to ani neletělo, maximálně tak funkce a ještě k tomu bez parametru, na co taky když se dá použít globální proměnná...

Nahoru Odpovědět  +1 20.5.2015 21:48
"The number one benefit of information technology is that it empowers people to do what they want to do. It lets...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 11 zpráv z 11.