• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Pokazywanie danych logowania do MySQL przy błędzie połączenia

Object Storage Arubacloud
+1 głos
294 wizyt
pytanie zadane 7 lutego 2023 w SQL, bazy danych przez zbiku25 Bywalec (2,940 p.)

Łączę się z bazą danych przy pomocy następującej funkcji

mysqli_connect($host, $user, $pass, $db_name)

W przypadku gdy z jakiegoś powodu nie mogę połączyć się z bazą wyskakuje komunikat o błędzie i zawiera on dane logowania do bazy.

Czy możecie doradzić jakiś efektywny sposób aby taki komunikat w przypadku błędu się nie pojawiał? Uczę się na języku proceduralnym nie obiektowym.

Pozdrawiam,

2 odpowiedzi

+2 głosów
odpowiedź 7 lutego 2023 przez wizarddos Nałogowiec (25,930 p.)
wybrane 8 lutego 2023 przez zbiku25
 
Najlepsza
Możesz zmienić wyświetlanie wszystkich błędów w pliku konfiguracyjnym PHP (php.ini)

Wystarczy znaleźć linijkę displayErrors (czy jakoś tak) i podmienić on na off

Ewentualnie jeżeli chcesz wyciszyć tylko błędy połączenia - napisz obsługę błędów z użyciem mysqli_connect_errno()

Nie polecam tego robić na serwerze deweloperskim, bo te błędy się przydają. Za to na produkcji jak najbardziej nie powinno się wyświetlać błędów
komentarz 7 lutego 2023 przez zbiku25 Bywalec (2,940 p.)

Dziękuję. 

Napisałem obsługę błędu jak poniżej

public function connect()
			{
				mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
				try
				{
					$conn=mysqli_connect($this->db_host, $this->db_user, $this->db_password, $this->db_name);
					
					if( mysqli_connect_errno!=0)
					{
						throw new Exception(mysqli_connect_errno);
					}
				}
				catch(Exception $e)
				{
					echo "Błąd połączenia";
				}
			}

Zależało mi aby wyświetlił się wyłącznie napis "Błąd połączenia". Oprócz niego wyświetla się jeszcze 

Warning: mysqli_connect(): php_network_getaddresses: getaddrinfo for localost failed: Nieznany host. in C:\xampp\htdocs\akor\classes\class_database.php on line 16

Czy jest możliwość aby ten Warning się nie wyświetlał używając jedynie kodu (bez zmiany php.ini ?

1
komentarz 7 lutego 2023 przez overcq Pasjonat (21,710 p.)

display_errors oraz ini_set()

0 głosów
odpowiedź 7 lutego 2023 przez reaktywny Nałogowiec (40,990 p.)
Chodzi o PHP? Nie pomogę, ale trochę się dziwie że komunikat błędu zawiera te dane. Może jest jakiś debug mode, czy coś podobnego? Generalnie dane dostępowe umieszcza się w zmiennych środowiskowych.
komentarz 7 lutego 2023 przez zbiku25 Bywalec (2,940 p.)
tak PHP, dzięki za odzew
komentarz 7 lutego 2023 przez reaktywny Nałogowiec (40,990 p.)
NIe ma za co, wizarddos podał rozwiązanie na tacy.

Podobne pytania

0 głosów
0 odpowiedzi 191 wizyt
0 głosów
2 odpowiedzi 1,778 wizyt
0 głosów
1 odpowiedź 202 wizyt
pytanie zadane 22 maja 2020 w SQL, bazy danych przez Greeenone Pasjonat (16,100 p.)

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...