Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]formularz do uploadu fotek
Forum PHP.pl > Forum > Przedszkole
pomier
Witam wszystkich, mam taki problem. Mam gotową baz mysql wszystko działa, wiem jak zrobić formularze do dodawania rekordów, aktualizacji i kasowania ale nie mam pojęcia jak się zabrać za formularz który będzie dodawał obrazek w wyznaczone miejsce, robił miniaturkę i zapisywał ścieszkę do obrazka wraz z tytułem w bazie mysql.

Może mnie ktoś naprowadzi, podsunie jakiś pomysł.

Dzięki
nospor
Zacznij od nauki uploadu
http://pl2.php.net/manual/pl/features.file...post-method.php
pomier
no dobra dzieki za link, pliki juz się dodają na serwer a teraz jak to zrobić by nazwa pliku wpadała do bazy mysql? może znowu jakiś link pomocny hehe
nospor
Kod
a teraz jak to zrobić by nazwa pliku wpadała do bazy mysql? może znowu jakiś link pomocny hehe

mysql_query hehe
http://pl2.php.net/manual/pl/function.mysql-query.php
pomier
zrobilem insert in to do konkretnej tabeli. Wybralem plik i zrobilem upload ale wywalilo mi "Column 'grafika_tlo' cannot be null" przypuszczam że przydała by się coś jeszcze ? chodzi o nazwe
nospor
No przeciez masz jak wol na miedzy napisane:
"kolumna o nazwie grafika_tlo nie moze byc pusta."
To podaj wartosc dla tej kolumny
-pomier-
Za szybko napisałem, tak zrobilem wszystko wpisy sa w bazie, plik sie laduje na serwer tylko muszę podać ręcznie nazwę pliku a da się tak by nazwe pliku automatycznie wpisywał formularz w bazie. Tak bym nie musiał ręcznie wpisywać. Wybieram sobie obrazek o nazwie test.jpg wypełniam resztę danych i klikam wyślij a w bazie ustawia się nazwa pliku test.jpg
nospor
No przecież nazwe tego pliku masz w $_FILES, tak? Tak. No to se stamtad pobierz i wstaw do zapytania.
pomier
no nie obużaj się ja jestem tylko grafikiem i chcę coś zrobic hehe. Dobra działa dzięki z pomoc w tym temacie a mam jeszcze pytanie i pewnie zaraz wybuchniesz, jak zmusić upload formularz do zmiany rozdziałki pliku do konkretnego rozmiaru

no nie obużaj się ja jestem tylko grafikiem i chcę coś zrobic hehe. Dobra działa dzięki z pomoc w tym temacie a mam jeszcze pytanie i pewnie zaraz wybuchniesz, jak zmusić upload formularz do zmiany rozdziałki pliku do konkretnego rozmiaru
nospor
Cytat
no nie obużaj się ja jestem tylko grafikiem i chcę coś zrobic hehe.
Gdzie tu widzisz obużenie? Masz tam gdzieś wykrzyknik, wielkie litery, wyzywanie od debili? Nie masz, wiec nie wciskaj mi jakiegoś stanu.
Nie widzisz prostej rzeczy to ci wyjaśniam tę prostą rzecz i tyle. To że nie używam w zdaniu uśmieszków (smile.gif) nie znaczy, że jestem obużony blinksmiley.gif
pomier
no ok, jeszcze zauważyłem coś takiego że jak plik jest za duży to formularz pokazuje mi komunikat i nie przesyła do na serwer pliku ale zapisuje wszystko i tak w bazie. Można i to jakoś ustawić?
nospor
Można, przestaw w swoim kodzie linię nr 3 z linią nr 4 tongue.gif

Jak nie załapałeś "obużonej" aluzji to pokaż kod tongue.gif
Zanim jednak pokażesz kod, to wiedz, że zanim cos wkladasz do bazy to warto by najpierw sprawdzić czy upload poszedł ok. No wiesz, użyć trzeba IF
pomier
wszystko sobie sprawdzam na serwerku i w phpmyadmin to widzę co się dzieje

kod dodawania:
  1.  
  2. <form action="test.php" method="POST" ENCTYPE="multipart/form-data">
  3. <form name="form" action="<?php echo $editFormAction; ?>" method="POST" ENCTYPE="multipart/form-data">
  4. <input type="file" name="plik"/><br/>
  5. <input type="submit" value="Wyślij plik"/>
  6.  
  7. <input type="checkbox" name="aktywne" id="aktywne">
  8. aktywne</label>
  9. <label>czas
  10. <input type="text" name="czas" id="czas">
  11. </label>
  12. <input type="hidden" name="MM_insert" value="form">
  13. </form>
  14.  
  15.  


kod wykonywania
  1. <?php
  2. $max_rozmiar = 530*530;
  3. if (is_uploaded_file($_FILES['plik']['tmp_name'])) {
  4. if ($_FILES['plik']['size'] > $max_rozmiar) {
  5. echo 'Błąd! Plik jest za duży!';
  6. } else {
  7. echo 'Plik zostałwysłany. Początkowa nazwa: '.$_FILES['plik']['name'];
  8. echo '<br/>';
  9. if (isset($_FILES['plik']['type'])) {
  10. echo 'Typ: '.$_FILES['plik']['type'].'<br/>';
  11. }
  12. move_uploaded_file($_FILES['plik']['tmp_name'],
  13. $_SERVER['DOCUMENT_ROOT'].'/www.artdd.eu.xml.mysql/backgrounds/'.$_FILES['plik']['name']);
  14. }
  15. } else {
  16. echo 'Błąd przy przesyłaniu danych!';
  17. }
  18.  
  19. require_once('../Connections/mysqlartddxml.php');
  20.  
  21. if (!function_exists("GetSQLValueString")) {
  22. function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
  23. {
  24. if (PHP_VERSION < 6) {
  25. $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  26. }
  27.  
  28. $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
  29.  
  30. switch ($theType) {
  31. case "text":
  32. $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
  33. break;
  34. case "long":
  35. case "int":
  36. $theValue = ($theValue != "") ? intval($theValue) : "NULL";
  37. break;
  38. case "double":
  39. $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
  40. break;
  41. case "date":
  42. $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
  43. break;
  44. case "defined":
  45. $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
  46. break;
  47. }
  48. return $theValue;
  49. }
  50. }
  51.  
  52. $editFormAction = $_SERVER['PHP_SELF'];
  53. if (isset($_SERVER['QUERY_STRING'])) {
  54. $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
  55. }
  56.  
  57. if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form")) {
  58. $insertSQL = sprintf("INSERT INTO tlo (grafika_tlo, czas_wyswietlania, Aktywne) VALUES (%s, %s, %s)",
  59.  
  60. GetSQLValueString($_FILES['plik']['name'], "text"),
  61. GetSQLValueString($_POST['czas'], "text"),
  62. GetSQLValueString(isset($_POST['aktywne']) ? "true" : "", "defined","1","0"));
  63.  
  64. mysql_select_db($database_mysqlartddxml, $mysqlartddxml);
  65. $Result1 = mysql_query($insertSQL, $mysqlartddxml) or die(mysql_error());
  66. }
  67. ?>
nospor
Cytat
wszystko sobie sprawdzam na serwerku i w phpmyadmin to widzę co się dzieje
A co ma piernik do wiatraka? To w kodzie robisz wkladanie do bazy i to w kodzie ma byc warunek IF ktory albo pozwoli wlozyc do bazy albo nie. A ma pozwolic tylko wtedy, gdy upload się powiedzie.

echo 'Błąd! Plik jest za duży!';
echo 'Błąd przy przesyłaniu danych!';

Kazde takie echo robisz gdy IF da ci false. Super, fajnie. Ale tak samo musisz zrobic z wlozeniem do bazy. Jak sie upload nie powiodl to masz nie robic wkladania do bazy. Masz uzyc IF.
Mackos
Cytat(nospor @ 26.01.2011, 20:38:52 ) *
Gdzie tu widzisz obużenie?

Hmm.... nospor odnosze wrażenie że coraz więcej osób uważa, że jesteś niemiły dla użytkowników forum!
Ja tu widzę eskalację zła wśród moderatorów forum biggrin.gif
Nie rozumiem tego, aktualnie 1834 zapytania na forum spotkały się z twoją 'falą obużenia'.

////
Ok, wiem że całkowity offtopic.gif to był ale nie mogłem się powstrzymać biggrin.gif Jakby ktoś nie załapał, to to powyżej to czysta ironia.
pomier po 1. oburzenie pisze się przez rz
po 2. Najpierw troche poczytaj o obsłudze zapytań do bazy danych o np. tu:
http://www.w3schools.com/PHP/php_mysql_insert.asp
pomier
wszystko fajnie poczytam, po testuję tylko ja tego nie piszę wykonuję to wszystko w dreamweaver i śmiga ale widzę że muszę poprzerabiać ręcznie. Zaraz to wszystko sprawdzę.

No dobra coś tam działa teraz nie wysyla jak jest za duzy plik a jak można zmusic formularz do zmiany rozdzielczosci obrazka?
nospor
No niestety formularz nie zmienia obrazków. To również musisz zrobić ty w php przy pomocy biblioteki GD
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.