Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]$_GET, $_POST cos mi tu nie gra
achill
post
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 28.08.2009
Skąd: wertykalne przez większość dnia

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


witam
mam taki problem

mam baze danych z ktorej wyciagam tekst- jako szary uzytkownik moge sobie go przeczytac jako administrator moge go edytowac ( i tu cos nie gra) bo powinno przeniesc mnie na druga strone gdzie moge go edytowac i zapisac zmiany - na strone przenosi ale zapisu nie moge zrobic. czy ktos moze mi pomoc rozwiklac te zagadke - bo mecze ten kod od jakis 3 godzin
index.php

  1. <?php session_start(); ?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <?php
  5. require_once 'header.php';
  6. require_once 'conn.php';
  7. ?>
  8. <div id="text">
  9. <div id="text1">
  10. <h1 class="h1text">
  11. <?php
  12. echo ' Witam na mojej stronie ';
  13. if (isset($_SESSION['user']))
  14. {
  15. echo $_SESSION['user'] ;
  16. }
  17. echo '!'
  18. ?>
  19. </h1>
  20. <?php
  21. $sql = mysql_query("SELECT text FROM teksty WHERE text_id='1' ");
  22. $row = mysql_fetch_array($sql);
  23. echo $row['text'];
  24. ?>
  25. <br>
  26. <?php
  27. if (isset($_SESSION['access_lvl'])
  28. and $_SESSION['access_lvl'] == 2)
  29. {
  30. ?>
  31. <form method="post" action="transact-articles.php">
  32. <input type= "submit" class= "submit" name="action" value="Edytuj"/>
  33. <input type="hidden" name="text_id" value="<?php echo $_GET['text_id']; ?> ">
  34. </form>
  35. <?php
  36. }
  37. ?>
  38. </p>
  39. </div>
  40. <div id="line1">
  41. </div>
  42. <div id="line2">
  43. </div>
  44. </div>
  45. <?php
  46. require_once 'footer.php';
  47. ?>


a teraz
edit.php


  1. <?php session_start(); ?>
  2. <?php
  3. require_once 'conn.php';
  4.  
  5. $text = '';
  6. $text_id = '';
  7.  
  8. if (isset($_GET['a'])
  9. and $_GET['a'] == 'Edytuj'
  10. and isset($_GET['text_id'])
  11. and $_GET['text_id'])
  12. {
  13. $sql = "SELECT text FROM teksty " .
  14. "WHERE text_id=" . $_GET['text_id'];
  15. $result = mysql_query($sql) or die(mysql_error());
  16. $row = mysql_fetch_array($result);
  17. $text = $row['text'];
  18. $text_id = $_GET['text_id'];
  19. }
  20. require_once 'header.php';
  21. ?>
  22. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  23. <html xmlns="http://www.w3.org/1999/xhtml">
  24.  
  25.  
  26. <div id="text">
  27. <div id="text1"><h1 class="h1text">
  28. <?php
  29. echo ' Edycja tekstu ';
  30. ?>
  31. </h1>
  32. <img src="linehorizontal.png" class="linia">
  33.  
  34. <form method="post" action="transact-articles.php">
  35. <p>
  36. <textarea class="text" name="text" rows="30" cols="40">
  37. <?php
  38. </textarea>
  39. <?php
  40. echo '<input type="hidden" name="text_id" value="' . $text_id . "\">\n";
  41.  
  42. if ($text_id) {
  43. echo '<input type="submit" class="submit" name="action" ' .
  44. "value=\"Zapisz\">\n";
  45. }
  46. ?>
  47. </p>
  48. </form>
  49.  
  50. </div>
  51. <div id="line1">
  52. </div>
  53. <div id="line2">
  54. </div>
  55. </div>
  56. <?php
  57. require_once 'footer.php';
  58. ?>

no i jeszcze pliczek od transakcji
  1. <?php
  2. require_once 'conn.php';
  3. require_once 'http.php';
  4.  
  5.  
  6. if (isset($_REQUEST['action']))
  7. {
  8. switch($_REQUEST['action'])
  9. {
  10. case 'Edytuj';
  11. redirect('edit.php?a=edit&text_id=' . $_POST['text_id']);
  12. break;
  13.  
  14. case 'Zapisz';
  15. if (isset($_POST['text'])
  16. and isset($_POST['text_id']))
  17. {
  18. $sql = "UPDATE teksty " .
  19. "SET text='" . $_POST['text'] . "' " .
  20. "WHERE text_id=" . $_POST['text_id'];
  21.  
  22. mysql_query($sql) or die('i cant save changes ' . mysql_error());
  23. }
  24. redirect('index.php');
  25. break;
  26. }
  27. }
  28. ?>


podsumowujac:
1-laduje text z bazy
2- gdy jestem zalogowany jako admin moge go edytowac (submit edit przenosi mnie na edit.php) jesli nie to tylko przeczytac.
3 - powinno umozliwic mi edycje ale niestety nie mam mozliwosci zapisu a na dodatek wyglada to tak jakby nie zaladowal wskazanej komorki

ps.

moim zdaniem to albo cos zle przesylam wartosc text_id z index.php albo zle ją pobieram do edit.php. (bo nie dosc ze nie za bardzo jest co zmieniac to na dodatek przycisk zapisz jest uwarunkowany od tego czy jest pobrana wartosc text_id a przycisku nie ma - blagam niech mi ktos wskaze gdzie jest błąd i na czym on polega)

PS. Nie chce gotowcow.




dokonałem malej modyfikacji w edit.php

<?php
echo htmlspecialchars($text);
echo $row['text'];
?>

no i wniosek jest jeden mam racje: nie wysyla tych danych/lub ich nie pobiera - bo nic sie nie wyswietla.

teraz pytanie co tu jest grane? nie moze pobrac tych danych - tak sie zastanawialem bo to chyba tak jak w temacie $_POST i $_GET nie przesyla text_id z index.php.

ps. hmmm a może powinienem okreslic zmienne w edit.php:
$text= '';
$text_id= '';


ale to chyba i tak nic nie da bo nie przesyla do tej strony wartosci text_id

no właśnie -mam pewien pomysł...
zaraz wracam


no niestety: myslałem, że może jak wpiszę wartości do wyslania w transact... w case "Edytuj" jako session_start() to pojdzie ale to nie byl najlepszy pomysl

Ten post edytował achill 22.09.2009, 08:37:48
Powód edycji: [Ociu]: proprawiłem bbCode
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
achill
post
Post #2





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 28.08.2009
Skąd: wertykalne przez większość dnia

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


ups

no tak nic dziwnego ze nie dziala tym bardziej $_GET jest tu nie na miejscu

No dobra ale skoro juz o tym mowa bo to i tak nie rozwiaze problemu bo to strona startowa - jak mam nadac index.php?text_id?
po wpisaniu adresu laduje mi index.php i innej opcji raczej nie ma albo przynajmniej o tym nie czytalem. to nie moze byc zaden
a w tym co mowisz zmienna jest w url i bedzie dawala znac co zamiescic na stronie - to nie wyswietli tekstu bo niby skad bedzie mial to wiedziec, ktory? - krotko mowiac i tak zle i tak niedobrze

jest pewna opcja tak sie caly czas zastanawiam czy da tak rade to zrobic:
w tabeli teksty mam nastepujace kolumny
text_id, rowname, text

krotko mowiac
text_id, text wiadomo
rowname - mialobyc na poczatku tylko do mojej wewnetrzenj informacji ktory tekst na ktorej stronie ma sie wyswietlac (w phpadminie zebym sie nie pogubil i nie pomylil co i gdzie) ale widze ze bedzie mozna z tego korzystac -wiec generalnie juz sama w sobie jest rozpisana tak, ze tylko jej uzywac bez koniecznosci modyfikacji rekordow zreszta sam ocen

czyli w tym wypadku wiersz wyglada tak
text_id=1, rowname=index, text=ąśżźć
text_id=2, rowname=podstrona, text=łóćą

wiec moze zrobic skrypt ktory bedzie wywolywal tekst na zasadzie
select text, text_id from teksty where rowname="index"
sprobuje jak mowie z tym rowname bo to jak narazie jedyny sposob na zdeklarowanie zmiennych na stronie powitalnej ktory mi przychodzi do glowy.
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: 15.10.2025 - 02:53