Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zmienna nie pobiera wartości z url
Forum PHP.pl > Forum > PHP
apup
Witam,
tak jak pisałem w temacie zmienna $post_id oraz $comment_id nie pobierają wartości z URL. Jeśli do tych zmiennych nie zostaną dostarczone odpowienie wartości podczas edycji wpisu wczesniejesze wartości nie są przenoszone do formularza by je edytować. Dodane wpisy sa umieszczane w bazie danych ale z braku wartości w zmiennej nie zostają one wyświetlone na stronie. Po ręcznym wisaniu wartości do zmiennej $post_id wpis wyswietla sie normalnie.

Wartość do pobrania z URL dla zmiennej $post_id
Kod
blog/modify_comment.php?id_artykulu=1&akcja=Edycja


Wartość do pobrania z URL dla zmiennej $comment_id
Kod
blog/modify_comment.php?id_komentarza=1&akcja=Edycja


Poniżej zamieszczam kod pliku obsługującego skrypt do edycji wpisow.
  1. <?php
  2.  
  3.  
  4. require_once('config.php');
  5. include('db_login.php');
  6. require_once('DB.php');
  7.  
  8. $smarty->assign('blog_title', $blog_title);
  9. $smarty->display('header.tpl');
  10.  
  11. if (!isset($_SESSION['username'])) {
  12. echo 'Proszę się <a href="login.php">zalogować</a>.';
  13. $stop=TRUE;
  14. }
  15.  
  16. $connection=DB::connect("mysql://$db_username:$db_password@$db_host/$db_database");
  17. if (!$connection) {
  18. die('Nie można połączyć się z bazą danych'. DB::errorMessage($connection));
  19. }
  20.  
  21. $stop=false;
  22.  
  23. $post_id=$_POST['id_artykulu'];
  24. $title=$_POST['tytul'];
  25. $body=$_POST['tresc'];
  26. $action=$_POST['akcja'];
  27. $category_id=$_POST['id_kategorii'];
  28. $user_id=$_SESSION['user_id'];
  29. $comment_id=$_POST['id_komentarza'];
  30.  
  31. if ($_GET['akcja']=='usuwanie' and !$stop) {
  32. $comment_id=$_GET['id_komentarza'];
  33. $comment_id=mysql_real_escape_string(get_magic_quotes_gpc() ? stripslashes ($comment_id) : $comment_id);
  34.  
  35. $query="DELETE FROM komentarze WHERE id_komentarza='". $comment_id ."' AND uzytkownik_id = '". $user_id ."'";
  36. $result=$connection->query($query);
  37. if (DB::isError($result)) {
  38.  die ('Nie można wykonać zaputania do bazy danych'. DB::errorMessage($result));
  39. }
  40. echo ('Pomyślnie usunięto wiersz.<br />');
  41. $stop=TRUE;
  42. }
  43.  
  44. if ($_GET['id_komentarza'] AND !$stop) {
  45. $comment_id=$_GET['id_komentarza'];
  46.  
  47. $query="SELECT * FROM komentarze NATURAL JOIN uzytkownicy WHERE id_komentarza=". $_GET['id_komentarza'];
  48. $result=$connection->query($query);
  49. if (DB::isError($result)) {
  50.  die ('Nie można wykonać zapytania do bazy danych'. DB::errorMessage($result));
  51. }
  52. while ($result_row=$result->fetchRow(DB_FETCHMODE_ASSOC)) {
  53.  $comments[]=array('title'=>htmlentities($result_row['tytul']),
  54.        'body'=>htmlentities($result_row['tresc']),
  55.        'comment_id'=>$result_row['id_komentarza']);
  56. }
  57.  
  58. $post_id=$_GET['id_artykulu'];
  59. $smarty->assign('akcja', 'edycja');
  60. $smarty->assign('komentarze', $comments);
  61. $smarty->assign('id_artykulu', htmlentities($post_id));
  62. $smarty->display('comment_form.tpl');
  63. $smarty->display('footer.tpl');
  64. }
  65.  
  66. if ($_POST['submit'] AND !$stop) {
  67. if ($title=='') {
  68.  echo ('Pole tytuł musi być wypelnione. <br />');
  69.  $found_error=TRUE;
  70.  $stop='TRUE';
  71. }
  72.  
  73. if ($body=='') {
  74.  echo ('Pole treść musi być wypelnione. <br />');
  75.  $found_error=TRUE;
  76.  $stop='TRUE';
  77. }
  78.  
  79. if ($_POST['akcja']=='dodawanie' AND !$stop) {
  80.  $post_id=mysql_real_escape_string(get_magic_quotes_gpc() ? stripslashes($post_id) : $post_id);
  81.  $user_id=mysql_real_escape_string(get_magic_quotes_gpc() ? stripslashes($user_id) : $user_id);
  82.  
  83.  $query="INSERT INTO komentarze VALUES (NULL, "."'". $user_id ."','". $post_id ."','". $title ."','". $body ."', NULL)";
  84.  $result=$connection->query($query);
  85.  if (DB::isError($result)) {
  86.   die ('Nie można wykonać zapytania do bazy danych'. DB::errorMessage($result));
  87.  }
  88.  echo('Pomyślnie dodano artykuł. <br />');
  89.  $stop='TRUE';
  90. }
  91.  
  92. if ($_POST['akcja']=='edycja' and !$stop) {
  93.  $comment_id=mysql_real_escape_string(get_magic_quotes_gpc() ? stripslashes($comment_id) : $comment_id);
  94.  $user_id=mysql_real_escape_string(get_magic_quotes_gpc() ? stripslashes($user_id) : $user_id);
  95.  
  96.  $query="UPDATE komentarze SET tytul='". $title ."', tresc='". $body ."' WHERE id_komentarza='". $comment_id ."' AND uzytkownik_id='". $user_id ."'";
  97.  $result=$connection->query($query);
  98.  if (DB::isError($result)) {
  99.   die ('Nie można wykonać zapytania do bazy danych'. DB::errorMessage($result));
  100.  }
  101.  echo ('Rekor pomyślnie zaktualizowano. <br />');
  102.  $stop='TRUE';
  103. }
  104. }
  105.  
  106. if (!$stop) {
  107. $post_id=$_GET['id_artykulu'];
  108. $result_row=array('tytul'=>NULL, 'tresc'=>NULL, 'id_komentarza'=>NULL);
  109. $comments[]=$result_row;
  110.  
  111. $smarty->assign('id_artykulu', htmlentities($post_id));
  112. $smarty->assign('komentarze', $comments);
  113. $smarty->assign('akcja', 'dodawanie');
  114. $smarty->display('comment_form.tpl');
  115. }
  116.  
  117. if ($found_error) {
  118. $post_id=$_POST['id_artykulu'];
  119. $result_row=array('tytul'=>htmlentities($title), 'tresc'=>htmlentities($body), 'id_komentarza'=>htmlentities($id_komentarza));
  120. $comments[]=$result_row;
  121. $smarty->assign('akcja', htmlentities($action));
  122. $smarty->assign('id_artykulu', htmlentities($post_id));
  123. $smarty->assign('komentarze', $comments);
  124. $smarty->display('comment_form.tpl');
  125. }
  126.  
  127. $smarty->display('footer.tpl');
  128.  
  129. ?>

Czekam na Wasza pomoc winksmiley.jpg
krowal
Jeśli przesyłasz dane w urlu to zamiast $post_id=$_POST['id_artykulu']; powinno być $post_id=$_GET['id_artykulu'];
apup
Wlasnie zmienialem z post na get i nic to nie dalo ;(
nospor
  1. <?php
  2. print_r($_GET);
  3. ?>

Co widzisz? Jest tam id artykulu? Wiec cos gdzies mieszasz juz z tymi danymi. Troche wloz w to wlasnej inicjatywy, sprawdzaj krok po kroku co gdzie masz.
apup
POST zamienilem na GET. Nic to nie zmienilo winksmiley.jpg Pobawlilem sie z print_r i oto wyniki.

po wpisaniu
  1. <?php
  2. print_r ($_GET);
  3. ?>

do kazdej funkcji z osobna otrzymalem taki wynik.

w sekscji:
usuwanie
  1. <?php
  2. Array ([id_komentarza]=>51 [akcja]=> uwuwanie)
  3. ?>

w sekcji:
dodwane
  1. <?php
  2. ?>

w sekcji:
edytowanie
  1. <?php
  2. ?>

Wedlug mnie zmienne nie sa aktywne w seksji SUBMIT.

Gdy do URL wprowadze 'recznie' zmienna skrypt pobiera ją z URL bez problemu. Jednak gdy ustawie automatyczne pobieranie zmiennej nie jest pobierana.

Link aktywujacy dodawanie komentarza (automatyczny):
  1. <a href="modify_comment.php?id_artykulu={$artykuly[mysec].id_artykulu}&akcja=dodawanie">Dodaj komentarz</a>

Link aktywujacy dodawane komentarza (reczny):
  1. <a href="modify_comment.php?id_artykulu=1&akcja=dodawanie">Dodaj komentarz</a>


Dopiero sie ucze takze. Lepiej pozno niz wcale.
Prosze o wyrozumialosc.

Jezeli chcielibyscie jakies inne pliki, czy calosc moich wypocin moge podeslac.
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.