Lỗi không chạy được php

Không biết bạn đã giải quyết xong chưa.

Cần check các vấn đề sau:
1) XAMPP đã được khởi động Apache chưa? Nó có bảng điều khiển, có nút start/stop cho Apache, MySQL và Filezilla.
2) Nếu file PHP đặt ở mục Volume/Data/wwwroot/sitename/index.php (ngoài thư mục htdocs của XAMPP) thì cần vào Applications/XAMPP/etc/extra/, thêm alias cho site.

Mình đang làm việc rất tốt với XAMPP trên MAC, nếu cần support cứ PM.

Tôi đã cài đặt appserv win32 2.5.8, nhưng khi chạy file .php thì nó cứ hiển thị nguyên cả mã nguồn có trong file ra. Ví dụ file có nội dung: Thì khi chạy nó cũng hiển thị luôn y nguyên , thay vì chỉ có Hello!Đã khởi động Apache start, làm các kiểu, kể cả cài lại appserv rồi nhưng vẫn bị lỗi đó.Bác nào đã gặp lỗi này rồi, chỉ giúp cách khắc phục thế nào nhé.Có một lần cài xong cũng bị như thế này, nhưng không biết mày mò thế nào lại chạy được, bây giờ thì quên rồi.

Bạn đang xem: Không chạy được file php trên localhost

Quote
Registered User
Lỗi này nghe bc quá nhờ, mình chưa gặp, Hi. Bạn xem có chạy đc localhost/phpmyadmin ko?Nếu chạy được thì bạn xem lại coi đó có chắc chắn là .php ko?Mình cũng xài app có làm răng mô.... Hihi
Quote

Lỗi không chạy được php

Xem thêm: Tải Game Ông Trùm Poker Apk Download For Android, Ông Trùm Poker Apk 1

darkedeneurope.com
Tôi đã cài đặt appserv win32 2.5.8, nhưng khi chạy file .php thì nó cứ hiển thị nguyên cả mã nguồn có trong file ra. Ví dụ file có nội dung: Thì khi chạy nó cũng hiển thị luôn y nguyên , thay vì chỉ có Hello!Đã khởi động Apache start, làm các kiểu, kể cả cài lại appserv rồi nhưng vẫn bị lỗi đó.Bác nào đã gặp lỗi này rồi, chỉ giúp cách khắc phục thế nào nhé.Có một lần cài xong cũng bị như thế này, nhưng không biết mày mò thế nào lại chạy được, bây giờ thì quên rồi.
phpmyadmin cũng không chạy được,vì cứ file .php là không được, nó hiện nguyên cả source code ra, trong file đó có gì thì nó hiện nguyên như vậy. File .html thì lại chạy được. Lỗi rất lạ, tôi cài đi cài lại cũng kô được, cài lại cả window dùng version khác cũng lỗi như vậy. đem appserv ra cài trên máy tính khác thì lại chạy được. Có một lần tôi cũng bị lỗi tương tự, sau đó thay đổi gì đó trong file php.ini thì phải, cũng không nhớ nữa, thì sau đó nó chạy được file .php
Chuyển nhanhLập trình webTopSite AreasChuyên mụcHoạt động của darkedeneurope.comHoạt động Off-lineCông tác xã hộiThông báoThảo luận chungCNTT Việt Nam và Quốc tếTin tức CNTTISP - ICP - OSPNghề nghiệpTư vấn - Thị trường & Kiến thức cần biếtTin học căn bảnPhần mềmMáy tính để bànLaptopMobile devicesiPhone & iPadAndroid SmartphonesBlackBerryWindows PhonesĐào tạoHọc về CNTTE-booksChứng chỉ tin học quốc tếCiscoLập trìnhCác ngôn ngữ lập trìnhCác vấn đề khác trong lập trìnhHệ thống - MạngSecurity ZoneInternet & Web & MultimediaLập trình webThiết kế webCLB WebmastersCơ sở dữ liệuDomains/HostingWeb Hosting / DomainHosting SupportGiao lưu - Thư giãnTự giới thiệu - Giao lưuGóc thư giãnNhiếp ảnhTrung Tâm Giao DịchViệc làm CNTT
Bạn không thể tạo chủ đề mớiBạn không thể trả lời bài viếtBạn không thể gửi file đính kèmBạn không thể sửa bài viết của mình

Trong bài này, chúng ta sẽ tìm hiểu về cách xử lý lỗi (error) trong PHP. Để học tốt bài này, các bạn cần đọc lại bài Cài đặt môi trường lập trình Web PHP với XAMPP để biết cách chạy ứng dụng web PHP với XAMPP.

1. Sử dụng hàm die() và exit() trong PHP

1.1. Hàm die() trong PHP

Hàm die() giúp in thông báo lỗi và không làm dừng chương trình. Cú pháp của hàm die():

die($message);

Ví dụ, đoạn code mở file bên dưới sẽ bị lỗi vì không tồn tại file gochocit.txt.

<?php 
$file=fopen("gochocit.txt","r");
?>
Kết quả
Warning: fopen(gochocit.txt): Failed to open stream: No such file or directory in C:\xampp\htdocs\gochocit\index.php on line 2

Chúng ta có thể ngăn lỗi bằng cách kiểm tra file có tồn tại hay không và sử dụng hàm die() để đưa ra thông báo về lỗi.

<?php 
if(!file_exists("gochocit.txt")) {
    die("File is not exist!");
} else {
    $file = fopen("gochocit.txt", "r");
}
?>
Kết quả
File is not exist!

1.2. Hàm exit() trong PHP

Hàm exit() trong PHP giúp xuất một thông báo và kết thúc (thoát) script hiện tại. Cú pháp:

exit(string $status = ?): void
exit(int $status): void

Nếu status là một string thì sẽ in ra thông báo trước khi thoát. Nếu status là kiểu int (từ 0 đến 254) thì sẽ không in gì cả và thoát.

<?php
//exit program normally
exit;
exit();
exit(0);

//exit with an error code
exit(1);
exit(0376); //octal

// exit and print message
$filename = 'gochocit.com';
$file = fopen($filename, 'r')
    or exit("unable to open file ($filename)");
?>

2. Tùy chỉnh xử lý lỗi (custom error handler) trong PHP

Khi một lỗi xảy ra, chúng ta có thể tùy chỉnh xử lý lỗi và thông báo lỗi. Để làm việc này, chúng ta cần định nghĩa một hàm xử lý lỗi với cú pháp như sau:

error_function($error_level, $error_message, $error_file, $error_line, $error_context)

Trong đó,

    • error_function là tên hàm. Các bạn có thể đặt lại tên hàm tùy ý miễn sao đúng theo quy tắt tên định danh (identifier) trong PHP.
    • $error_level: Đây là tham số bắt buộc, phải là kiểu integer. Tham số này là những error constants được định nghĩa trước.
    • $error_message: Đây là tham số bắt buộc. Tham số này thông báo lỗi mà chúng ta muốn in ra.
    • $error_file: Đây là tham số tùy chọn, có thể có hoặc không. Tham số này được sử dụng để xác định tên file mà lỗi xảy ra.
    • $error_line: Đây là tham số tùy chọn, có thể có hoặc không. Tham số này được sử dụng để xác định số dòng mà lỗi xảy ra.
    • $error_context: Đây là tham số tùy chọn, có thể có hoặc không. Tham số này được sử dụng để xác định một mảng bao gồm các biến và giá trị của chúng khi lỗi xảy ra.

Khi lỗi xảy ra, PHP sẽ tự xử lý lỗi theo cách của nó. Chúng ta cần sử dụng hàm set_error_handler() để thiết lập tùy chỉnh xử lý lỗi theo ý của mình. Cú pháp của hàm set_error_handler():

set_error_handler("error_function");

với error_function là tên của hàm xử lý lỗi mà chúng ta tự định nghĩa.

<?php 
//error handler function
function customError($errno, $errstr, $errfile, $errline) {
    echo "<b>Error:</b> [$errno]: $errstr <b>in</b> $errfile <b>at line</b> $errline";
}
//set error handler
set_error_handler("customError");
//This will generate error
echo($test);
?>
Kết quả
Error: [2]: Undefined variable $test in C:\xampp\htdocs\gochocit\index.php at line 9

3. Hàm trigger_error() trong PHP

Có những trường hợp, người dùng nhập những giá trị không hợp lệ. Chúng ta có thể sử dụng hàm trigger_error() để thông báo lỗi.

<?php
$test=-1;
if ($test<0) {
  trigger_error("Value must be 0 or above");
}
?>

Chúng ta cũng có thể sử dụng hàm trigger_error() với tùy chỉnh xử lý lỗi. Ví dụ:

<?php
//error handler function
function customError($errno, $errstr, $errfile, $errline) {
    echo "<b>Error:</b> [$errno]: $errstr <b>in</b> $errfile <b>at line</b> $errline";
    die();
  }
  
  //set error handler
  set_error_handler("customError", E_USER_WARNING);
  
  //trigger error
  $test=2;
  if ($test>=1) {
    trigger_error("Value must be 1 or below", E_USER_WARNING);
  }
?>
Kết quả
Error: [512]: Value must be 1 or below in C:\xampp\htdocs\gochocit\index.php at line 14

4. Hàm error_log() trong PHP

Mặc định, PHP sẽ gửi error logs (có thể gọi là nhật ký lỗi) đến hệ thống ghi log trên server hoặc một file nào đó. Việc này tùy thuộc vào cấu hình error_log trong file php.ini. Nhưng nếu sử dụng hàm error_log() có thể giúp chúng ta gửi error logs đến nơi mà chúng ta cần lưu trữ. Ví dụ, chúng ta muốn ghi error logs đến vào my-errors.log trong PHP.

<?php
//error handler function
function customError($errno, $errstr) {
  echo "<b>Error:</b> [$errno] $errstr<br>";
  echo "Webmaster has been notified";
  //write error log to my-errors.log file
  error_log("You messed up!\n", 3, "my-errors.log");
}

//set error handler
set_error_handler("customError",E_USER_WARNING);

//trigger error
$test=2;
if ($test>=1) {
  trigger_error("Value must be 1 or below",E_USER_WARNING);
}
?>

Hàm error_log() có thể giúp gửi error logs đến mail hoặc một file nào khác. Các bạn có thể tham khảo thêm tại error_log PHP.

  • Lập trình điều khiển led bằng nút bấm với board mạch Arduino
  • Thuật toán sắp xếp đổi chổ trực tiếp (Interchange Sort)
  • Khái niệm lớp cơ sở ảo trong lập trình hướng đối tượng với C++
  • Sử dụng hàm isset() trong PHP để kiểm tra một biến có tồn tại hay không?
  • Hàm lambda trong Python là gì?