I need to help

Hello I need help.
So I use a subdomain that is http://handtohandschool.epizy.com in free domain, but in this website there is not a php code. Now I create in this repertory on folder :file_folder: to host other projects in this project we have a php code and we have a database. So for access this project I have do the all configuration I use http://handtohandschool.epizy.com/kerfalasolution/index.php, in a Moshe index.php I can access this page normally without a problem but this page necessary to someone enter his identification after he can go at the page main but when I enter the information they show me error 500 this page is not accessible so when I test in local server there is not a problem there but when I come in the web server on line I have a problem there I don’t know for what that way my code dont’t a problem and database information is correctly given but I don’t understand what is this problem.

Please write more clearly.

An HTTP Error 500 usually means your php code crashed.

6 Likes

But I’m sure my php code di’t have a problems because when I make it on local server it’s work but when I use the online server it’s not work so you can’t say me the problem is from database because I have four pages firs index.php second upgrade password.php tree register.php last Accueil.php. So I can go all other pages only Accueil.php when I try to go there I have error 500

Suspicious

Prove it if you believe your code to connect to the DB isn’t wrong.

3 Likes

okay no problem let met show my code and the pictures that i have take :slight_smile:
dataBase.php:

 <?php
    $conn = new PDO('mysql:host=sql305.epizy.com;dbname=epiz_33041229_securiteInformatique;charset=utf8','epiz_33041229','HBumqVBGSgzEZ');

    //$conn = new PDO('mysql:host=localhost;dbname=securiteInformatique;charset=utf8', 'root', '');
?>

index.php:

<?php
    session_start(); // Démarrer la session

    // Connexion à la base de données
    try {
        include 'dataBase.php';
        // Définir le mode d'erreur PDO à exception
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    } catch (PDOException $e) 
    {
        echo "Erreur de connexion : " . $e->getMessage();
    }

    // Vérification si le formulaire est soumis
    if ($_SERVER["REQUEST_METHOD"] == "POST") 
    {
        if (isset($_POST["username"]) && !empty($_POST["username"]) && isset($_POST["password"]) && !empty($_POST["password"])) 
        {
            // Récupération des données du formulaire
            $username = htmlspecialchars($_POST["username"]);
            $password = htmlspecialchars($_POST["password"]);
                
            // Vérification de la longueur du mot de passe
            if (strlen($password) < 8) {
                echo "Le mot de passe doit contenir au moins 8 caractères.";
            } else
             {
                // Vérification si l'utilisateur existe dans la base de données
                $select = $conn->prepare('SELECT * FROM userTable WHERE nom_utilisateur=?');
                $select->execute(array($username));
                if ($select->rowCount() > 0) 
                {
                    // Récupérons les informations de l'utilisateur
                    $userInfo = $select->fetch(PDO::FETCH_ASSOC);
                    // Vérifions si le mot de passe correspond
                    if (password_verify($password, $userInfo['mot_de_passe'])) 
                    {
                        // Donnos les variables de session
                        $_SESSION['nom_utilisateur'] = $userInfo['nom_utilisateur'];
                        $_SESSION['mot_de_passe'] = $userInfo['mot_de_passe'];

                        // Vérifions si l'utilisateur a demandé qu'on se souvient de lui
                        if (isset($_POST['souvenirDeMoi']) && $_POST['souvenirDeMoi'] == 'on') 
                        {
                            // Créons un cookie pour se souvenir de l'utilisateur
                            setcookie('nom_utilisateur', $userInfo['nom_utilisateur'], time() + (30 * 24 * 3600), "/");
                        }

                        // Redirection vers la page d'accueil
                        header('Location: Accueil.php');
                        exit(); // Arrêter le script après la redirection
                    } else {
                        echo "Mot de passe incorrect";
                    }
                } else {
                    echo "Aucun utilisateur trouvé";
                }
            }
        } else {
            echo "Tous les champs sont requis!";
        }
    }
?>

<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Page de Connexion</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
    <style>
        /* Ajout de styles personnalisés */
        body {
            background-color: #f8f9fa;
            margin-bottom: 60px; /* Ajout de marge en bas pour le pied de page */
        }
        .login-form {
            width: 360px;
            margin: 50px auto;
            padding: 30px 20px;
            background: #fff;
            border-radius: 5px;
            box-shadow: 0px 0px 10px 0px rgba(0,0,0,0.1);
        }
        .login-form h2 {
            margin-bottom: 30px;
        }
        /* Styles pour le pied de page */
        .footer {
            position: fixed;
            bottom: 0;
            width: 100%;
            background-color: #343a40;
            color: #fff;
            text-align: center;
            padding: 10px 0;
        }
    </style>
</head>
<body>

<div class="login-form">
    <h2 class="text-center">Connexion</h2>
    <form action="" method="post">
        <div class="form-group">
            <input type="text" class="form-control" name="username" placeholder="Nom d'utilisateur" required="required" autocomplete="off">
        </div>
        <div class="form-group">
            <input type="password" class="form-control" name="password" placeholder="Mot de passe" required="required">
            <?php if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST["password"]) && strlen($_POST["password"]) < 8): ?>
                <div class="text-danger">Le mot de passe doit contenir au moins 8 caractères.</div>
            <?php endif; ?>
        </div>
        <div class="form-group">
            <button type="submit" class="btn btn-primary btn-block">Connexion</button>
        </div>
        <div class="clearfix">
            <label class="float-left form-check-label"><input type="checkbox" name="souvenirDeMoi"> Se souvenir de moi</label>
            <a href="updatePassword.php" class="float-right">Mot de passe oublié ?</a>
            <span>Vous n'avez pas de compte ?</span> <a href="inscription.php" class="float-right"> Inscrivez Vous</a>
        </div>
        <?php if ($_SERVER["REQUEST_METHOD"] == "POST" && (empty($_POST["username"]) || empty($_POST["password"]))): ?>
            <div class="text-danger">Tous les champs sont requis!</div>
        <?php endif; ?>
    </form>
</div>

<div id="js-disabled-message">
<p>JavaScript est désactivé dans votre navigateur. Certaines fonctionnalités de ce site nécessitent JavaScript pour fonctionner correctement. Veuillez l'activer pour une meilleure expérience utilisateur.</p>
</div>
<script>
    //This code help us to stoped user for inspect our page
    document.addEventListener("contextmenu", function(event){
            event.preventDefault();
            alert("Cette action n'est pas autorisée!");
        });
        //this code help us to stoped user when he use an keyboard raccourcci  
        document.addEventListener("keydown", function(event){
        if((event.ctrlKey && event.key=="u") || (event.ctrlKey && event.key=="s"))
        {
            event.preventDefault();
            alert("Cette action n'est pas autorisé");
        }
        });
        //this code alert user when he desable javascript in his navigator
        document.addEventListener("DOMContentLoaded", function(){
        //Select my id 
        var jsDesabledMessage = document.getElementById("js-disabled-message");
        jsDesabledMessage.style.display="none";//I hide the message when javascript is not desable
        });
</script>

<!-- Pied de page -->
<footer class="footer">
    <div class="container">
        <span>© 2024  MADE IN GUINEA. BY FODE KERFALA CAMARA</span>
    </div>
</footer>

</body>
</html>

Accueil.php:

<?php
/**
 *              CECI EST UNE OEUVRE DE FODE KERFALA CAMARA ALLIAS SOLO457
 *                  Nom de L'application : KerfalaSolution version 1.0.0
 *                              FONCTIONNEMENT 
 * Cette application sert à faire le cryptage et le decryptage,
 * d'un texte ou d'un document avec un algorithme AES
 * Cette application est finalisée VENDREDI 23 FEVRIER 2023 A 10H :15min
 * 
 *                      A PROPOS
 * Vue la l'évolution du monde informatique et l'empreure de la force des HAcker,
 * Moi FODE KERFALA CAMARA propriétaire de l'application KerfalaSolution, j'ai decidé de mettre,
 * en place un outil qui permettra de securiser les les donnée en utilisant l'algorithme
 * de cryptage AES(Advenced Emcryption Standard) est un processus de cryptage symétrique impliquant plusieurs etape,
 * répéte pour renforcer la securité. Le nombre d'étape depend de la longueur de la clé
 * choisie. Pour crypter ou decrypter les données on passe par les etapes suiantes:
 *  1-SubBytes
 *  2-ShiftRows
 *  3-MixColums
 *  4-AddRoundKey
 * 
 * Dans ce code on a utilisé deux formulaire , un bouton qui joue deux role crypté et decrypté.
 * Un bouton pour générer la clé d'une facon aleatoire et un champs pour saisire nous
 * même la taille de la clé.
 * Un champs pour selectionner un fichier et le crypté ou le décrypté selon le type.
 * Et un champs de texte pour afficher le texte crypté ou décrypté. 
 * Lorsque nous soumettons un document à crypter ou à décrypter un fichier est automatiquent
 * créé au bureau contenant le contenu du fichier crypté ou décrypté.
 */


    // Démarrage de la session
    session_start();

    // Connexion à la base de données
    include 'dataBase.php';
    
    if(!$_SESSION['nom_utilisateur'] && !$_SESSION['mot_de_passe']) // && au lieu de AND
    {
        header('Location:index.php');
    }

    // Fonction pour hasher la clé
    function hashKey($key) 
    {
        $hashedKey = hash('sha256',$key);
        return $hashedKey;
    }
?>
<!--CREATION DE LA PAGE HTML--->
<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>KERFALA SOLUTION</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
    <script src="https://unpkg.com/typewriter-effect@latest/dist/core.js"></script>
    <style>
        /* Style pour assurer que le texte crypté reste dans le conteneur */
        .container p 
        {
            word-wrap: break-word; /*Pour permettre qu'il s'adapte dans son conteneur */
        }

        .footer {
            position: fixed;
            bottom: 0;
            width: 100%;
            background-color: #343a40;
            color: #fff;
            text-align: center;
            padding: 10px 0;
            position:relative;
            top:35px;
        }
        .footer p {
            margin-bottom: -5px; /* Supprimer la marge inférieure pour le paragraphe */
        }
    </style>

</head>

<body class="bg-light"><!-- Dernière mise à jour 25/02/2024 02h:47--->
<div id="js-disabled-message">
<p>JavaScript est désactivé dans votre navigateur. Certaines fonctionnalités de ce site nécessitent JavaScript pour fonctionner correctement. Veuillez l'activer pour une meilleure expérience utilisateur.</p>
</div>
    <div class="container py-5"><!-- Dernière mise à jour 02/03/2024 22h:44min --->
        <h1 class="text-center text-primary">Application de Cryptage et de Décryptage</h1>
        <a href="logout.php" class="btn btn-outline-primary" style="position:relative; float:right;">Se Deconnecter</a>
        <h3 class="text-center"></h3>
        <!-- Création du formulaire de pour la récupération des informations -->
        <form method="post" enctype="multipart/form-data" class="mt-5">
            <div class="form-group"><!--Dernière mise à jour 17/03/2024 16h:04--->
                <label for="fichier">Choisissez un fichier à traiter :</label>
                <input type="file" id="fichier" name="fichier" class="form-control-file" <?php echo isset($_POST['fichier']) ? htmlspecialchars($_POST['fichier']) : ''; ?>>
            </div>
            
            <div class="form-group">
                <label for="texte">Entrez votre texte :</label>
                <textarea id="texte" name="texte" rows="4" class="form-control"><?php echo isset($_POST['texte']) ? htmlspecialchars($_POST['texte']) : ''; ?></textarea>
            </div>
            <div class="form-group">
                <label for="cle">Clé de cryptage (16, 24, 32, 64, 128, 256 à plus 256 + " n " bits caractères ( cle > = 256 ) ).</label>
                <div class="input-group">
                    <input type="text" id="cle" name="cle" class="form-control" value="<?php echo isset($_POST['cle']) ? htmlspecialchars($_POST['cle']) : ''; ?>">
                    <div class="input-group-append">
                        <button type="button" class="btn btn-outline-secondary" onclick="generateKey()">Générer Clé</button>
                    </div>
                </div>
            </div>

            <!-- Second formulaire afin de connaitre le choix de l'utilisateur -->
            <div class="form-group">
                <!-- Cette Option va me permettre de savoir il a choisi quelle option -->
                <label for="action">Sélectionnez l'action :</label>
                <select name="action" id="action" class="form-control">
                    <option value="crypter" <?php echo isset($_POST['action']) && $_POST['action'] == 'crypter' ? 'selected' : ''; ?>>Crypter</option>
                    <option value="decrypter" <?php echo isset($_POST['action']) && $_POST['action'] == 'decrypter' ? 'selected' : ''; ?>>Décrypter</option>
                </select>
            </div>
            <button type="submit" name="crypter_decrypter" class="btn btn-primary">Crypter/Décrypter</button>
        </form>
    </div>
        
    <?php
    // On se rassure que l'utilisateur a bien cliqué sur le bouton et si l'action de cryptage/décryptage a été sélectionnée
    if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST["crypter_decrypter"])) 
    {
        $cle = $_POST["cle"]; // Récupération de la clé
        $action = $_POST["action"]; // Récupération de l'action (crypter ou décrypter)

        // Traitement du fichier si un fichier a été téléchargé
        if ($_FILES['fichier']['error'] === UPLOAD_ERR_OK && is_uploaded_file($_FILES['fichier']['tmp_name'])) 
        {
            $fichier_tmp = $_FILES['fichier']['tmp_name']; // Chemin du fichier temporaire
            $contenu = file_get_contents($fichier_tmp); // Contenu du fichier

            // Génération de la clé hachée
            $hashedKey = hashKey($cle);

            if ($action == "crypter") 
            {
                $fichier_crypte = openssl_encrypt($contenu, 'AES-256-CBC', $hashedKey, 0, '1234567812345678');
                $download_path = getenv("USERPROFILE") . "\\Downloads\\";
                $nom_fichier = $_FILES['fichier']['name'];
                $extension = pathinfo($nom_fichier, PATHINFO_EXTENSION);
                $file_path = $download_path . basename("_" . $nom_fichier, '.' . $extension) . "." . $extension;
                file_put_contents($file_path, $fichier_crypte);
                echo "<div class='container py-3'><p class='alert alert-success'>Le fichier a été crypté avec succès. Le fichier crypté a été enregistré dans le dossier de téléchargement suivi de _.</p></div>";
                
            } 
            elseif ($action == "decrypter") 
            {
                $fichier_decrypte = openssl_decrypt($contenu, 'AES-256-CBC', $hashedKey, 0, '1234567812345678');
                $download_path = getenv("USERPROFILE") . "\\Downloads\\";
                $nom_fichier = $_FILES['fichier']['name'];
                $extension = pathinfo($nom_fichier, PATHINFO_EXTENSION);
                $file_path = $download_path . basename("__" . $nom_fichier, '.' . $extension) . "." . $extension;
                file_put_contents($file_path, $fichier_decrypte);
                echo "<div class='container py-3'><p class='alert alert-success'>Le fichier a été décrypté avec succès. Le fichier décrypté a été enregistré dans le dossier de téléchargement suivi de __.</p></div>";
            }
        } 
        // Traitement du texte saisi dans le formulaire
        elseif (!empty($_POST['texte'])) 
        {
            $texte = $_POST['texte']; // Récupération du texte saisi
            $hashedKey = hashKey($cle); // Génération de la clé hachée

            if ($action == "crypter") 
            {
                $texte_crypte = openssl_encrypt($texte, 'AES-256-CBC', $hashedKey, 0, '1234567812345678');
                echo "<div class='container py-3'><p class='alert alert-success'>Texte crypté : $texte_crypte</p></div>";
            } 
            elseif ($action == "decrypter") 
            {
                $texte_decrypte = openssl_decrypt($texte, 'AES-256-CBC', $hashedKey, 0, '1234567812345678');
                echo "<div class='container py-3'><p class='alert alert-success'>Texte décrypté : $texte_decrypte</p></div>";
            }
        } 
        else 
        {
            echo "<div class='container py-3'><p class='alert alert-danger'>Veuillez choisir un fichier à traiter ou saisir du texte.</p></div>";
        }
    }
    ?>
    <!-- Gestion de la partie JavaScript -->
    <script>
        function generateKey() 
        {
            var chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ@/#*-_+&%$£µ';
            var length = 256;
            var key = '';

            for (let i = 0; i < length; i++) 
            {
                key += chars.charAt(Math.floor(Math.random() * chars.length));
            }

            document.getElementById("cle").value = key;
        }
        //This code help us to stoped user for inspect our page
        document.addEventListener("contextmenu", function(event){
            event.preventDefault();
            alert("Cette action n'est pas autorisée!");
        });
        //this code help us to stoped user when he use an keyboard raccourcci  
        document.addEventListener("keydown", function(event){
        if((event.ctrlKey && event.key=="u") || (event.ctrlKey && event.key=="s"))
        {
            event.preventDefault();
            alert("Cette action n'est pas autorisé");
        }
        });
        //this code alert user when he desable javascript in his navigator
        document.addEventListener("DOMContentLoaded", function(){
        //Select my id 
        var jsDesabledMessage = document.getElementById("js-disabled-message");
        jsDesabledMessage.style.display="none";//I hide the message when javascript is not desable
        });
    </script>
    <!-- Pied de page -->
    <footer class="footer">
        <div class="container">
            <p>© 2024 MADE IN GUINEA. BY FODE KERFALA CAMARA</p>
        </div>
    </footer>
    
    <script src="animation.js"></script>
</body>
</html>

Now i upload the pictures :

Capture7

Sensitive details exposed.
Pending Admin or moderator intervention

image

Looks wrong to me

5 Likes

Nom you don’t understand this code is commented

The DB code seems to be OK.

But are you sure that the problem is from the DB? Your problem could be from anywhere.

Please read the guide I shared earlier, and enable display_errors to find the true cause for the error.

3 Likes

So the question I ask to my self is not that in actuality infinity free has removed the php and database in free account. So my account when I have created this one they give in free account the php and the database. Now I want use database and php in this account I think this can be the problem. Else when I execute my code in local server passing by xampp there is not a problem my program work good but in infinity free server there is a problem.

Do this

4 Likes

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.