Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Skrypt działa prawidłowo na localhost a na serwerze już nie
Forum PHP.pl > Forum > Przedszkole
piecia200
Witam, problem taki jak w temacie. Po wrzuceniu strony na serwer skrypt 'głupieje' natomiast na localhost działa.
Skrypt nie wyrzuca żadnych błędów. Dodaje ogłoszenie do bazy majac kod, błąd polega na tym, że czy kod jest w bazie czy nie i tak dodaje ogłoszenie. A jeżeli kod w bazie jest to nie usuwa rekordu z kodem po dodanym ogłoszeniu
  1. <?php
  2.  
  3. if ( isset ( $_POST['stanowisko'] ) ) {
  4.  
  5. include("sql_lacz.php");
  6.  
  7. if (!$lacz)
  8.  
  9. {
  10. echo "<center>Baza danych chwilowo niedostepna. Przepraszamy.</center>";
  11. }
  12.  
  13. elseif(!@mysql_select_db($db_name, $lacz))
  14. {
  15. echo "<center>Baza danych chwilowo niedostepna. Przepraszamy.</center>";
  16. }
  17.  
  18. else
  19. {
  20.  
  21. if(!empty($_POST['firma'] ) )
  22. {
  23. $firma = ucfirst(htmlspecialchars($_POST['firma']));
  24. }
  25. else {
  26. $firma = "brak danych";
  27. }
  28.  
  29. $stanowisko = htmlspecialchars(strtoupper($_POST['stanowisko']));
  30. $miejscowosc = ucfirst(htmlspecialchars($_POST['miejscowosc']));
  31. $wyroznienie = $_POST['wyroznienie'];
  32. $czas = $_POST['czas'];
  33. $branza = htmlspecialchars($_POST['branza']);
  34. $link = htmlspecialchars($_POST['link']);
  35. $tresc = addslashes($_POST['tresc']);
  36. $kod = htmlspecialchars($_POST['kod']);
  37. $data = date("d-m-Y H:i:s");
  38. $date = strtotime ($data);
  39.  
  40.  
  41.  
  42.  
  43. if(!$stanowisko || !$miejscowosc || !$branza || !$kod || (!$link and !$tresc))
  44. {
  45. echo "<center><b>Pola oznaczone gwiazdką są obowiązkowe.</b></center><br>";
  46. }
  47. else
  48. {
  49. $zapytanie=mysql_query("select COUNT(id) from weryfikacja where kod='$kod' and wyroznienie='$wyroznienie' and czas='$czas'");
  50. $aa = mysql_num_rows($zapytanie);
  51.  
  52. if($aa == 1)
  53. {
  54.  
  55. if($czas==0) {$koniec=$date+86400;}
  56. elseif($czas==5) {$koniec=$date+604800;}
  57. else {$koniec=$date+1209600;}
  58.  
  59. $wyszlo = mysql_query("INSERT INTO dane SET id='', stanowisko='$stanowisko', firma='$firma', branza='$branza', miejscowosc='$miejscowosc', wyroznienie='$wyroznienie', link='$link', tresc='$tresc', data='$data', date='$date', koniec='$koniec'");
  60. if($wyszlo)
  61. {
  62. $delete = mysql_query("DELETE * FROM weryfikacja WHERE kod='$kod'");
  63. echo "<center><b>Dziękujemy za dodanie ogłoszenia do naszej bazy.</b></center>";
  64. }
  65. else
  66. {
  67. echo "Wystąpił błąd podczas połączenia z bazą";
  68. }
  69. }
  70. else
  71. {
  72. echo "Kod nieprawidłowy, spróbuj ponownie";
  73. }
  74. }
  75.  
  76. }
  77. }
  78.  
  79. ?>
Daimos
1. Dodając przed dowolną funkcją @ - nie dziw się, że nie ma błędów,
2. do zapoznania się: error_reporting i exceptions,

więc, włącz najpierw błędy, do tego możesz korzystać z try catch i powoli dojdziesz do tego, co jest nie tak.
piecia200
@ występuje tylko w jednym miejscu, przed 'mysql_select_db' po jej usunięciu również na wyświetla żadnych błędów na serwerze zewnętrznym jak i localhoscie.
Wydaje mi się, że to nie w tym tkwi błąd, bo skrypt łączy się z bazą. Ma ktoś może jeszcze jakieś wskazówki?
werdan
Wywal count() z zapytania, a powinno byc OK

  1. $zapytanie=mysql_query("select id from weryfikacja where kod='$kod' and wyroznienie='$wyroznienie' and czas='$czas'");
piecia200
Cytat(werdan @ 18.01.2015, 21:37:00 ) *
Wywal count() z zapytania, a powinno byc OK

  1. $zapytanie=mysql_query("select id from weryfikacja where kod='$kod' and wyroznienie='$wyroznienie' and czas='$czas'");


Dzięki rozwiązuje to troche problem, aby teraz dodać ogłoszenie kod musi być właściwy. Jednak w dalszym ciągu nie usuwa kodu z bazy po jego użyciu.
werdan
  1. $wyszlo = mysql_query("INSERT INTO dane SET id='', stanowisko='$stanowisko', firma='$firma', branza='$branza', miejscowosc='$miejscowosc', wyroznienie='$wyroznienie', link='$link', tresc='$tresc', data='$data', date='$date', koniec='$koniec'");


Zaraz po tej linii dodaj:

  1. var_dump((bool) $wyszlo, $wyszlo);die();


i wklej tu co sie pojawilo.
piecia200
bool(true) bool(true)
werdan
  1. mysql_query("DELETE FROM weryfikacja WHERE kod='$kod'")


To porawne zapytanie.
piecia200
Działa, kod jest usuwany z bazy.
Jednak zauważyłem, że nie w każdym przypadku.

Dany kod ma w bazie przypisane wartosci wyroznienie oraz czas. Po wpisaniu kodu xxx ktory ma wartosc wyroznienia=1 oraz czasu=0. Skrypt wyświetla "Kod nieprawidłowy, spróbuj ponownie" a zmienna $aa zwraca wartość 0. Tak jakby po wysłaniu zapytania do bazy nie znaleziono rekordu spełniającego warunki.
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.