Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zeruje sie zmienna po wcisnieciu przycisku
Forum PHP.pl > Forum > PHP
fenix.robi
Mam problem, pisze stronke  z kawałami, i przy .../dodaj_kawał.php?uz_id=$uz_id

wysyłam id uzytkownika ktory jest potrzebny do przypisania autora kawału


  1. $create_table = "create table kawaly (
  2.   id INT PRIMARY KEY AUTO_INCREMENT,
  3.   tresc TEXT NOT NULL,  
  4.   ocena INT,  
  5.   uzyt_id INT REFERENCES uzytkownicy(id) )";


formularz :

  1. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
  2. <label>Wpisz tutaj swój kawał:<br />
  3. <textarea name="tresc" rows="10" cols="40" wrap="physical"></textarea></label><br />
  4. <input type="submit" name="submit" value="Wyslij" />
  5. <input type="checkbox" name="zaznacz" value="wartość" /> Akcjeptuje <a href='./regulamin.php'>regulamin.</a>
  6. </form>


fragment odpowadajacy zdarzeniu dodana kawału

  1. <?php
  2. $uz_id=$_GET['uz_id'];
  3. echo $uz_id ;  //wyswietli $uz_id ktory jest pobierany z adresu
  4. if (isset($_POST['submit'])) 
  5.  {
  6.       echo $uz_id ;      //tutaj juz nie wyswietla tak jakby powyzszy warunek kasował tą zmienna :/
  7.      if (!empty($_POST['tresc']))
  8.      {
  9.          if (isset($_POST['zaznacz']))
  10.           {     
  11.                  $tekst = $_POST['tresc'];
  12.                  $dodaj = "INSERT INTO kawaly SET tresc='$tekst', ocena=0, uzyt_id='$uz_id'";  // jak nie wyswietla po warunku tak tutaj nie wprowadza poprawnie id uzytkownika t
  13. lko przypisuje uzyt_id = 0 
  14.     if (mysql_query($dodaj))
  15.   {
  16.   echo "<p>Twoj kawał został dodany</p><br>";
  17.   echo "<p>Nastąpi przekierowanie do strony głownej</p>";
  18.   echo "<META HTTP-EQUIV='Refresh' CONTENT='3; URL=./index.php?uz_id=$uz_id'>";
  19.   } else
  20.   {
  21.   echo "<p>Bład podczas dodawania kawalu </p>" . mysql_error();
  22.   }
  23.    } else
  24.    echo "Niezakceptowałes warunkow regulaminu";
  25.   } else
  26.   echo "W formularzu nie ma tekstu";
  27.   }?>



Chcem aby  ($dodaj = "INSERT INTO kawaly SET tresc='$tekst', ocena=0, uzyt_id='$uz_id'";) prawidłowo wstawiało od tabeli oraz przekierowało wraz z przyjetym $uz_id z wczesniejszej strony na nastepna (echo "<META HTTP-EQUIV='Refresh' CONTENT='3; URL=./index.php?uz_id=$uz_id'>";)

Nie wiem czy kolejność formy przed kodem PHP ma jakies znaczenie, ten jezyk poznaje od 2,5 dni wiec prosze o wyrozumiałość, aha nie mam czasu na wgłebianie sie w sesje, wiem ze tak by było najoptymalniej i bezpieczniej ale powterze nie mam czasu :/ wiec jesli wiecie jak zrobic bez sesji to pomozcie biggrin.gif
f1xer
To będzie totalny offtop za co admina przepraszam, drogi autorze ja też nie znam zbyt dobrze PHP ale mam na tyle rozumu żeby nigdy nie mówić że muszę coś napisać szybko otóż twój "skrypt" ma więcej słabych punktów niż funkcjonalności mówiąc że nie masz czasu żeby wgłębiać się w sesje pokazujesz wszystkim jakim jesteś porządnym i systematycznym człowiekiem, skoro nie chcesz poznać mechanizmów PHP to po co w nim programujesz? lepiej zleć to komuś i ciesz się w miarę bezpiecznym i funkcjonalnym skryptem. A nie pomogę z jednego prostego względu jak dla mnie to ten skrypt trzeba przepisać od nowa i przynajmniej sprawdzać dane jakie przychodzą a ty nie dość że wpisujesz tak jak leci do bazy wszystko to jeszcze używasz nie sprawdzonych parametrów w zapytaniu. 2,5 dnia i już piszesz stronke? dla mnie to ignorancja lepiej potestuj sobie podstawy PHP a później weź się za mysql. Ludzie to że stron o programowaniu jest masa to nie znaczy że można olać systematyczność w nauce języka z hasłem na ustach a tego nie teraz jak będzie potrzebne spytam na forum.
fenix.robi
HEHE co racja to racja, trzeba przyjac na siebie konstuktwna krytyke, za pozno sie za to zabrałem i bach zleciało sie, ale zamiezam sie przysiasc na wakacje, dobra niewazene jednak w tym czasie zdazyłem jednak sie wgłebic w temat sesji i juz poprawiłem swoje kody, i jestem w trakcjie poprawiania błedów, jednak w powyzszym kodzie co byś zmienil zeby wyemilinowac te słabe punkty, zapewne przy $_POST['login'] itp ale na co, a jesli chodzi o mysql to nie rozumiem, bo powiazania są dobre, ale jak znasz lepsze bardziej uzyteczne to czekam biggrin.gif zawsze moznasie czegos nauczyc
P.S. teraz $uz_id nie pobieram z linku, tylko $uz_id=$_SESSION['id'];
k3nsei
W google wpisz Sql Injection i poszukaj jak się przed tym bronić.
fenix.robi
Cytat(k3nsei @ 25.06.2008, 14:22:22 ) *
W google wpisz Sql Injection i poszukaj jak się przed tym bronić.

 oki poszukam, narazie walcze z samym soba, ale powyszy bład juz nie wystepuje, teraz poprawiam po sobie yo thx, jak ktos ma pomysły jak ulepszyc to  niech sie nie krepuje biggrin.gif
 
Babcia@Stefa
  1. <?php
  2. $uz_id=mysql_real_escape_string($_GET['uz_id']);
  3. echo $uz_id ; //wyswietli $uz_id ktory jest pobierany z adresu
  4. if (isset($_POST['submit'])) 
  5.  {
  6. echo $uz_id ; //tutaj juz nie wyswietla tak jakby powyzszy warunek kasował tą zmienna :/
  7.  if (!empty($_POST['tresc']))
  8.  {
  9.  if (isset($_POST['zaznacz']))
  10. {  
  11.  $tekst = mysql_real_escape_string($_POST['tresc']);
  12.  $dodaj = "INSERT INTO kawaly SET tresc='$tekst', ocena=0, uzyt_id='$uz_id'"; // jak nie wyswietla po warunku tak tutaj nie wprowadza poprawnie id uzytkownika t
  13. lko przypisuje uzyt_id = 0 
  14. if (mysql_query($dodaj))
  15.  {
  16.  echo "<p>Twoj kawał został dodany</p><br>";
  17.  echo "<p>Nastąpi przekierowanie do strony głownej</p>";
  18.  echo "<META HTTP-EQUIV='Refresh' CONTENT='3; URL=./index.php?uz_id=$uz_id'>";
  19.  } else
  20.  {
  21.  echo "<p>Bład podczas dodawania kawalu </p>" . mysql_error();
  22.  }
  23. } else
  24. echo "Niezakceptowałes warunkow regulaminu";
  25.  } else
  26.  echo "W formularzu nie ma tekstu";
  27.  }?>


Poprawię Ci ten SQL Injection.
Ale radzę Ci, poczytaj trochę o atakach SQL Injection.

Pozdrawiam, WebNuLL
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.