Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][MySql] Wstawianie obrazków przez użytkowników
Forum PHP.pl > Forum > Przedszkole
woiran
Witam wszystkich serdecznie.

Proszę o możliwie proste wytłumaczenie mi dlaczego na stronie check_image.php nie wyświetlają mi się zdjęcia wybrane na pierwszej stronie formularza o nazwie upload_image.htm. Uczę się z książki Php5, Apache i MySql od podstaw. Przykład jest z książki.

plik: upload_image.htm
Kod
<html>
<head>
<title>Umieść obrazek na naszej witrynie!</title>
</head>
<body>
<form name="form1" method="post" action="check_image.php"
enctype="multipart/form-date">
<table border="0" cellpading=5">
<tr>
<td>Tytuł obrazka<br>
<em>Przykład: do mnie mówisz?</em></td>
<td><input name="image_caption" type="text" id="item_caption" size="55"
maxlength="255"></td>
</tr>
<tr>
<td>Nazwa użytkownika</td>
<td><input name="image_username" type="text" id="image_username" size="15"
maxlength="255"></td>
</tr>
<td>Umieszczamy obraz:</td>
<td><input name="image_filename" type="file" id="image_filename"></td>
<tr>
</table>
<br>
<em>Przyjmowane są obrazy w formatach: GIF, JPG/JPEG i PNG.</em>
<p align="center"><input type="submit" name="Submit" value="Wyślij">
&nbsp;
<input type="reset" name="Submit2" value="Wyczyść">
</p>
</form>
</body>
</html>

plik: check_image.php
Kod


<?php
//polaczenie z baza danych
$polaczenie = mysql_connect("localhost", "root", "root") or die ("SprawdL polaczenie z serwerem: " . mysql_error());
mysql_select_db('moviesite', $polaczenie)
or die (mysql_error());

//udostepnienie zmiennych
$image_caption = $_POST['image_caption'];
$image_username = $_POST['image_username'];
$image_tempname = $_FILES['image_filename']['name'];
$today = date("Y-m-d");

//umieszczenie obrazu i sprawdzenie jego formatu

$ImageDir ="E:/Serwer/www/";
$ImageName = $ImageDir . $image_tempname;
if (move_uploaded_file($_FILES['image_filename']['tmp_name'], $ImageName)) {

//pobranie informacji na temat umieszczonego obrazu
list($width, $height, $type, $attr) = getimagesize($ImageName);

switch ($type) {
    case 1:
         $ext = ".gif";
         break;
    case 2:
         $ext = ".jpg";
         break;
    case 3:
         $ext = ".png";
         break;
    default:
         echo "Przykro nam, ale przeslany obraz nie jest w formacie GIF, JPG lub " . "PNG.<br>";
         echo "Kliknij przycisk 'Wstecz' w przegladarce i spróbuj ponownie.";
}

//wstawienie informacji do tabeli images
$insert = "INSERT INTO images
             (image_caption, image_username, image_date)
             VALUES
             ('$image_caption', '$image_username', '$today')";
$insertresults = mysql_query($insert)
or die(mysql_error());

$lastpicid = mysql_insert_id();

$newfilename = $ImageDir . $lastpicid . $ext;

rename($ImageName, $newfilename);

}
?>

<html>
<head>
<title>Oto umieszczony obrazek!</title>
</head>
<body>
<h1>wspaniale jest być sławnym</h1><br<br>
<p>Oto obrazek, który wlasnie umiesciles na serwerze:</p>
<img src="images/<?php echo $lastpicid . $ext; ?>" align="left">
<strong><?php echo $image_caption; ?></strong><br>
Jest to obraz w formacie <?php echo $ext; ?>.<br>
Ma <?php echo $width; ?> pikseli szerokosci i
<?php echo $height; ?> pikseli wysokosci.<br>
Zostal umieszczony w dniu <?php echo $today; ?>.
</body>
</html>
kicaj
Edytuj post i uzyj znacznikow odpowiednich do fragmentu kodu, ktory wkleiles!
ayeo
Tu jest errata do tej ksiązki http://helion.pl/errata.cgi?id=phappo
Pozdrawiam!

PS Edytowałem Twój post (powód: niepoprawne znaczniki bbcode);
PS Znowu "poprawiłeś" biggrin.gif
woiran
Cytat(ayeo @ 22.04.2008, 13:48:53 ) *
Tu jest errata do tej ksiązki http://helion.pl/errata.cgi?id=phappo
Pozdrawiam!

PS Edytowałem Twój post (powód: niepoprawne znaczniki bbcode);
PS Znowu "poprawiłeś" biggrin.gif


Dzięki za linka, ale niestety nei ma tam akurat taj strony. Nie wiem co jest nie tak podejrzewam, że może źle ustawiłem: $ImageDir ="E:/Serwer/www/";
Gubie się jeszcze w php jak też w tym forum biggrin.gif
ayeo
Zmień:
Kod
<form name="form1" method="post" action="check_image.php">

na:
Kod

<form enctype="multipart/form-data" name="form1" method="post" action="check_image.php">


poza tym zmień ścieżkę na "E:\Serwer\www\images\"; albo poprostu użyj apostrofa zamiast cudzysłowu biggrin.gif

Pozdrawiam!

PS Działa, testowałem!
woiran
Cytat(ayeo @ 22.04.2008, 15:02:22 ) *
Zmień:
Kod
<form name="form1" method="post" action="check_image.php">

na:
Kod

<form enctype="multipart/form-data" name="form1" method="post" action="check_image.php">


poza tym zmień ścieżkę na "E:\Serwer\www\images\"; albo poprostu użyj apostrofa zamiast cudzysłowu biggrin.gif

Pozdrawiam!

PS Działa, testowałem!

Dzięki wielkie za pomoc!!! Niech żyją ciasteczka!
Pozdrawiam serdecznie
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.