Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z kodem php
Forum PHP.pl > Forum > Przedszkole
stasiu2901
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.  
nospor
Sprawdz logi
stasiu2901
Z jakiegoś powodu nie mogę sprawdzić logów w panelu. Tak jakby ich tam nie było
Tomplus
A inna strona Ci działa na tym serwerze?
Najlepiej taka która nie łączy się z bazą.
stasiu2901
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".
markuz
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.
stasiu2901
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
nospor
No wlasnie, nie widzisz bo nie ma. tongue.gif

W linii 127 kodu z pierwszego posta radosnie wykomentowales te klamre
stasiu2901
Dobra, już znalazłem klamrę
Kshyhoo
Pierwszy błąd: linia 46, potem za if (isset($potwierdz)) { powyłączane linie kodu mieszają...
nospor
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
stasiu2901
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
markuz
  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ąć?
stasiu2901
Właśnie nie wiem jak te id przechwycić od odpowiedniego elementu.
Tamta linijka jest bez sensu.
markuz
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.
stasiu2901
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
Tomplus
@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.
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.