Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]coś nie gra
Forum PHP.pl > Forum > Przedszkole
azbest22
witam.
na początek plik
db.php
  1. <?
  2. function db_connect($dbon)
  3. {
  4. $host = 'localhost';
  5. $user = 'root';
  6. $password = 'krasnal';
  7. $dbName = 'testowa';
  8. if ($dbon ==1)
  9. {
  10. mysql_connect($host, $user, $password) or die(mysql_error());
  11. }
  12. else
  13. {
  14. }
  15. }
  16. ?>

który wczytuje gdy chce na stronie się połączyć lub rozłączyć z bazą.
wszystko działało dopuki nie zrobiłem sobie funkcji w pliku
poprawnosc.php
  1. <?
  2. include "db.php";
  3.  
  4. function userjest($xyz)
  5. {
  6. db_connect($dbon == 1);
  7.  
  8. if ($xyz = 1)
  9. {
  10. $userexist = mysql_num_rows(mysql_query("SELECT `id` FROM gracze where login = '$login'"));
  11. $mailexist = mysql_num_rows(mysql_query("SELECT `id` FROM gracze where email = '$email'"));
  12. if (($mailexist == 0)&&($userexist == 0))
  13. {
  14. $sql = "INSERT into gracze VALUES ('','$login','$haslo','$email','1','1','1','1')";
  15. db_connect($dbon = 0);
  16. echo "<hr>rejestracja przeprowadzona poprawnie<hr>";
  17. echo "<a href=\"index.html\">zaloguj się</a><hr>";
  18. }
  19. else
  20. {
  21. db_connect($dbon = 0);
  22. echo "<p>gracz o takim samym loginie lub adresie istnieje!<br><a href=\"reg_form.php\">Powrót do formularza</a></p>";
  23. }
  24. }
  25. else
  26. {
  27. $userexist = mysql_num_rows(mysql_query("SELECT `id` FROM gracze where login = '$login'"));
  28. $hasloexist = mysql_num_rows(mysql_query("SELECT `id` FROM gracze where haslo = '$haslo'"));
  29. if ($userexist == 0)
  30. {
  31. echo "nie ma takiego użytkownika<br>
  32. <a href=\"index.html\">zaloguj się ponownie</a><br>
  33. lub przejdź do strony
  34. <a href=\"reg_form.php\">rejestracji</a>";
  35. db_connect($dbon = 0);
  36. }
  37. else
  38. {
  39. if ($userexist == $hasloexist)
  40. {
  41. $graczid = mysql_query("select 'id' from 'gracze' where login = '$login'");//przypisanie wartości zmiennej do sesji
  42. db_connect($dbon = 0);
  43. echo "zalogowano poprawnie <br> <h1>witaj $login</h1> <br>";
  44. include "gra.php";
  45. }
  46. else
  47. {
  48. db_connect($dbon = 0);
  49. echo "niepoprawne dane <br>
  50. <a href=\"index.html\">zaloguj się ponownie</a><br>
  51. lub przejdź do strony
  52. <a href=\"reg_form.php\">rejestracji</a>";
  53. }
  54. }
  55. }
  56. }
  57.  
  58.  
  59. ?>

do której wyciągnąłem elementy rejestracji i logowania ze stron do tego przeznaczonych
i odpowiednio do rejestracji
reg.php
  1. <?
  2. include "poprawnosc.php";
  3. $login;
  4. $haslo;
  5. $haslo2;
  6. $email;
  7. $akcept;
  8. isset($_POST["wyslij"]);
  9. $login = ($_POST["login"]);
  10. $haslo = ($_POST["haslo"]);
  11. $haslo2 = ($_POST["haslo2"]);
  12. $email = ($_POST["email"]);
  13. $regulamin = ($_POST["regulamin"]);
  14. if (($haslo == $haslo2)&&($regulamin=="on"))
  15. {
  16. userjest($xyz = 1);
  17. }
  18. else
  19. {
  20. echo "<p>niepoprawne dane!<br><a href=\"reg_form.php\">Powrót do formularza</a></p>";
  21. }
  22. ?>


i do logowania
login.php
  1. <?
  2. session_start();//start sesji
  3. session_register("$graczid");//rejestracja sesji
  4. include ("poprawnosc.php");
  5. $login;
  6. $haslo;
  7.  
  8. isset($_POST["wyslij"]);
  9. $login = ($_POST["login"]);
  10. $haslo = ($_POST["haslo"]);
  11. userjest($xyz = 2);
  12.  
  13.  
  14.  
  15.  
  16. ?>

i jak już mówiłem dopuki elementy funkcji porawnosc były porozkładane po pikach z logiem i rejestracją i do tych plików był includowany plik db.php to wszystko było pięknie ale jak zmieniłem na to co teraz to zasypuje mnie błędami.
Cytat
Warning: mysql_close(): no MySQL-Link resource supplied in c:\usr\krasnal\www\azbest22\db.php on line 15

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\usr\krasnal\www\azbest22\poprawnosc.php on line 10

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\usr\krasnal\www\azbest22\poprawnosc.php on line 11
Nie wybrano żadnej bazy danych

walcze z tym już kilka godzin doszukując się co mogłem przegapić więc proszę o pomoc.
everth
Poprawnosc.php linia 6 - co to jest?
  1. db_connect($dbon == 1);

Rada - niech db_connect odpowiada tylko za łączenie z bazą. Jak będzie robiła jeszcze kilka dodatkowych rzeczy naraz, to gwarantuje ci że powalczysz ze skryptem dłużej niż kilka godzin.
AlexDeLarge
Cytat(everth @ 17.09.2010, 18:52:26 ) *
Poprawnosc.php linia 6 - co to jest?
  1. db_connect($dbon == 1);


To jest przekazanie jako parametr $dbon (widziany w funkcji łączącej) wartości porównania $dbon z 1, czyli prawdopodobnie: false. Jako, że false !== a nawet != od 1, to połączenie z bazą próbuje być zamknięte. No, a że nie jest otwarte, to mamy warning. Oczywiście piszę to wszystko autorowi tematu. Proponuję doszkolić się z widoczności (zasięgu) zmiennych, typów zmiennych i na początek może wystarczy.
azbest22
  1. db_connect($dbon == 1);

o to właśnie chodziło
miało być
  1. db_connect($dbon = 1);
Ramzaa
ja pragnę tylko dodać, że nie stosujemy już znacznika <?, tylko <?php, bo w wersji php 6.0, ten znacznik nie będzie już w ogóle obsługiwany.
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.