Dlaczego nie dodaje mi znaku wodnego?

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";
?>

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

0

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

imagejpeg($image,$dir);
0

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

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";
        }

}
?>
0

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

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";
        }

}
?>

0

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

0
mati12@serwer_www:~$ pwd
/WWW/HTML/home
mati12@serwer_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
mati12@serwer_www:~$
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?
0

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

0
mati12 napisał(a):

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

jeśli to faktycznie kwestia ścieżki wypróbuj jedną z dwóch rzeczy:

  1. zuploaduj obrazek np. na imgur.com i podaj link do niego jako src
  2. zrób <img src="<?php echo "/water.jpg"; ?>" /> i zobacz czy się wyświetla

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