Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][MySQL][PHP]problemy z funkcjami - pomocy
Forum PHP.pl > Forum > Przedszkole
nyggaz
witam wszystkich
od niedawna zaczołem swoją przygode z programowanie php.
Napisałem kilka (az 4 skrypy 3 w php i od razu mam problem z funkcjami i nie potrafie sobie poradzic)
Juz dostaje czegoś bo ciagle jakies nowe bledy mi sie pokazuja i nie wiem jak sie ich pozbyc raz na zawsze a zeby stronka zaczela pomalu dzialac jak nalezy.

Minowicie utworzylem baze danych:
Kod
-- phpMyAdmin SQL Dump
-- version 2.6.4-pl3
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Czas wygenerowania: 05 Lis 2009, 07:15
-- Wersja serwera: 5.0.15
-- Wersja PHP: 5.0.5
--
-- Baza danych: `kambn1`
--

-- --------------------------------------------------------

--
-- Struktura tabeli dla  `images`
--

CREATE TABLE `images` (
  `IMAGES_ID` int(11) NOT NULL auto_increment,
  `IMAGES_CAPTION` varchar(255) collate utf8_polish_ci NOT NULL,
  `OPIS` varchar(255) collate utf8_polish_ci NOT NULL,
  `CENA` varchar(255) collate utf8_polish_ci NOT NULL,
  PRIMARY KEY  (`IMAGES_ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=1;

--
-- Zrzut danych tabeli `images`
--


-- --------------------------------------------------------

--
-- Struktura tabeli dla  `page`
--

CREATE TABLE `page` (
  `LP` int(11) NOT NULL auto_increment,
  `TYTUL` text collate utf8_polish_ci NOT NULL,
  `TRESC` text collate utf8_polish_ci NOT NULL,
  PRIMARY KEY  (`LP`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=1;

--
-- Zrzut danych tabeli `page`
--


-- --------------------------------------------------------

--
-- Struktura tabeli dla  `user`
--

CREATE TABLE `user` (
  `LP` int(1) NOT NULL auto_increment,
  `LOGIN` varchar(50) collate utf8_polish_ci NOT NULL,
  `PASS` varchar(255) collate utf8_polish_ci NOT NULL,
  `IMIE` varchar(50) collate utf8_polish_ci NOT NULL,
  `LEVEL` varchar(20) collate utf8_polish_ci NOT NULL,
  PRIMARY KEY  (`LP`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=1;

--
-- Zrzut danych tabeli `user`
--


pozniej utworzylem pliczek
upload_images.htm
Kod
<html>
<head>
<title>Dodawanie oferty</title>
</head>
<body>

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

<table border="0" callpadding="5">
<tr>
<td>Nazwa kostki</td>
<td><input name="image_caption" type="text" id="item_caption" size="55" maxlength="255"></td>
</tr>
<tr>
<td>Opis kostki</td>
<td><input name="opis" cols="1" rows="10" type="text" id="opis" size="55" maxlength="255"></td>
</tr>
<tr>
<td>Zdjęcie kostki</td>
<td><input name="image_filename" type="file" id="image_filname"</td>
</tr>
<tr>
<td>Cena kostki</td>
<td><input nape="cena" type="text" id="cena" size="15" maxlength="255"></td>
</td>
</table>
<br>
<em>Przyjmowane są obrazy w formatach: GIF. JPG/JPEG I PNG.</em>
<p algin="center"><input type="submit" name="Submit" valure="Wyślij">
&nbsp;
<input type="reset" name="Submit2" valure="Wyczyść">
</p>
</form>
</body>
</html>


Po kilka godzinach meczenia sie udalo mi sie stworzyc
chceck_image.php
Kod
<?php
// połączenie z bazą danych
$link = mysql_connect("localhost", "root", "")
or die("nie mogę się połączyć:" . mysql_error());
mysql_select_db("kambn1" , $link)
or die (mysql_error());

// udostępnienie zmiennych
$image_caption = $_POST['image_caption'];
$opis = $_POST['opis'];
$image_tempname = $_FILES['images_filename']['name'];
$cena = $_POST['cena'];

//umieszczenie obrazu i sprawdzenie jego formatu
// ściezka do pliku
$ImageDir = "c:/Program Files/xampp/htdocs/KAMBN/images/";
// miniatury
$imageThumb = $ImageDir . "thumbs/"

$Imagename = $ImageDir . $images_tmpname;
if (move_uploaded_file($_FILES['images']['tmp_name'],
                $ImageName))
{

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

if ($type>3) {
echo: "Przykro nam, ale przesłany obraz nie jest w formacie .GIF, .JPG lub .PNG.<br>";
echo: "Kliknij przycisk Wstecz w przegl±darce i spruboj ponownie.";
    } else{
  // obraz jest w poprawnym formacie mozna kontynuowac.
// wstawienie informacji do tabeli images

$insert = "INSERT INTO images
    (IMAGES_CAPTION, OPIS, CENA)
    VALUES
    ('$IMAGES_CAPTION', '$OPIS', '$CENA')";
$insertresults = mysql_query($insert)
or die(mysql_error());

$lastpicid - mysql_insert_id();

$newfilename = $ImageDir . $lastpicid  .jpg;
if ($type == 2){
rename($ImageName. $newfilename);
} else {
    if ($type == 1) {
        $image_old = imagecreatefromgif($ImageName);
    } elseif ($type == 3) {
        $image_old = imagecreatefrompng($ImageName);
    }
// skonwertuj obraz na format JPG
$image_jpg = imagecreatetruecolor($width, $height);
imagecopyresampled($image_jpg, $image_old, 0, 0, 0, 0,
                    $width, $height, $width, $height);
imagejpeg($image_jpg. $newfilename);
imagedestroy($image_old);
imagedestroy($image_jpg);
}
// miniatury
$newthumbname = $ImageThumb . $lastpicid . ".jpg;"
// pobierz wymiary miniaturki
$thumb_width = $width * 0.10;
$thumb_height = $height * 0.10;

// utwurz miniaturke
$largeimage = imagecreatefromjpeg($newfilename);
$thumb = imagecreatetruecolor($thumb_width. $thumb_height);
imagecopyresampled($thumb. $largeimage. 0, 0, 0, 0,
                    $thumb_width. $thumb_height. $width. $height);
imagejpeg($thumb. $newthumbname);
imagedestroy($largeimage);
                    
$url="location: showimage.php?id=" . $lastpicid;
header($url);
}
}

?>

i w tym pliku zaczynaja sie "jaja" mianowicie po odpaleniu wyskakuje
Kod
Parse error: parse error, unexpected T_VARIABLE in C:\Program Files\xampp\htdocs\KAMBN\chceck_image.php on line 20


Lecz to dopiero początek. Nastepny plik to
showimage.php
Kod
<?php
// polaczenie z baza danych
$link = mysql_connect("localhost", "root", "")
or die("Nie moge sie polaczyc: " . mysql_error());
mysql_select_db("kambn1" . $link)
or die (mysql_error());

// udostepnienie zmiennych
$id = $REQUEST['id'];

// pobranie informacji o obrazie do wyswietlenia
$getpic = mysql_query("SELECT * FROM `images` WHERE `IMAGES_ID` = '$id'")
or die (mysql_error());
$rows = mysql_fetch_array($getpic);
extract($rows);

$image_filename = "images/" . $images_id . ".jpg";
list($width, $height, $type, $attr) = getimagesize($image_filename);


?>

<html>
<head>
<title> oferta </title>
</head>
<body>
<img src="<?php echo $image_filename; ?>" align="left"
    <?php echo $attr; ?> >
    <strong><?php echo $image_caption; ?></strong><br />
    <?php echo $opis; ?> <br />
    Jego cena to<?php echo $cena; ?>
</body>
</html>

i po odpaleniu plika showimage wyskakuje błąd;
Kod
Unknown database 'kambn1resource id #2'

i ostatni plik ktory utworzylem to:
oferta.php
Kod
<?php

// polaczenie z baza danych
$link = mysql_connect("localhost", "root", "")
or die("nie moge sie polaczyc: " . mysql_error());
mysql_select_db("kambn1" . $link)
or die (mysql_error());

$ImageDir = "images";
$ImageThumb = $ImageDir . "/thumbs/";
?>
<html>
<head>
<title>Oferta</title>
<body>
<p align="center">Kliknij na miniaturke aby powiekszyc</p>
<table align="center">
<tr>
<td align="center">Kostka</td>
<td align="center">Nazwa Kostki</td>
<td align="center">Opis</td>
<td align="center">Cena</td>
</tr>

<?php
// pobieranie miniaturek
$getpic = mysql_query("SELECT * FROM `images`")
or die(mysql_error());
while ($rows = mysql_fetch_array($getpic)) {
    extract($rows);
    echo "<tr>\n";
    echo "<td><a href=\"".ImageDir . $IMAGES_ID . ".jpg\">";
    echo "<img src=\"" . $ImageThumb . $IMAGES_ID . ".jpg\" border=\"0\">";
    echo "</a></td>\n";
    echo "<td>" . $images_caption . "</td>\n";
    echo "<td>" . $opis . "</td>\n";
    echo "<td>" . $cena . "</td>\n";
    echo "</tr>\n";
    }
?>
</table>
</body>
</html>

i po odpaleniu rowniez wyskakuje mi ten sam blad w/w. Dodam, że w bazie danych nie ma zapisanego zadnego rekordu wiec nie wiem skad ten blad i nie wiem jak mam sie go pozbyc. sad.gif
Jak ktoś da rade to prosze o pomoc w pozbyciu sie błedow ze skryptow i wyjasnienie mi jak pisac aby nie bylo denerwujacych bledow.
Informatic
Wszystkie trzy błędy:
Kod
mysql_select_db("kambn1", $link) or die (mysql_error());

Powinien być przecineczek, a nie kropeczka smile.gif
Kropka służy do łączenia ciągów znaków, a przecinek oddziela parametry funkcji.
nyggaz
wspaniale ta kropeczka mnie tak denerwowala od kilku godzin.
Poprawilem lecz plik;

chceck_image.php

w dalszym ciagu nie dziala po wyslaniu pliku poprzez formularz przegladarka wyswietla następujaca tresc

Kod
3) { echo "Przykro nam, ale przesłany obraz nie jest w formacie .GIF, .JPG lub .PNG.
"; echo "Kliknij przycisk Wstecz w przeglądarce i spruboj ponownie."; } else{ // obraz jest w poprawnym formacie mozna kontynuowac. // wstawienie informacji do tabeli images $insert = "INSERT INTO images (IMAGES_CAPTION, OPIS, CENA) VALUES ('$IMAGES_CAPTION', '$OPIS', '$CENA')"; $insertresults = mysql_query($insert) or die(mysql_error()); $lastpicid - mysql_insert_id(); $newfilename = $ImageDir . $lastpicid .jpg; if ($type == 2){ rename($ImageName. $newfilename); } else { if ($type == 1) { $image_old = imagecreatefromgif($ImageName); } elseif ($type == 3) { $image_old = imagecreatefrompng($ImageName); } // skonwertuj obraz na format JPG $image_jpg = imagecreatetruecolor($width, $height); imagecopyresampled($image_jpg, $image_old, 0, 0, 0, 0, $width, $height, $width, $height); imagejpeg($image_jpg. $newfilename); imagedestroy($image_old); imagedestroy($image_jpg); } // miniatury $newthumbname = $ImageThumb . $lastpicid . ".jpg;" // pobierz wymiary miniaturki $thumb_width = $width * 0.10; $thumb_height = $height * 0.10; // utwurz miniaturke $largeimage = imagecreatefromjpeg($newfilename); $thumb = imagecreatetruecolor($thumb_width. $thumb_height); imagecopyresampled($thumb. $largeimage. 0, 0, 0, 0, $thumb_width. $thumb_height. $width. $height); imagejpeg($thumb. $newthumbname); imagedestroy($largeimage); $url="location: showimage.php?id=" . $lastpicid; header($url); } } ?>
Informatic
Cytat(nyggaz @ 6.11.2009, 12:12:34 ) *
wspaniale ta kropeczka mnie tak denerwowala od kilku godzin.
Poprawilem lecz plik;

chceck_image.php

w dalszym ciagu nie dziala po wyslaniu pliku poprzez formularz przegladarka wyswietla następujaca tresc

Kod
3) { echo "Przykro nam, ale przesłany obraz nie jest w formacie .GIF, .JPG lub .PNG.
"; echo "Kliknij przycisk Wstecz w przeglądarce i spruboj ponownie."; } else{ // obraz jest w poprawnym formacie mozna kontynuowac. // wstawienie informacji do tabeli images $insert = "INSERT INTO images (IMAGES_CAPTION, OPIS, CENA) VALUES ('$IMAGES_CAPTION', '$OPIS', '$CENA')"; $insertresults = mysql_query($insert) or die(mysql_error()); $lastpicid - mysql_insert_id(); $newfilename = $ImageDir . $lastpicid .jpg; if ($type == 2){ rename($ImageName. $newfilename); } else { if ($type == 1) { $image_old = imagecreatefromgif($ImageName); } elseif ($type == 3) { $image_old = imagecreatefrompng($ImageName); } // skonwertuj obraz na format JPG $image_jpg = imagecreatetruecolor($width, $height); imagecopyresampled($image_jpg, $image_old, 0, 0, 0, 0, $width, $height, $width, $height); imagejpeg($image_jpg. $newfilename); imagedestroy($image_old); imagedestroy($image_jpg); } // miniatury $newthumbname = $ImageThumb . $lastpicid . ".jpg;" // pobierz wymiary miniaturki $thumb_width = $width * 0.10; $thumb_height = $height * 0.10; // utwurz miniaturke $largeimage = imagecreatefromjpeg($newfilename); $thumb = imagecreatetruecolor($thumb_width. $thumb_height); imagecopyresampled($thumb. $largeimage. 0, 0, 0, 0, $thumb_width. $thumb_height. $width. $height); imagejpeg($thumb. $newthumbname); imagedestroy($largeimage); $url="location: showimage.php?id=" . $lastpicid; header($url); } } ?>


Jeżeli takie coś Ci się wyświetla, znaczy że nie pokazałeś tutaj całości tego pliku. Sądzę że gdzieś masz źle wpisany "<?php" (albo z błędem)
thek
Skoro sypie Ci coś takiego, to znaczy, że masz gdzieś problem z apostrofami lub otwarciem/zamknięciem tagów php i interpreter wyświetla kod zamiast go parsować prawidłowo.
nyggaz
oto sie rozchodzi ze plik
chceck_image.php
ma tylko raz uzyte <?php i jest zamkniecie kodu na koncu skryptu ?>
nie mam pojecia gdzie szukac bledu i w jaki sposob mam sie go pozbyc jak byś mogl przejrzec kod jest umieszczony na poczatku postu bede wdzieczny
Informatic
Kod
echo: "Przykro nam, ale przesłany obraz nie jest w formacie .GIF, .JPG lub .PNG.<br>";
echo: "Kliknij przycisk Wstecz w przegl±darce i spruboj ponownie.";


Te dwukropki nie powinny się tu znajdować smile.gif
nyggaz
dwukopki po echo zostaly usuniete lecz w dalszym ciagu sie sypie.
zastanawiam sie czy :

if(type > 3) {

jest dobrze bo nawet jak przed type postawie znaczek $ to i tak nie zmienia to faktu ze sie sypie sam juznie wiem sad.gif

a zas program
PHPDESIGNER wskazuje jakis blad w lini 20 tj.
Kod
20                    $Imagename = $ImageDir . $images_tmpname;
21                    if (move_uploaded_file($_FILES['images']['tmp_name'],
22                $ImageName))
23                   {


thek
Lepiej sprawdź sobie co zawierają zmienne używane przez Ciebie. Myślę, że problem może być przy ścieżce do pliku. Podajesz ją na sztywniaka począwszy od dysku C. Lepiej sprawdź czy aby próba przeniesienia pliku w to miejsce kończy się tak jak chcesz. Bo to mniej więcej tam Ci się całość zaczyna sypać. Używaj ścieżek serwerowych czyli w stylu 'katalog/' lub '/katalog/' (gdy idziesz od root-a) a nie 'C://path_do_htdocs/katalog/'...
nyggaz
Udało mis ie znaleść "błąd"
Nie wiem czemu ale tak to wychodzi ze jest on tutaj:
Kod
if($type > 3){
echo "Przykro nam, ale przesłany obraz nie jest w formacie GIF, JPG lub" .
      "PNG.";
echo "Kliknij przycisk 'Wstecz' w przeglądarce i spruboj ponownie.";
    }

mianowicie gdy zamienie > na =
to pokazuje sie pusta strona.
co jest zle ze to nie dziala i nie zapisuje rekordu sad.gif
thek
Sprawdź zmienne, które wrzucasz do list. Jeśli ścieżki masz nieprawidłowe, co już w poprzednim swoim poście ci sugeruję, to listowanie z NULL wywali Ci głupoty do zmiennych $width, $height, $type i $attr a jak chcesz potem te zmienne porównywać? Zobacz co w nich jest, bo możesz się zdziwić. I naprawdę sprawdź te ścieżki, bo moim zdaniem to one mogą powodować byki. Zresztą ścieżki często powodują problemy, bo wiele osób nie zwraca uwagi czy podaje tam / czy \ a to akurat też ma znaczenie.
nyggaz
Postanowiłem się bardziej przyłożyć do PHP i MYSQL.
Teraz zacznę budować na nowo cały skrypt dokładnie analizując jego zawartość.
Mam "ciężkiego" pomocnika mianowicie Biblię PHP5 i MySQL.
Wydaje mi się, że z jego wiedzą rozwiążą się moje problemy smile.gif smile.gif
Teraz czytam i analizuje wszystko ... smile.gif

Temat do zamknięcia.
Dziękuję za poświęcony czas i nerwy.

Napewno jeszcze będę się pokazywał z innymi problemami smile.gif
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.