Skip to main content
The most common cause is a misconfigured php/conexion.php or a MySQL server that is not running.
1
Confirm MySQL is running
2
Open XAMPP (or your local server stack) and verify the MySQL module shows a green “Running” status. Start it if it is stopped.
3
Check your credentials in php/conexion.php
4
private $host     = "localhost";
private $db_name  = "hotel_guevarini_publico";
private $username = "root";
private $password = ""; // often empty on local installs
5
Update these four values to match your environment.
6
Confirm the database was imported
7
Open your MySQL client (phpMyAdmin, DBeaver, or MySQL Workbench) and verify that the database hotel_guevarini_publico exists and contains the 5 tables (roles, usuarios, clientes, habitaciones, reservaciones). If it is missing, re-import base_de_datos.sql.
8
mysql -u root -p < base_de_datos.sql
9
Verify the database name matches exactly
10
The db_name value must be hotel_guevarini_publico — no extra spaces, no different capitalization.
A blank white page usually means a fatal PHP error that is being suppressed, or a missing dependency.
1
Check your PHP version
2
The application requires PHP 7.4 or higher. Run the following in your terminal to confirm:
3
php -v
4
Enable PHP error display temporarily
5
Add the following lines at the top of the problematic PHP file to surface the error:
6
ini_set('display_errors', 1);
error_reporting(E_ALL);
7
Remove these lines once the issue is identified.
8
Install Composer dependencies
9
If the error references a missing class (commonly PHPMailer), the vendor/ directory is absent. Run:
10
composer install
11
from the project root directory.
Check your web server’s error log for more detail. In XAMPP, logs are typically found at C:\xampp\apache\logs\error.log.
The system uses PHPMailer with an SMTP provider (Mailtrap by default) for verification and password-recovery emails.
1
Confirm PHPMailer is installed
2
Check that the vendor/ directory exists in the project root. If not, run:
3
composer install
4
Verify SMTP credentials in all four handler files
5
The SMTP settings must be configured in each of these files individually:
6
  • php/auth/procesar_registro.php
  • php/auth/enviar_recuperacion.php
  • php/auth/reenviar_verificacion.php
  • php/usuarios/guardar_usuario.php
  • 7
    Each file contains a block like this — replace the placeholder values:
    8
    $mail->Host     = 'sandbox.smtp.mailtrap.io';
    $mail->Username = 'TU_USUARIO_SMTP';   // replace
    $mail->Password = 'TU_PASSWORD_SMTP';  // replace
    $mail->Port     = 'TU_PORT';           // replace
    
    9
    Test with Mailtrap first
    10
    Mailtrap’s sandbox environment captures outgoing emails without delivering them to real inboxes, making it ideal for verifying SMTP configuration. Create a free account at mailtrap.io and copy the sandbox credentials into the four files above.
    1
    Check whether the account is email-verified
    2
    Newly registered accounts require email verification before they can log in. The verificado column in the usuarios table must be 1.
    3
    Use the “Resend verification email” option on the login page to trigger a new verification link if the original email was lost.
    4
    Verify seed data was imported and accounts are marked as verified
    5
    base_de_datos.sql includes an UPDATE statement at the bottom that marks the two seed accounts as verified:
    6
    UPDATE usuarios SET verificado = 1, token_verificacion = NULL
    WHERE verificado IS NULL OR verificado = 0;
    
    7
    If this was not executed, run it manually in your MySQL client.
    8
    Confirm the password matches
    9
    The seed accounts use the plain-text password 12345. If you have changed the password through the application, bcrypt hashing applies. Use the “Forgot password” flow to reset it.
    1
    Check your spam folder
    2
    Emails sent from sandbox SMTP providers are sometimes flagged as spam.
    3
    Verify SMTP configuration in enviar_recuperacion.php
    4
    Open php/auth/enviar_recuperacion.php and confirm that $mail->Host, $mail->Username, $mail->Password, and $mail->Port are all set to valid SMTP credentials.
    5
    Confirm the email address exists in the database
    6
    The password-recovery flow only sends an email if the submitted address matches a record in the usuarios table. Query your database to verify:
    7
    SELECT correo FROM usuarios WHERE correo = 'the@address.com';
    
    1
    Log in again
    2
    The most likely cause is an expired PHP session. Navigate to the login page and authenticate again.
    3
    Confirm session_start() is not blocked
    4
    Each authenticated view must call session_start() before any output. If a file emits whitespace or a BOM character before the opening <?php tag, session_start() will fail silently and the session will appear empty. Open the affected file and ensure there are no characters before <?php.
    5
    Check server-level session configuration
    6
    On some environments, the session save path may not be writable. Check session.save_path in your php.ini and ensure the directory exists and is writable by the web server process.
    1
    Confirm Composer is installed globally
    2
    composer --version
    
    3
    If the command is not found, download and install Composer from getcomposer.org.
    4
    Verify your PHP version
    5
    Composer 2 requires PHP 7.2.5 or higher. Run php -v to check.
    6
    Run from the project root
    7
    The composer install command must be executed from the directory that contains composer.json — the project root (CRUD-HOTEL-GUEVARINI-Publico/), not a subdirectory.
    8
    composer install
    
    Room numbers (numero column in habitaciones) are defined as UNIQUE in the database schema. Each room must have a distinct identifier.Choose a different number for the new room. Existing room numbers can be viewed in the Habitaciones section of the dashboard.
    Room numbers are stored as VARCHAR(10), so alphanumeric identifiers like 101A or Suite-3 are valid.

    Getting Help

    If you encounter an issue not covered here, open a report on the GitHub repository: When reporting an issue, include your PHP version (php -v), web server stack (XAMPP, WAMP, etc.), and any error messages from your PHP or Apache logs.