![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 1 Dołączył: 7.09.2008 Ostrzeżenie: (0%) ![]() ![]() |
CODE <?php // artykul_wyslij.php // dodanie / modyfikacja rekordu artyku³u include('funkcje_dolacz.php'); $lacz = lacz_bd(); $naglowek = $HTTP_POST_VARS['naglowek']; $strona = $HTTP_POST_VARS['strona']; $czas = time(); if ( (isset($HTTP_POST_FILES['html']['name']) && (dirname($HTTP_POST_FILES['html']['type']) == 'text') && is_uploaded_file($HTTP_POST_FILES['html']['tmp_name']))) { $wp = fopen($HTTP_POST_FILES['html']['tmp_name'], 'r'); $tekst_artykulu = addslashes(fread($wp, filesize($HTTP_POST_FILES['html']['tmp_name']))); fclose($wp); } else $tekst_artykulu = $HTTP_POST_VARS['tekst_artykulu']; if (isset($HTTP_POST_VARS['artyklu']) && $HTTP_POST_VARS['artykul']!='') { // uaktualnienie $artykul = $HTTP_POST_VARS['artykul']; $sql = "update artykuly set naglowek = '$naglowek', tekst_artykulu = '$tekst_artykulu', strona = '$strona', zmodyfikowany = $czas where id = $artykul"; } else { // nowy artyku³ $sql = "insert into artykuly (naglowek, tekst_artykulu, strona, autor, utworzony, zmodyfikowany) values ('$naglowek', '$tekst_artykulu', '$strona', '" .$HTTP_SESSION_VARS['uwierz_uzyt']."', $czas, $czas)"; } $wynik = mysql_query($sql, $lacz); if (!$wynik) { print " Wyst¹pi³ b³¹d bazy danych podczas wykonywania <pre>$sql</pre>"; print mysql_error(); exit; } if ( (isset($HTTP_POST_FILES['image']['name']) && is_uploaded_file($HTTP_POST_FILES['image']['tmp_name']))) { if (!isset($artykul)) $artykul = mysql_insert_id(); $typ = basename($HTTP_POST_FILES['image']['type']); switch ($typ) { case 'jpeg': case 'pjpeg': $nazwapliku = "obrazki/$artykul.jpg"; move_uploaded_file($HTTP_POST_FILES['image']['tmp_name'], $nazwapliku); $sql = "update artykuly set obrazek = '$nazwapliku' where id = $artykul"; $wynik = mysql_query($sql, $lacz); break; default: print 'Nieprawid³owy format obrazka: '. $HTTP_POST_FILES['image']['type']; } } header('Location: '.$HTTP_POST_VARS['przeznaczenie']); ?> mam taki problem podczas dodawania nowego newsa do systemu funkcja isset sprawdza czy wartosc jest zerowa i przechodzi do instrukcji else tym samym dodajac nowy artykul(jak dotad wszystko jest oks)problem zaczyna sie jak chcemy edytowac dodany artykul po dodaniu tresci wywolujemy powyzszy skrypt i on zamiast "update'owac" dodaje nam znowu nowy artykul! mam nadzieje ze wyrazilem sie jasno.... prosze pomoc! |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 90 Pomógł: 6 Dołączył: 30.06.2007 Skąd: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
A problem czasem nie leży w literówce?
nie powinno być
BTW tablice $HTTP_POST_VARS są "wycofane", zaleca się korzystanie z $_POST, $_GET itd. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 1 Dołączył: 7.09.2008 Ostrzeżenie: (0%) ![]() ![]() |
wlasnie nie bo isset($zmienna) - daje TRUE gdy $zmienna jest pusta (także równa się zero) lub ma jakąś wartość, FALSE gdy nie istnieje.
<?php $var = $_GET['test']; if (isset($var)){ echo "Zmienna ustawiona"; } else { echo "Zmienna NIE ustawiona"; } ?> i tym samym isset daje poprawne wykonanie skryptu dodajac nowy artykul a zmieniajac ten paramtr na wlasciwy tzn bez literowki daj nam edycje poprawna bez mozliwosci dodania nowego artykulu i nie mam pojecia jak to rozwiazac moze trzeba napisac zupelnie inna instrukcje zamiast if ..... pomocy please |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 90 Pomógł: 6 Dołączył: 30.06.2007 Skąd: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Wiem do czego służy instrukcja isset ale tak czy siak tam była literówka.
Rozwiązać możesz to inaczej, jeśli artykuł jest edytowany (NIE NOWY) to ustaw dodatkowe pole typ HIDDEN z wartością 1. Jeśli jest nowy to pole ma wartość zero. Przy zapisie sprawdź jaką wartość ma zmienna i odpowiednio zmodyfikuj albo dodaj artykuł do bazy. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 1 Dołączył: 7.09.2008 Ostrzeżenie: (0%) ![]() ![]() |
a poratujesz mnie kodem? ...
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 90 Pomógł: 6 Dołączył: 30.06.2007 Skąd: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Nie widzę Twojego kodu więc napiszę coś w pseudokodzie. Nie wiem jak masz skonstruowane strony dodawania/edycji napiszę więc ogólnie.
Zazwyczaj jest tak, że przy edycji jakiegoś wpisu w adresie podaje się jakieś ID lub coś w tym stylu, bo skądś trzeba wiedzieć co pobrać z bazy i tak news.php oznacza że jest to nowy wpis a news.php?id=10 że to edycja newsa z ID 10. Różnie ludzie robią a jak Ty to masz to tego nie wiem. W każdym razie chyba wiesz czy formularz jest dla nowego wpisu czy do edycji. i wtedy wstawiasz do formularza:
Tylko jak tak patrzę na to, to wychodzi to trochę głupio bo jeśli masz id w URLu to nie potrzebujesz tworzyć dodatkowego pola żeby określić czy coś jest nowe czy do edycji bo samo ID o tym mówi i wtedy dodajesz linię <input type="hidden" name="id" value="<?php echo $value; ?>" /> Potem w tym pliku, którego kod zamieściłeś sprawdzasz czy istnieje zmienna id i czy jej wartość = 0. Jeśli tak to dodajesz wpis jeśli różne to modyfikujesz. Jeśli to Ci nie rozjaśniło sprawy to prześlij mi na priva opis jak masz rozwiązane dodawanie/edycję + kod strony to może pomogę coś więcej. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 13.06.2025 - 09:47 |