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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <?php require_once 'header.php'; require_once 'conn.php'; ?> <div id="text"> <div id="text1"> <h1 class="h1text"> <?php { } echo '!' ?> </h1> <?php ?> <br> <?php and $_SESSION['access_lvl'] == 2) { ?> <form method="post" action="transact-articles.php"> <input type= "submit" class= "submit" name="action" value="Edytuj"/> </form> <?php } ?> </p> </div> <div id="line1"> </div> <div id="line2"> </div> </div> <?php require_once 'footer.php'; ?>
a teraz
edit.php
<?php require_once 'conn.php'; $text = ''; $text_id = ''; and $_GET['a'] == 'Edytuj' and $_GET['text_id']) { $sql = "SELECT text FROM teksty " . "WHERE text_id=" . $_GET['text_id']; $text = $row['text']; $text_id = $_GET['text_id']; } require_once 'header.php'; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <div id="text"> <div id="text1"><h1 class="h1text"> <?php ?> </h1> <img src="linehorizontal.png" class="linia"> <form method="post" action="transact-articles.php"> <p> <textarea class="text" name="text" rows="30" cols="40"> <?php </textarea> <?php if ($text_id) { "value=\"Zapisz\">\n"; } ?> </p> </form> </div> <div id="line1"> </div> <div id="line2"> </div> </div> <?php require_once 'footer.php'; ?>
no i jeszcze pliczek od transakcji
<?php require_once 'conn.php'; require_once 'http.php'; { switch($_REQUEST['action']) { case 'Edytuj'; redirect('edit.php?a=edit&text_id=' . $_POST['text_id']); break; case 'Zapisz'; { $sql = "UPDATE teksty " . "SET text='" . $_POST['text'] . "' " . "WHERE text_id=" . $_POST['text_id']; } redirect('index.php'); break; } } ?>
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