Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PHP przekierowanie - gdy brak połączenia MySQL
Forum PHP.pl > Forum > PHP
karol512
Cześć,
Próbuje ustawić przekierowanie w pliku PHP gdy jest urwane połączenie z bazą danych.

Mam stronę/y (też na WordPress) - gdy jest wykonywany globalny backup na hostingu to na wszystkich stronach Wordpress wyskakuje: "Błąd nawiązywania połączenia z bazą danych" a w przypadku tej aktualnej strony, na której siedzę to wyskakują 3 linie kodu - żadnego komunikatu.

Więc dodałem:

  1.  
  2. function connect()
  3. {
  4. $this->connection = mysqli_connect(dbhost,dbuser,dbpassword,dbname) or die ("could not connect to mysql");
  5. }


Teraz w przypadku braku połączenia z bazą danych wyskakuje powyższy tekst oraz 1 linia kodu:

  1. Warning: mysqli_connect(): (HY000/1045): Access denied for user 'NazwaBazyMySQL'@'IP?' (using password: YES) in /home/*******/domains/********/public_html/admin/function/mysqldb.php on line 47




Przechodząc do problemu: Istnieje jakiś sposób na przekierowanie do strony .HTML?

Stronę HTML chciałbym ładnie ogarnąć CSS'em aby user się nie przestraszył, że strona nie działa.

Taka strona miałaby automatycznie przekierowanie po 1 min na stronę index.php - niby pętla przekierowań by się stworzyła ale gdyby user miałby otwartą kartę przeglądarki to od razu po połączeniu widziałby działającą stronę.



Różnych sposobów próbowałem... Możecie doradzić jak stworzyć takie przekierowanie do innego pliku .html w tym samym katalogu?
lukaskolista
  1. header('Location: example.com/ladna-strona.html');


Nie wiem czemu forum na siłę podmienia adresy na linki htmlowe nawet w kodzie php, dlatego dopisz sobie sam http:// do adresu w przekierowaniu.
karol512
Hej,
Dzięki za odpowiedź na temat.

Próbowałem już tym sposobem.
wyskakuje błąd:

  1. Parse error: syntax error, unexpected 'header' (T_STRING) in /home/*******/domains/********/public_html/admin/function/mysqldb.php on line 48



EDIT:

A jak wpisuje:

  1. function connect()
  2. {
  3. $this->connection = mysqli_connect(dbhost,dbuser,dbpassword,dbname) or header('Location: example.com/ladna-strona.html');
  4. }



To następuje przekierowanie.

A jak jest z "die" to jest powyższy błąd "Parse error: syntax error, unexpected 'header'...."
lukaskolista
Nie możesz tak zrobić, bo nawet w przypadku poprawnego połączenia się z bazą danych skrypt przerwie wykonywanie, bo masz tam exit;
Użyj obiektowego odpowiednika:
  1. $mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');
  2.  
  3. if ($mysqli->connect_error) {
  4. header('Location: example.com/ladna-strona.html');
  5. }

Zanim to zrobisz, przeanalizuj przykład z dokumentacji http://php.net/manual/pl/mysqli.construct....struct-examples zwracając uwagę na informacje odnośnie wersji PHP, bo powyższy kod nie zadziała na php <= 5.3.0 (nie wiem, czy "until" w opisie zawiera 5.3 czy też nie, ale pewnie korzystasz z wyższej wersji)
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.