Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z kodem php, Kod php gry Państwa Miasta
stasiu2901
post 3.05.2017, 16:22:46
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 3.05.2017

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


Mam problem z tym kodem. Działało wcześniej, a teraz wyrzuca error 500. Oto kod:
  1. <?php session_start();
  2. require_once('db.php');
  3. ?>
  4.  
  5. <html xmlns="http://www.w3.org/1999/xhtml">
  6. <head>
  7. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  8. <link href="css/style.css" rel="stylesheet" type="text/css" />
  9. <title>Państwa Miasta</title>
  10. <meta name="description" content="Gra Państwa Miasta" />
  11. <meta name="keywords" content="" />
  12. </head>
  13.  
  14. <a href="stan.php">Sprawdź wyniki</a><br/>
  15.  
  16. <body>
  17.  
  18. <?php if ($_SESSION['auth'] == TRUE) {
  19.  
  20. echo 'ID sesji: ';
  21. $id_sesji = session_id();
  22. echo '<br/>';
  23.  
  24. $connection = @mysql_connect('sql200.epizy.com', '', '')
  25. or die('Brak połączenia z serwerem MySQL');
  26. $db = @mysql_select_db('', $connection)
  27. or die('Nie mogę połączyć się z bazą danych');
  28.  
  29.  
  30. echo 'Wylosowana litera to: ';
  31. echo $Litera;
  32.  
  33. $wynik = mysql_query("SELECT * FROM litera")
  34. or die('Błąd zapytania');
  35.  
  36. /*
  37. wyświetlamy wyniki, sprawdzamy,
  38. czy zapytanie zwróciło wartość większą od 0
  39. */
  40. if(mysql_num_rows($wynik) > 0) {
  41. while($r = mysql_fetch_assoc($wynik)) {
  42. echo "<tr>";
  43. echo "<td>".$r['litera']."</td>";
  44. echo "<td>";"
  45.  
  46. </td>";
  47. echo "</tr>";
  48. }
  49. echo "</table>";
  50. }
  51.  
  52.  
  53.  
  54.  
  55. echo '<br/>';
  56.  
  57. ?>
  58. <form action="hide.php" method="post">
  59. Państwo:<br />
  60. <input type="text" name="panstwo" /><br />
  61. Miasto:<br />
  62. <input type="text" name="miasto" /><br />
  63. Rzecz:<br />
  64. <input type="text" name="rzecz" /><br />
  65. Roślina:<br />
  66. <input type="text" name="roslina" /><br />
  67. Zwierzę:<br />
  68. <input type="text" name="zwierze" /><br />
  69. <input type="submit" name="potwierdz" value="Potwierdź" />
  70. </form>
  71.  
  72.  
  73.  
  74.  
  75. <?php
  76.  
  77.  
  78.  
  79. // odbieramy dane z formularza
  80. $panstwo = $_POST['panstwo'];
  81. $miasto = $_POST['miasto'];
  82. $rzecz = $_POST['rzecz'];
  83. $roslina = $_POST['roslina'];
  84. $zwierze = $_POST['zwierze'];
  85.  
  86. if($panstwo and $miasto) {
  87.  
  88. // łączymy się z bazą danych
  89.  
  90. // dodajemy rekord do bazy
  91. $ins = @mysql_query("INSERT INTO odpowiedzi SET zwierze='$zwierze', panstwo='$panstwo', miasto='$miasto', rzecz='$rzecz', roslina='$roslina', sesja_id='$id_sesji'");
  92.  
  93. if($ins) echo "Rekord został dodany poprawnie";
  94. else echo "Błąd nie udało się dodać nowego rekordu";
  95.  
  96.  
  97. }
  98.  
  99.  
  100. $potwierdz = $_POST['potwierdz'];
  101. if (isset($potwierdz)) {
  102.  
  103.  
  104. $wynik = mysql_query("SELECT * FROM odpowiedzi")
  105. or die('Błąd zapytania');
  106.  
  107. /*
  108. wyświetlamy wyniki, sprawdzamy,
  109. czy zapytanie zwróciło wartość większą od 0
  110. */
  111. if(mysql_num_rows($wynik) > 0) {
  112. /* jeżeli wynik jest pozytywny, to wyświetlamy dane */
  113. echo "<table cellpadding=\"2\" border=1>";
  114. /* while($r = mysql_fetch_assoc($wynik)) {
  115.   echo "<tr>";
  116.   echo "<td>".$r['sesja_id']."</td>";
  117.   echo "<td>".$r['rzecz']."</td>";
  118.   echo "<td>".$r['roslina']."</td>";
  119.   echo "<td>";"
  120.  
  121.   </td>";
  122.   echo "</tr>";
  123.   }
  124.   echo "</table>";
  125. }
  126. */
  127.  
  128.  
  129.  
  130. mysql_close($connection);
  131. }
  132.  
  133.  
  134. echo '<a href="index.php?logout">Wyloguj się</a>';
  135. }
  136. else {
  137. echo '<meta http-equiv="refresh" content="1; URL=index.php">';
  138. echo '<p style="padding-top:10px;color:white";><strong>Próba nieautoryzowanego dostępu...</strong><br />trwa przenoszenie do formularza logowania</p>';
  139. }
  140. ?>
  141.  
  142. </body>
  143.  
  144. </html>
  145.  
Go to the top of the page
+Quote Post
nospor
post 3.05.2017, 16:39:17
Post #2





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




Sprawdz logi


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

"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
stasiu2901
post 3.05.2017, 17:49:22
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 3.05.2017

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


Z jakiegoś powodu nie mogę sprawdzić logów w panelu. Tak jakby ich tam nie było
Go to the top of the page
+Quote Post
Tomplus
post 3.05.2017, 18:07:31
Post #4





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

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


A inna strona Ci działa na tym serwerze?
Najlepiej taka która nie łączy się z bazą.
Go to the top of the page
+Quote Post
stasiu2901
post 3.05.2017, 18:10:41
Post #5





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 3.05.2017

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


Działają. I to nawet te łączące się z bazą. Wyciąłem nazwę i hasło z kodu żebyście nie hackowali smile.gif

Jak wstukałem ten kod w tester PHP to wyszło mi "unexpected end of file".
Go to the top of the page
+Quote Post
markuz
post 3.05.2017, 18:14:38
Post #6





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

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


Nie zamykasz jednej klamry.. W notatniku to piszesz? Polecam zainwestować czas w pobranie chociaż Notepad++.
Hasło i host nie jest potrzebne do "hackowania" Twojej strony, wystarczy, że podasz nam tutaj link - Twój skrypt z bezpieczeństwem ma niewiele wspólnego.

Ten post edytował markuz 3.05.2017, 18:19:07


--------------------
Go to the top of the page
+Quote Post
stasiu2901
post 3.05.2017, 18:37:31
Post #7





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 3.05.2017

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


Cytat(markuz @ 3.05.2017, 19:14:38 ) *
Hasło i host nie jest potrzebne do "hackowania" Twojej strony, wystarczy, że podasz nam tutaj link - Twój skrypt z bezpieczeństwem ma niewiele wspólnego.

Dane do MySQL mogą troche namieszać, ale to nie jest program dla banku.

Wkleiłem to do DroidEdit i nie widzę tej klamry
Go to the top of the page
+Quote Post
nospor
post 3.05.2017, 18:39:53
Post #8





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




No wlasnie, nie widzisz bo nie ma. tongue.gif

W linii 127 kodu z pierwszego posta radosnie wykomentowales te klamre


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

"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
stasiu2901
post 3.05.2017, 18:40:59
Post #9





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 3.05.2017

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


Dobra, już znalazłem klamrę
Go to the top of the page
+Quote Post
Kshyhoo
post 3.05.2017, 18:41:37
Post #10





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Pierwszy błąd: linia 46, potem za if (isset($potwierdz)) { powyłączane linie kodu mieszają...


--------------------
Go to the top of the page
+Quote Post
nospor
post 3.05.2017, 18:45:45
Post #11





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




Cytat
Działało wcześniej, a teraz wyrzuca error 500
A na przyszlosc precyzuj swoje wypowiedzi, np:
Dzialalo, ale potem wlozylem w two swoje paluchy i przestalo dzialac a ja nie pamietam co zmienilem.

tongue.gif


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

"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
stasiu2901
post 4.05.2017, 14:21:41
Post #12





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 3.05.2017

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


Dzięki za pomoc

Mam jeszcze takie pytanie. Jak w tym kodzie zrobić, aby tylko jedno (to kliknięte) się usuwało a nie wszystko?
  1. <head>
  2. <script language=javascript>
  3. // tworzymy zmienna
  4. var object = false;
  5.  
  6. // tworzymy obiekt XMLHttpRequest (dla IE jest troche inaczej, stad funkcja warunkowa)
  7. if (window.XMLHttpRequest) object = new XMLHttpRequest();
  8. else if (window.ActiveXObject) object = new ActiveXObject("Microsoft.XMLHTTP");
  9.  
  10. // ponizsza funkcja pobiera dane ze wskazanego zrodla (pliku lub skryptu php) do wskazanego
  11. // DIVa poprzez obiekt XMLHttpRequest
  12. function getData(dataSource, divID)
  13. {
  14. // kontynuuje wylacznie gdy obiekt nie jest zajety
  15. if (object.readyState==4 || object.readyState==0)
  16. {
  17. // tworzy zmienna odpowiadajaca konkretnemu obiektowi na stronie
  18. var obj = document.getElementById(divID);
  19.  
  20. // czyta z pliku lub wykonuje skrypt
  21. object.open("GET", dataSource);
  22.  
  23. // definiuje metode obslugi odpowiedzi serwera
  24. object.onreadystatechange = function()
  25. {
  26. // kontynuuje jesli transmisja zostala zakonczona powodzeniem
  27. if (object.readyState == 4 && object.status == 200)
  28. obj.innerHTML= object.responseText;
  29. }
  30. // wysyla zadanie do serwera
  31. object.send(null);
  32. }
  33. }
  34. function odswiezaj()
  35. {
  36. getData('stan.php','mojDIVIK');
  37. setTimeout("odswiezaj()", 1000);
  38. }
  39.  
  40. </script>
  41. </head>
  42. <div id="mojDIVIK">
  43. <?php
  44. $connection = @mysql_connect('sql200.epizy.com', '', '')
  45. or die('Brak połączenia z serwerem MySQL');
  46. $db = @mysql_select_db('', $connection)
  47. or die('Nie mogę połączyć się z bazą danych');
  48.  
  49. $wynik = mysql_query("SELECT * FROM odpowiedzi")
  50. or die('Błąd zapytania');
  51.  
  52. /*
  53. wyświetlamy wyniki, sprawdzamy,
  54. czy zapytanie zwróciło wartość większą od 0
  55. */
  56. if(mysql_num_rows($wynik) > 0) {
  57. /* jeżeli wynik jest pozytywny, to wyświetlamy dane */
  58. /* echo "<table cellpadding=\"2\" border=1>"; */
  59. while($r = mysql_fetch_assoc($wynik)) {
  60. echo "<tr>";
  61. echo "<td>".$r['sesja_id']."</td>";
  62. echo '<br/>';
  63. echo "<td>".$r['id']."</td>";
  64. echo '<br/>';
  65. echo "Państwo - ";
  66. echo "<td>".$r['panstwo']."</td>";
  67. echo '<br/>';
  68. echo "Miasto - ";
  69. echo "<td>".$r['miasto']."</td>";
  70. echo '<br/>';
  71. echo "Rzecz - ";
  72. echo "<td>".$r['rzecz']."</td>";
  73. echo '<br/>';
  74. echo "Roślina - ";
  75. echo "<td>".$r['roslina']."</td>";
  76. echo '<br/>';
  77. echo "Zwierzę - ";
  78. echo "<td>".$r['zwierze']."</td>";
  79. ?>
  80. <form action="stan.php" method="post">
  81. <input type="submit" name="cl1" value="DEL">
  82. </form>
  83. <?php
  84. echo '<br/>';
  85. echo '<br/>';
  86. echo '<br/>';
  87. echo "<td>";"
  88.  
  89. </td>";
  90. echo "</tr>";
  91. }
  92. echo "</table>";
  93. }
  94.  
  95. $cl1= $_POST['cl1'];
  96. if (isset($cl1))
  97. {
  98. mysql_query("DELETE FROM odpowiedzi WHERE id=id");
  99. }
  100. ?>
  101. </div>
  102. <script language=javascript>
  103. odswiezaj();
  104. </script>


Poza tym to kod działa
Go to the top of the page
+Quote Post
markuz
post 4.05.2017, 15:10:31
Post #13





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

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


  1. DELETE FROM odpowiedzi WHERE id=id

Czytaj - Usuń wszystkie odpowiedzi gdzie id jest równe id (czyli zawsze id jest równe id tak samo jak 1 = 1)
Może zamiast tego id wstaw tam jakąś zmienną przechowywującą id które chcesz usunąć?


--------------------
Go to the top of the page
+Quote Post
stasiu2901
post 4.05.2017, 15:14:35
Post #14





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 3.05.2017

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


Właśnie nie wiem jak te id przechwycić od odpowiedniego elementu.
Tamta linijka jest bez sensu.
Go to the top of the page
+Quote Post
markuz
post 4.05.2017, 15:44:34
Post #15





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

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


Ok. Widzę, że dane wysyłasz formularzem w tym miejsu:
  1. <form action="stan.php" method="post">
  2. <input type="submit" name="cl1" value="DEL">
  3. </form>

Podmień to na:
  1. <form action="stan.php" method="post">
  2. <input type="hidden" name="id' value="<?= $r['id'] ?>">
  3. <input type="submit" name="cl1" value="DEL">
  4. </form>

A potem ten dolny kod na:
  1. $cl1= $_POST['cl1'];
  2. if (isset($cl1))
  3. {
  4. mysql_query("DELETE FROM odpowiedzi WHERE id=". ((int) $_POST['id']));
  5. }


Powinno działać ale nie sprawdzałem więc mogą być błędy.

Ten post edytował markuz 4.05.2017, 15:45:11


--------------------
Go to the top of the page
+Quote Post
stasiu2901
post 4.05.2017, 16:23:26
Post #16





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 3.05.2017

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


Przyciski nie działają, nie kasują. Ale dzięki

A tak ogólnie to ma ktoś pomysł jak zrobić punkowanie odpowiedzi?

Automat oparty o słownik raczej odpada. Skrypt musiałby sprawdzać czy odpowiedzi nie są jednakowe i czy w ogóle są. Jeszcze nie wymyśliłem jak to zrobić aby się nie narobić smile.gif
Go to the top of the page
+Quote Post
Tomplus
post 4.05.2017, 16:33:48
Post #17





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

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


@Stasiu
Jak się uczysz przez praktykę, to się ucz porządnie, a nie połebkach.

Poczytaj o HTML, szczególnie o tagach i atrybutach formularzy.
Bliżej zaznajom się z tablicami i bazami danych. Zrób sobie na papierze algorytm działania skryptu, bądź skryptów. Nikt za Ciebie kodu nie napisze.
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: 24.06.2025 - 08:03