Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] dolaczanie plikow zew.z funkcjami
Forum PHP.pl > Forum > Przedszkole
masofcer
Witam
nie bede zamieszczal poki co kodu,ale mam problem: jezeli umieszcze w jednym pliku formularz logowania do bazy mysql, i kod php ktory to wykonuje, wszystko jest OK. Kiedy rozbije to na pliki zawierajace poszczegolne funkcje (wydaje mi sie ze jest to ten sam kod co w jednym pliku) to wywala mi blad:

"Warning: mysqli_query() expects parameter 1 to be mysqli, null given in C:\xampp\htdocs\temp\temp\baza.php on line 27"
fiszol
Boisz się że ktoś Ci ten kod ukradnie?^^ Bez obaw, w php jest masa doskonałych darmowych roziwązań.... kraść nie trzeba guitar.gif

A raczej podejrzewam ewentualność drugą - dopiero zaczynasz i się trochę wstydzisz? jeśli tak to nie ma czego, to jest forum dla początkujących, nikt tutaj się śmiać z Ciebie nie będzie.

A odnośnie Twojego błędu - mysqli_query() brakuje atrybutów więc najprawdopodbniej po rozbiciu jednego kodu na kilka plików czegoś nie z includowałeś.

I moja ulubiona fraza na tym forum: "Jasnowidzów tutaj nie ma" 100% pomocy nie otrzymasz nie podając kodu.
masofcer
spoko! wstydliwy nie jestem biggrin.gif oto kod

calosc w jednym pliku:
  1. <?php
  2. $user = $_POST['user'];
  3. $pass = $_POST['haslo'];
  4.  
  5.  
  6. if (!isset($_POST['user'])&& !isset($_POST['haslo']))
  7. {
  8. //tu jest formularz...
  9. }
  10. else
  11. {
  12. $mysql=mysqli_connect('localhost','projekt','haslo');
  13.  
  14. if (!$mysql)
  15. {
  16. echo 'blad polaczenia';
  17. }
  18. $baza=mysqli_select_db($mysql,'baza');
  19.  
  20. if(!$baza)
  21. {
  22. echo 'blad wybrania bazy';
  23. }
  24.  
  25. $zapytanie= "select count(*) from user where user='$user' and pass='$pass' ";
  26.  
  27. $wynik=mysqli_query($mysql,$zapytanie);
  28.  
  29. if (!$wynik)
  30. {
  31. echo 'nie mozna wykonac zapytania';
  32. }
  33.  
  34. $wiersz=mysqli_fetch_row($wynik);
  35. $ile = $wiersz[0];
  36.  
  37. if ($ile>0)
  38. {
  39. echo 'jestes zalogowany';
  40. }
  41. else
  42. {
  43. echo 'logowanie nie powiodlo sie';
  44. }
  45. }
  46. ?>


teraz poszczeglne pliki :

baza.php
  1. <?php
  2. function lacz()
  3. {
  4. $mysql=mysqli_connect('localhost','projekt','haslo');
  5.  
  6. if (!$mysql)
  7. {
  8. echo 'blad polaczenia';
  9. }
  10.  
  11. $baza=mysqli_select_db($mysql,'filmy');
  12.  
  13. if(!$baza)
  14. {
  15. echo 'blad wybrania bazy';
  16. }
  17. }
  18.  
  19. function loguj($user,$pass)
  20. {
  21. $lacz=lacz();
  22. $zapytanie= "select count(*) from user where user='$user' and pass='$pass'";
  23.  
  24. $wynik=mysqli_query($mysql,$zapytanie);
  25.  
  26. if (!$wynik)
  27. {
  28. echo 'nie mozna wykonac zapytania';
  29. }
  30.  
  31. $wiersz=mysqli_fetch_row($wynik);
  32. $ile = $wiersz[0];
  33.  
  34. if ($ile>0)
  35. {
  36. echo 'jestes zalogowany';
  37. }
  38. else
  39. {
  40. echo 'logowanie nie powiodlo sie';
  41. }
  42. }
  43. ?>


plik index.php

  1. <?php
  2. require('baza.php');
  3. require('wyswietl.php');  //tu jest funkcja wyswietl_form_log a w niej formularz 
  4.  //logowania ktorego juz nie zamieszczam
  5.  
  6. $user = $_POST['user'];
  7. $pass = $_POST['haslo'];
  8.  
  9. if (!isset($_POST['user'])&& !isset($_POST['haslo']))
  10. {
  11. wyswietl_form_log();
  12. }
  13. else
  14. {
  15. loguj($user,$pass);
  16. }
  17. ?>
abc667
  1. <?php
  2. ...
  3.  
  4. function lacz()
  5. {
  6. global $mysql;
  7. $mysql=mysqli_connect('localhost','projekt','haslo');
  8.  
  9. ...
  10. ?>
masofcer
niestety dalej ten sam blad...
abc667
no to
  1. <?php
  2. function lacz()
  3. {
  4. $mysql=mysqli_connect('localhost','projekt','haslo');
  5.  
  6. if (!$mysql)
  7. {
  8. echo 'blad polaczenia';
  9. }
  10.  
  11. $baza=mysqli_select_db($mysql,'filmy');
  12.  
  13. if(!$baza)
  14. {
  15. echo 'blad wybrania bazy';
  16. }
  17. return $mysql;
  18. }
  19.  
  20. function loguj($user,$pass)
  21. {
  22. $mysql=lacz();
  23. $zapytanie= "select count(*) from user where user='$user' and pass='$pass'";
  24.  
  25. $wynik=mysqli_query($mysql,$zapytanie);
  26.  
  27. if (!$wynik)
  28. {
  29. echo 'nie mozna wykonac zapytania';
  30. }
  31.  
  32. $wiersz=mysqli_fetch_row($wynik);
  33. $ile = $wiersz[0];
  34.  
  35. if ($ile>0)
  36. {
  37. echo 'jestes zalogowany';
  38. }
  39. else
  40. {
  41. echo 'logowanie nie powiodlo sie';
  42. }
  43. }
  44. ?>
masofcer
dalej jest cos nie tak z mysqli_query...:/
abc667
co to znaczy coś nie tak?
masofcer
wywala blad:
"Warning: mysqli_query() expects parameter 1 to be mysqli, null given in C:\xampp\htdocs\temp\temp\baza.php on line 27"

Ponawiam prozbe o pomoc!!!

wie ktos co mam zle?questionmark.gif
mrjozo
Spróbuj najpierw ustanowić połączenie w funkcji loguj i zobacz czy działa:

  1. <?php
  2. function loguj($user,$pass)
  3. {
  4. $baza = mysqli_connect("localhost", "user", "haslo", "nazwabazy");
  5.  
  6.  if (mysqli_connect_errno()) {
  7. printf("Blad polaczenia: %sn", mysqli_connect_error());
  8. exit();
  9. }
  10. $zapytanie= "select count(*) from user where user='$user' and pass='$pass'";
  11.  
  12. $wynik=mysqli_query($baza,$zapytanie);
  13.  
  14. if (!$wynik)
  15. {
  16. echo 'nie mozna wykonac zapytania';
  17. }
  18.  
  19. $wiersz=mysqli_fetch_row($wynik);
  20. $ile = $wiersz[0];
  21.  
  22. if ($ile>0)
  23. {
  24. echo 'jestes zalogowany';
  25. }
  26. else
  27. {
  28. echo 'logowanie nie powiodlo sie';
  29. }
  30. }
  31. ?>
masofcer
juz wiem co jest nie tak...funkcja lacz() nie zwraca zadnej wartosci, dalem // return $baza; // i smiga smile.gif
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.