2012-06-03 8 views
14

Powiel możliwe:
How can I tell PHP to dump exceptions as raw text instead of HTML?Jak zrobić błędów PHP w tekście zamiast HTML

Próbuję zrobić skrypt logowania przy użyciu C# i PHP i mam zamiar sprzedawać go jako instalacja za pomocą jednego kliknięcia, więc potrzebuję go, aby była odporna na błędy. Celowo próbuję popełnić błędy w konfiguracji, ale gdy tylko mój skrypt php popełni błąd, ma blok HTML z błędem, gdy chcę tylko uzyskać ciąg znaków (patrz obraz).

Herezje kod używam

// We will now set up our MySQL database login. The values should be self-explanatory. 
$sqlhost = "localhost"; 
$sqlusername = "unity"; 
$sqlpassword = "mypass123"; 

//we will now connect to our database 
$sqlcon = mysql_connect($sqlhost, $sqlusername, $sqlpassword) or die("Could not connect to database: " . mysql_error()); 

Kiedy mam wszystkie informacje, które działa w porządku, a reszta kod działa bez błędu. Ale jeśli moje hasło jest błędne lub użytkownik nie ma dostępu, a następnie uzyskać ten błąd

Error I am trying to avoid

Jestem pobierane informacje z tej strony i musi być wysłana jako tekst planu mają być wyświetlane prawidłowo. Mam tu na myśli to, że wszelkie znaczniki HTML, takie jak <div>, <br>, <a>, itp. I po prostu ogólnie sprawia, że ​​wynik tekstowy wygląda źle. Chcę, żeby po prostu wyświetlał tekst na dole strony, ponieważ rejestruje sam błąd. Nie potrzebuję go do logowania dwa razy i nie potrzebuję tego, aby był sformatowany fantazyjnie. Potrzebuję go w czytelnym tekście, aby w razie błędu mógł wysłać do mnie krótki tekst, a ja będę mógł przejść przez tę poprawkę.

+5

Czy przeczytałeś instrukcję dotyczącą raportowania błędów i wyświetlania? Odpowiedź na twoje pytanie można znaleźć tam. Nie używaj też mysql_ * do uzyskiwania dostępu do bazy danych, są stare, ledwo konserwowane i przestarzałe pod wszystkimi nazwami. – GordonM

+1

Nie, nie mam, nie jestem duży w PHP, głównie gram C# i potrzebowałem prostego pliku zaplecza PHP. Zrobiłem kilka wyszukiwania google na chwilę i nie zwrócił nic poza całkowicie wyłączając raportowanie błędów, co nie było najlepszym pomysłem. I co powinienem użyć zamiast mysql_ *? czy jest coś nowego/lepszego do połączenia z bazą danych? –

+0

@ViperCode Prawdopodobnie szukasz ustawienia display_errors. Jeśli opcja display_errors jest wyłączona, błędy będą nadal rejestrowane. Jest też html_errors (chociaż twój zrzut wygląda jak błąd HTML generowany przez xdebug, więc być może musisz znaleźć odpowiednie ustawienie xdebug). – Corbin

Odpowiedz

29

czy PHP wyświetla zwykłego tekstu lub html błędów zależy od php.ini configuration:

html_errorsboolean

Wyłącz znaczników HTML w wiadomościach o błędach. Nowy format błędów HTML tworzy klikalne komunikaty, które kierują użytkownika do strony opisującej błąd lub funkcję powodującą błąd. Odwołania te są zależne od docref_root i docref_ext.

Ustawienie to settable jako PHP_INI_ALL, co oznacza dowolne miejsce, w tym scenariusz. Aby wyłączyć błędy html, należy wykonać na początku skryptu:

+0

Dziękuję, dokładnie to, czego szukałem! –

+0

Działa to również doskonale, gdy włączone jest xdebug. Poprzednio nazywałam 'xdebug_disable()', ale nie jest to już konieczne z tą zmienną. – hargobind

Powiązane problemy