Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Wysłanie zmiennych formularza do danej części skryptu w tym samym pliku
Time
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 29.02.2012

Ostrzeżenie: (0%)
-----


Bawię się z php i powoli coś się tworzy, lecz napotkałem problem.
Napisałem (za pomocą tutoriali) skrypt rejestracji i logowania + profil użytkownika. Profil użytkownika zmieniłem tak by wyświetlana była napisana przez niego wiadomość/notka/komentarz... jeszcze nie wiem za bardzo co (IMG:style_emoticons/default/smile.gif) Następnie dodałem edycję owej notki pobierając zmienne dla danego ID usera. Klikając w link 'Edytuj" przechodzi do pliku 'edit.php' wyświetlają się pola tekstowe, wypełniam je i klikam submita, teraz powinna nastąpić aktualizacja rekordów za pomocą

  1. $zapytanie = "UPDATE `tabela` SET `title` = '$title',`tresc` = '$tresc' WHERE `id`= '$id'";
  2. $wykonaj = "mysql_query('$zapytanie')";


i właśnie w tutaj zacząłem się gubić. Gdy klikam submita, zamiast zaktualizować rekordy przekierowuje mnie w taki sposób edit.php?id=

Plik edit.php wygląda tak:

  1. <?php
  2.  
  3. require 'header.php'; // Dołącz początkowy kod HTML
  4. require 'config.php'; // Dołącz plik konfiguracyjny i połączenie z bazą
  5. require_once 'user.class.php';
  6.  
  7. $title = $_POST['tytul'];
  8. $tresc = $_POST['tekst'];
  9. $id = $_GET['id'];
  10.  
  11. $zapytanie = "UPDATE `users` SET `title` = '$title',`tresc` = '$tresc' WHERE `id`= '$id'";
  12. $wykonaj = "mysql_query('$zapytanie')";
  13.  
  14. /**
  15.  * Tylko dla zalogowanych użytkowników
  16.  */
  17. if (!user::isLogged()) {
  18. echo '<p class="error">Przykro nam, ale ta strona jest dostępna tylko dla zalogowanych użytkowników.</p>';
  19. }
  20.  
  21. else {
  22. $id = $_GET['id'];
  23.  
  24. /**
  25.   * Sprawdź czy użytkownik o podanym ID istnieje
  26.   */
  27. $userExist = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM users WHERE id = '$id'"));
  28.  
  29. // Użytkownik nie istnieje
  30. if ($userExist[0] == 0) {
  31. die ('<p>Przykro nam, ale użytkownik o podanym identyfikatorze nie istnieje.</p>');
  32. }
  33.  
  34. /**
  35.   * Użytkownik istnieje, tak więc pokaż pola edycji
  36.   */
  37.  
  38. echo '<form action="edit.php?id='.$note['id'].'" method="post">
  39. <table>
  40. <tr>
  41. <td>
  42. Tytuł:
  43. </td>
  44. <td>
  45. <input type="text" name="tytul" />
  46. </td>
  47. </tr>
  48. <tr>
  49. <td>
  50. Treść:
  51. </td>
  52. <td>
  53. <input type="text" name="tekst" />
  54. </td>
  55. </tr>
  56. </table>
  57. <input type="submit" value="Edytuj" />
  58. </form>';
  59.  
  60. }
  61.  
  62. require 'footer.php'; // Dołącz końcowy kod HTML
  63.  
  64. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Time
post
Post #2





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 29.02.2012

Ostrzeżenie: (0%)
-----


Faktycznie (IMG:style_emoticons/default/smile.gif) czytałem o tym wczoraj ale wypadło z głowy. Wszystko działa jak powinno,
Dzięki wielkie.

jednak nie działa jak powinno ;/
Owszem baza jest teraz uaktualniana, ale gdy wejdę do edycji i nie zaktualizuję tylko cofnę się do strony profilu by podejrzeć notatkę, jest pusta.
Wychodzi na to że przechodząc do edit.php od razu wysyła formularz, który jest pusty.

Mógłby ktoś poprawić kod i wytłumaczyć o co kaman?

Albo podać jakiś sposób na wstawienie zmiennej jako domyślną wartość pola tekstowego tak by formularz przesłał już istniejącą wartość zamiast pustych zmiennych.

edit.php:
  1. <?php
  2. /**
  3.  * Profil
  4.  * @author Sobak
  5.  * @package User System
  6.  */
  7.  
  8. require 'header.php'; // Dołącz początkowy kod HTML
  9. require 'config.php'; // Dołącz plik konfiguracyjny i połączenie z bazą
  10. require_once 'user.class.php';
  11.  
  12.  
  13.  
  14. /**
  15.  * Tylko dla zalogowanych użytkowników
  16.  */
  17. if (!user::isLogged()) {
  18. echo '<p class="error">Przykro nam, ale ta strona jest dostępna tylko dla zalogowanych użytkowników.</p>';
  19. }
  20.  
  21. else {
  22. $id = $_GET['id'];
  23.  
  24. /**
  25.   * Sprawdź czy użytkownik o podanym ID istnieje
  26.   */
  27. $userExist = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM users WHERE id = '$id'"));
  28.  
  29. // Użytkownik nie istnieje
  30. if ($userExist[0] == 0) {
  31. die ('<p>Przykro nam, ale użytkownik o podanym identyfikatorze nie istnieje.</p>');
  32. }
  33.  
  34. /**
  35.   * Użytkownik istnieje, tak więc pokaż jego profil
  36.   */
  37. $title = $_POST['tytul'];
  38. $tresc = $_POST['tekst'];
  39. $id = $_GET['id'];
  40.  
  41. $zapytanie = "UPDATE `users` SET `title` = '$title',`tresc` = '$tresc' WHERE `id`= '$id'";
  42. $wykonaj = mysql_query($zapytanie);
  43.  
  44. /**
  45.  * Jeżeli formularz został wysłany
  46.  */
  47.  
  48. if ( isset ( $_POST['tekst'] ) ) {
  49.  
  50. // wykonaj czynność
  51. header("Refresh:3; URL=http://www.tenebra.hdsi.pl/ind/");
  52. echo 'Notatka zapisana';
  53.  
  54. }
  55.  
  56. echo '<form action="edit.php?id='.$id.'" method="post">
  57. <table>
  58. <tr>
  59. <td>
  60. Tytuł:
  61. </td>
  62. <td>
  63. <input type="text" name="tytul" value="" />
  64. </td>
  65. </tr>
  66. <tr>
  67. <td>
  68. Treść:
  69. </td>
  70. <td>
  71. <textarea name="tekst" cols="15" rows="5"></textarea>
  72. </td>
  73. </tr>
  74. </table>
  75. <input type="submit" value="Edytuj" />
  76. </form>
  77. <a href="index.php">Strona Główna</a>';
  78.  
  79.  
  80. require 'footer.php'; // Dołącz końcowy kod HTML
  81. }
  82. ?>
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 - 21:31