Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> funkcja isset zle dzialanie
trylas
post
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&sup3;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&sup3;
$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&sup1;pi&sup3; b&sup3;&sup1;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&sup3;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!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
delfinium
post
Post #2





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:
  1. <?php
  2.  $value = isset( $_REQUEST['id'] ) ? 1 0;
  3. ?>
  4. <form method="post" action="...">
  5. <input type="hidden" name="istnieje" value="<?php echo $value; ?>" />
  6. pozostała część formularza
  7. </form>


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.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 03:23