Dlaczego nie dodaje mi znaku wodnego?

Odpowiedz Nowy wątek
2018-12-20 18:49

Rejestracja: 3 lata temu

Ostatnio: 2 tygodnie temu

0

Dlaczego nie dodaje mi znaku wodnego a po naciśnięciu przycisku dodaj pod nim wyskakują jakieś "krzaczki" i dopiero jest wyświetlane echo"gotowe"

<?php
session_start();
if ($_SESSION['Userok']==false){
    header('Location: login.php');
}
else
require_once "header.php";
?>
    <section >
        <form enctype="multipart/form-data" action="add.php" method="post" class="formularze">
            <label class="logowanie">Tytuł<input type="text" name="tyt" value="Tytuł obrazka" onclick='this.value = "";'></label></br></br>
            <label class="logowanie">Wybierz obrazek <input type="file" name="image"></label>
            <span>Rozszerzenia .gif .png .jpg .jpeg</span></br>
            <input type="submit" value="Dodaj memeszke"class="przyciski" name="przycisk"></br></br></br>
            <span><?php echo $sukcess ?></span>
        </Form>
    </section>

<?php

if(isset($_FILES['image'])){
    $user=$_SESSION['username'];
    $titles=htmlspecialchars($_POST['tyt'],ENT_QUOTES,"UTF-8");
    $errors= array();
    $file_name = $_FILES['image']['name'];
    $file_tmp = $_FILES['image']['tmp_name'];
    $file_type = $_FILES['image']['type'];
    $file_ext=strtolower(end(explode('.',$_FILES['image']['name'])));
    $dir="img/memy/".$file_name;

    $expensions= array("jpeg","jpg","png","gif");
    if(in_array($file_ext,$expensions)=== false){
        $errors[]="extension not allowed, please choose a JPEG or PNG file.";
    }

    if(empty($errors)==true) {
        $isertmem= "INSERT INTO `Memy` (`user`, `tytol`, `img_link`, `like`, `dislike`, `zgłoszone`) VALUES ('$user','$titles','$dir','0','0','0');";
        if ($_lacz->query($isertmem) === TRUE) {
            move_uploaded_file($file_tmp,$dir);
            $sukcess="Sukces";
            $_lacz->close();
            if($file_type=="image/jpg"||$file_type=="image/jpeg"){
                $photo = $dir;

                $image = imagecreatefromjpeg($photo);
                $watermark = imagecreatefromjpeg('/img/water.jpg');

                $width = imagesx($image);
                $height = imagesy($image);
                $watermark_width = imagesx($watermark);
                $watermark_height = imagesy($watermark);
                imagecopymerge($image, $watermark, (($width - $watermark_width))-10, (($height - $watermark_height))-10, 0, 0, $watermark_width, $watermark_height, 100);

                imagejpeg($image);
                imagedestroy($image);
                imagedestroy($watermark);
                echo"gotowe";
            }
            if($file_type=="image/png"||$file_type=="image/png"){
                $photo = $dir;

                $image = imagecreatefrompng($photo);
                $watermark = imagecreatefrompng('/img/water.png');

                $width = imagesx($image);
                $height = imagesy($image);
                $watermark_width = imagesx($watermark);
                $watermark_height = imagesy($watermark);
                imagecopymerge($image, $watermark, (($width - $watermark_width))-10, (($height - $watermark_height))-10, 0, 0, $watermark_width, $watermark_height, 100);

                imagepng($image);
                imagedestroy($image);
                imagedestroy($watermark);
                echo"gotowe";
            }
        } else {
            echo $_lacz->error;
            $_lacz->close();
        }

    }else{
        print_r($errors);
    }
}
require_once "footer.php";
?>

Pozostało 580 znaków

2018-12-20 18:54
Moderator

Rejestracja: 12 lat temu

Ostatnio: 47 minut temu

Lokalizacja: Wrocław

0

http://www.php.net/imagejpeg - przyjrzyj się dokładnie opisowi tej funkcji.

Btw, nie warto bezrozumnie kopiować kodów z internetu - potem dzieją się takie rzeczy jak to :-P


edytowany 3x, ostatnio: Patryk27, 2018-12-20 18:55

Pozostało 580 znaków

2018-12-20 19:07

Rejestracja: 3 lata temu

Ostatnio: 2 tygodnie temu

0

Drogi Patryku zrobiłem teraz tak i krzaki zniknęły ale nadal znaku wodnego nie ma na zdjęciu

imagejpeg($image,$dir);
edytowany 2x, ostatnio: mati12, 2018-12-20 19:08

Pozostało 580 znaków

2018-12-20 19:14
Moderator

Rejestracja: 12 lat temu

Ostatnio: 47 minut temu

Lokalizacja: Wrocław

0

Przygotuj MCVE - dzięki temu będę mógł przynajmniej sprawdzić kod u siebie ;-)


Pozostało 580 znaków

2018-12-20 19:38

Rejestracja: 3 lata temu

Ostatnio: 2 tygodnie temu

1

Dobra chodziło ci o takie uproszczenie?


    <section >
        <form enctype="multipart/form-data" action="test.php" method="post" class="formularze">
            <label class="logowanie">Wybierz obrazek <input type="file" name="image"></label>
            <input type="submit" value="Dodaj memeszke"class="przyciski" name="przycisk"></br></br></br>

        </Form>
    </section>

<?php

if(isset($_FILES['image'])) {
    $errors = array();
    $file_name = $_FILES['image']['name'];
    $file_tmp = $_FILES['image']['tmp_name'];
    $file_type = $_FILES['image']['type'];
    $file_ext = strtolower(end(explode('.', $_FILES['image']['name'])));
    $dir = "/" . $file_name;

        echo
        move_uploaded_file($file_tmp, $dir);
        if ($file_type == "image/jpg" || $file_type == "image/jpeg") {
            $photo = $dir;

            $image = imagecreatefromjpeg($photo);
            $watermark = imagecreatefromjpeg('/water.jpg');

            $width = imagesx($image);
            $height = imagesy($image);
            $watermark_width = imagesx($watermark);
            $watermark_height = imagesy($watermark);
            imagecopymerge($image, $watermark, 0, 0, 0, 0, $watermark_width, $watermark_height, 100);

            imagejpeg($image, $file_name);
            imagedestroy($image);
            imagedestroy($watermark);
            echo '<img src="'.$dir.'">';
        }
        if ($file_type == "image/png" || $file_type == "image/png") {
            $photo = $dir;

            $image = imagecreatefrompng($photo);
            $watermark = imagecreatefrompng('/water.png');

            $width = imagesx($image);
            $height = imagesy($image);
            $watermark_width = imagesx($watermark);
            $watermark_height = imagesy($watermark);
            imagecopymerge($image, $watermark, (($width - $watermark_width)) - 10, (($height - $watermark_height)) - 10, 0, 0, $watermark_width, $watermark_height, 100);

            imagepng($image, $file_name);
            imagedestroy($image);
            imagedestroy($watermark);
            echo "gotowe";
        }

}
?>

Pozostało 580 znaków

2018-12-20 19:45
Moderator

Rejestracja: 12 lat temu

Ostatnio: 47 minut temu

Lokalizacja: Wrocław

0

imagecreatefromjpeg('/water.jpg'); - jesteś pewien, że ścieżka do tego pliku jest prawidłowa?


tak bo plik mam w katalogu głównym na serwerze - mati12 2018-12-20 19:47
I jesteś na 100% pewien, że ten plik jest dobrze wczytywany w tym miejscu? - Patryk27 2018-12-20 19:47
tak ponieważ dodałem echo '<img src="/water.jpg">'; i mi wyświetliło obraz - mati12 2018-12-20 19:51
To są dwie różne ścieżki. /water.jpg po stronie PHPa oznacza, że będzie on szukał obrazka w głównym katalogu serwera (tam, gdzie masz /bin, /lib itd.). /water.jpg po stronie serwera HTTP (czyli z punktu widzenia przeglądarki) oznacza, że będzie on szukał obrazka w głównym katalogu wirtualnego hosta (np. /var/www/html/water.jpg). Zacznij od podmiany tej relatywnej ścieżki w PHPie na absolutną (np. /var/www/html/water.jpg). - Patryk27 2018-12-20 19:54
nadal nic to nie zmieniło - mati12 2018-12-20 19:58
Pokaż aktualny kod + pokaż w jaki sposób upewniłeś się, że PHP wczytuje poprawnie Twój plik. Z racji tego, że komentarze przeznaczone są do rozmowy poza głównym tematem sugeruję się przy okazji przenieść z powrotem do postów. - Patryk27 2018-12-20 20:00

Pozostało 580 znaków

2018-12-20 20:03

Rejestracja: 3 lata temu

Ostatnio: 2 tygodnie temu

0

Aktualny kod


    <section >
        <form enctype="multipart/form-data" action="test.php" method="post" class="formularze">
            <label class="logowanie">Wybierz obrazek <input type="file" name="image"></label>
            <input type="submit" value="Dodaj memeszke"class="przyciski" name="przycisk"></br></br></br>

        </Form>
    </section>

<?php

if(isset($_FILES['image'])) {
    $errors = array();
    $file_name = $_FILES['image']['name'];
    $file_tmp = $_FILES['image']['tmp_name'];
    $file_type = $_FILES['image']['type'];
    $file_ext = strtolower(end(explode('.', $_FILES['image']['name'])));
    $dir = "/" . $file_name;

        echo
        move_uploaded_file($file_tmp, $dir);
        if ($file_type == "image/jpg" || $file_type == "image/jpeg") {
            $photo = $dir;

            $image = imagecreatefromjpeg($photo);
            $watermark = imagecreatefromjpeg('/WWW/HTML/home/water.jpg');#tu dodałem ścieżkę

            $width = imagesx($image);
            $height = imagesy($image);
            $watermark_width = imagesx($watermark);
            $watermark_height = imagesy($watermark);
            imagecopymerge($image, $watermark, 0, 0, 0, 0, $watermark_width, $watermark_height, 100);

            imagejpeg($image, $file_name);
            imagedestroy($image);
            imagedestroy($watermark);
            echo '<img src="/water.jpg">'; #tu się upewniłem
        }
        if ($file_type == "image/png" || $file_type == "image/png") {
            $photo = $dir;

            $image = imagecreatefrompng($photo);
            $watermark = imagecreatefrompng('/water.png');

            $width = imagesx($image);
            $height = imagesy($image);
            $watermark_width = imagesx($watermark);
            $watermark_height = imagesy($watermark);
            imagecopymerge($image, $watermark, (($width - $watermark_width)) - 10, (($height - $watermark_height)) - 10, 0, 0, $watermark_width, $watermark_height, 100);

            imagepng($image, $file_name);
            imagedestroy($image);
            imagedestroy($watermark);
            echo "gotowe";
        }

}
?>

Pozostało 580 znaków

2018-12-20 20:04
Moderator

Rejestracja: 12 lat temu

Ostatnio: 47 minut temu

Lokalizacja: Wrocław

0

Ok, wejdź do katalogu /WWW/HTML/home/ na serwerze - odpal tam pwd, ls -al i podeślij wyniki.


Pozostało 580 znaków

2018-12-20 20:06

Rejestracja: 3 lata temu

Ostatnio: 2 tygodnie temu

0
[email protected]_www:~$ pwd
/WWW/HTML/home
[email protected]_www:~$ ls -al
total 328
drwxrwxrwx  7 www-data www-data   4096 gru 20 19:33 .
drwxrwxrwx  7 root     root       4096 lis 15 09:50 ..
-rw-------  1 mati12   mati12     8361 lis 15 11:56 .bash_history
drwx------  2 mati12   mati12     4096 lis  1 13:52 .cache
-rw-r--r--  1 root     root       1257 lis  4 20:15 ca.crt
-rw-r--r--  1 root     root       1029 lis  4 20:14 ca.csr
-rw-------  1 root     root       1679 lis  4 20:13 ca.key
drwx------  3 mati12   mati12     4096 lis  1 22:11 .config
-rwxrwxrwx  1 www-data www-data  10918 paź 23 13:59 index.html
-rwxrwxrwx  1 root     root         19 paź 27 16:21 info.php
drwxr-xr-x  6 mati12   mati12     4096 paź 31 13:41 mftp
-rw-------  1 mati12   mati12       24 lis  2 19:09 .mysql_history
drwxrwxrwx 13 root     root       4096 paź 27 22:54 phpmyadmin
-rw-------  1 root     root       1024 lis  4 20:15 .rnd
-rw-r--r--  1 mati12   mati12        0 lis  1 13:53 .sudo_as_admin_successful
-rw-r--r--  1 mati12   mati12     2079 gru 20 19:49 test.php
drwxr-xr-x  2 mati12   mati12     4096 gru  4 16:57 .tmp
-rw-r--r--  1 mati12   mati12    80478 gru 20 19:33 water.jpg
-rw-r--r--  1 mati12   mati12   170801 gru 20 19:31 water.png
[email protected]_www:~$
edytowany 1x, ostatnio: Patryk27, 2018-12-20 20:07

Pozostało 580 znaków

2018-12-20 20:09
Moderator

Rejestracja: 12 lat temu

Ostatnio: 47 minut temu

Lokalizacja: Wrocław

0

Dwie sprawy:

  1. #tu się upewniłem - nieprawda. Przeglądarka i PHP to dwa zupełnie różne konteksty - to, że w przeglądarce wyświetla Ci się obrazek nie znaczy wcale, że PHP będzie go widział poprawnie.
  2. imagejpeg($image, $dir); maybe?

Pozostało 580 znaków

2018-12-20 20:12

Rejestracja: 3 lata temu

Ostatnio: 2 tygodnie temu

0

a jak mam inaczej zrobić by te obrazy mi zamieniło?

chodzi mi oto że robię stronę z memami i chcę żeby obraz wysyłany przez użytkownika był na serwerze zamieniany na ten z logo na dole - mati12 2018-12-20 20:14

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0