Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Pomija zmienną
damiank94
post 26.04.2017, 23:06:48
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 9.04.2017

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


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

Ten post edytował damiank94 26.04.2017, 23:18:11
Go to the top of the page
+Quote Post
com
post 27.04.2017, 00:03:11
Post #2





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


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
Go to the top of the page
+Quote Post
damiank94
post 27.04.2017, 12:58:23
Post #3





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 9.04.2017

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


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 ?

Ten post edytował damiank94 27.04.2017, 13:09:41
Go to the top of the page
+Quote Post
nospor
post 27.04.2017, 13:06:05
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
damiank94
post 27.04.2017, 13:10:43
Post #5





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 9.04.2017

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


Nospor, jest button który ma wykonać update do bazy
Go to the top of the page
+Quote Post
nospor
post 27.04.2017, 13:16:00
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
damiank94
post 27.04.2017, 14:28:29
Post #7





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 9.04.2017

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


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 ?

Ten post edytował damiank94 27.04.2017, 14:28:57
Go to the top of the page
+Quote Post
Pyton_000
post 27.04.2017, 15:01:37
Post #8





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


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'];
    }


Ten post edytował Pyton_000 27.04.2017, 15:02:45
Go to the top of the page
+Quote Post
damiank94
post 27.04.2017, 15:07:33
Post #9





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 9.04.2017

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


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).

Ten post edytował damiank94 27.04.2017, 15:10:59
Go to the top of the page
+Quote Post
Pyton_000
post 27.04.2017, 15:09:43
Post #10





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


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.

Ten post edytował Pyton_000 27.04.2017, 15:10:21
Go to the top of the page
+Quote Post
damiank94
post 27.04.2017, 15:13:48
Post #11





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 9.04.2017

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


Facepalm zasłużony tongue.gif. Dzięki, działa biggrin.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 22:07