Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Pomija zmienną
Forum PHP.pl > Forum > Przedszkole
damiank94
Witam

Mam taki problem. Kod poniżej niby działa. Jednakże z jakiegoś powodu pomija mi zawartość zmiennej 'tytuł'. Autor jest przechwytywany z sesji, a treść jest podawana w formularzu. Obie te funkcje działają. Podpowie ktoś coś ?


CODE
<?php
session_start();
include("polacz.php");

$Tytul = $_POST['Tytul'];
$Autor = $_SESSION['usr_name'];
$Tresc = $_POST['Tresc'];

$sql = "INSERT INTO artykuly (autor, tytul, tresc) values ('".$Autor."','".$Tytul."','".$Tresc."')";

if ($conn->query($sql) === TRUE)
{
echo "Pomyślnie dodano nowe rekordy";
}
else
{
echo "Błąd: " . $sql . "<br>" . $conn->error;
}
$conn->close();

header("Location: index.php");
?>


EDIT. Temat do usunięcia. Coś mu odwaliło i zmienna się zbugowała. Teraz działa
com
słowo klucz sql injection, poczytaj to ważne i brakuje Ci tu jakiegoś ifa który sprawdza czy wysłałeś tego posta wgl
damiank94
To teraz problem z innej beczki (chociaż o to samo się rozbija).

  1. <?php
  2. include("polacz.php");
  3.  
  4. if(isset($_GET['id']))
  5. {
  6. $id=$_GET['id'];
  7. if(isset($_POST['update']))
  8. {
  9. $Tytul=$_POST['nazwa'];
  10. $Tresc=$_POST['tresc'];
  11. $sql = "UPDATE Artykuly SET nazwa='$Tytul', tresc='$Tresc' WHERE id='$id'"
  12. or die();
  13. if($sql)
  14. {
  15. $msg="Successfully Updated!!";
  16. header('Location:edytuj.php');
  17. }
  18. }
  19. }
  20. ?>
  21. <?php
  22. if(isset($_GET['id']))
  23. {
  24. $id=$_GET['id'];
  25. $sql = "SELECT * FROM Artykuly WHERE id='$id'";
  26. $result = $conn->query($sql);
  27. {
  28. while($row = $result->fetch_assoc())
  29. $Tytul=$row['nazwa'];
  30. $Tresc=$row['tresc'];
  31. }
  32. }
  33. ?>
  34. <!DOCTYPE html>
  35. <html>
  36. <head>
  37. <meta charset="utf-8">
  38. <title>Edytuj</title>
  39. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  40. <link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
  41. <link rel="stylesheet" type="text/css" href="css/custom.css">
  42. </head>
  43. <body>
  44. <div class="container-fluid">
  45. <div class="nav_second">
  46. <div class="jumbotron">
  47. <div class="row marginbot-80">
  48. <div class="col-md-8 col-md-offset-2">
  49. <form action="" method="post">
  50. <font color="grey">
  51. <div class="form-group">
  52. <label for="Tytul">Tytuł:</label>
  53. <input type="text" class="form-control" name=nazwa required placeholder="Enter your name" value="<?php echo $Tytul; ?>" id="inputid" />
  54. </div>
  55. <div class="form-group">
  56. <label for="Tresc">Treść:</label>
  57. <textarea input type="text" class="form-control" name=tresc rows="30" required placeholder="Enter your name" value="<?php echo $Tresc; ?>" id="inputid" /></textarea>
  58. </div>
  59. </font>
  60. <input type="submit" name="update" value="Update" id="inputid1" />
  61. </form>
  62. </div>
  63. </form>
  64. </div>
  65. </div>
  66. </div>
  67. </div>
  68. </body>
  69. </html>


Mianowicie, serwer mówi mi że zmienna $Tytul z textboxu jest niezdefiniowana w momencie próby aktualizowania danych. Jednak ta sama zmienna jest pobierana z bazy i umieszczana w textboxie.
Drugi problem to zmienna $Tresc z textboxa. W ogóle jej nie widzi tzn nie wczytuje jej pomimo iż taka zmienna jest w bazie.

Wskaże ktoś błąd ?
nospor
1) Kod php ma byc w BBCODE PHP a nie CODE

2) Po update przekierowujesz do edytuj.php bez id

3) To jest dobre
  1. $sql = "UPDATE Artykuly SET nazwa='$Tytul', tresc='$Tresc' WHERE id='$id'"
  2. or die();
  3. if($sql)


Napisanie zapytania nie wykonuje go. By cos poszlo do bazy,to trzeba to zapytanie wykonac
damiank94
Nospor, jest button który ma wykonać update do bazy
nospor
Jak to ma sie do tego co napisalem? Nijak. Przeczytaj jeszcze raz

Napisales zapytanie
$sql = "UPDATE Artykuly SET nazwa='$Tytul', tresc='$Tresc' WHERE id='$id'"
ale nigdzie go nie wywolujesz.
Rownie dobrze mozesz na lodowce napisac liste zakupow i czekac az sama sie zrobi.
damiank94
if(isset($_POST['update']))
{
$Tytul=$_POST['nazwa'];
$Tresc=$_POST['tresc'];
$sql = "UPDATE Artykuly SET nazwa='$Tytul', tresc='$Tresc' WHERE id='$id'"

<input type="submit" name="update" value="Update" id="inputid1" />

Dalej jesteś pewien że nie jest nigdzie wywoływane ?
Pyton_000
Tak jesteśmy w 100% pewni że się nie wykonuje smile.gif A przynajmniej na pewno nie w tym kawałku co pokazałeś.

BTW to też nie działa tak jak tego chciałeś wink.gif

Kod
    $result = $conn->query($sql);
    {
    while($row = $result->fetch_assoc())
        $Tytul=$row['nazwa'];
        $Tresc=$row['tresc'];
    }
damiank94
CODE
  1. <?php
  2. include("polacz.php");
  3.  
  4. if(isset($_POST['update']))
  5. {
  6. $id = $_GET['id'];
  7. $Tytul = $_POST['nazwa'];
  8. $Tresc = $_POST['tresc'];
  9. $sql = "UPDATE Artykuly SET nazwa='$Tytul', tresc='$Tresc' WHERE id='$id'";
  10. if ($conn->query($sql) === TRUE)
  11. {
  12. echo "Pomyślnie zaktualizowano";
  13. }
  14. else
  15. {
  16. echo "Błąd: " . $sql . "<br>" . $conn->error;
  17. }
  18. $conn->close();
  19. header("Location: zarzadzajartykulami.php");
  20. }
  21. ?>
  22. <?php
  23. include("polacz.php");
  24. if(isset($_GET['id']))
  25. {
  26. $id=$_GET['id'];
  27. $sql = "SELECT * FROM Artykuly WHERE id='$id'";
  28. $result = $conn->query($sql);
  29. {
  30. while($row = $result->fetch_assoc())
  31. {
  32. $Tytul = $row["nazwa"];
  33. $Tresc = $row["tresc"];
  34. }
  35. }
  36. }
  37. ?>


Aktualnie wygląda to tak i działa smile.gif

Odnosząc się do linijek 54 i 58 z wcześniejszego kodu. Problem jednak jest z tym, że do "textarea" nie chce wczytać danych z bazy. Jeżeli jest tylko "input" to działa. Czyli jeżeli kod dla "Tresc" wygląda tak samo jak dla "tytul" to działa. Jeżeli "Tresc" jest w "textboxie" to nie wczytuje (albo nie wyświetla).
Pyton_000
facepalmxd.gif http://lmgtfy.com/?q=html+textarea+value

No widzisz, to co teraz pokazałeś zaziała, to co wcześniej pokazałeś NIE.
damiank94
Facepalm zasłużony tongue.gif. Dzięki, działa biggrin.gif
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.