Base de donnée MySql chez Free - erreur code

Bonjour,
Débutant (même très grand débutant) en php, j'ai trouvé un script php qui permet de protéger l'accés à une page.
J'ai testé tout cela en local sous Wamp, et là tout fonctionne sans problème.

J'ai publié tous mes fichiers chez free, ouvert ma base de données, et là catastrophe....
rien que des messages d'erreurs.

tout ça sur la même page.....

Warning: session_start() [function.session-start]: open(/mnt/102/sdb/a/0/raquettespietaise/sessions/sess_ce1f4d000e3b1c87c52954482c3c83cd, O_RDWR) failed: No such file or directory (2) in /mnt/102/sdb/a/0/raquettespietaise/index.php on line 2

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /mnt/102/sdb/a/0/raquettespietaise/index.php:2) in /mnt/102/sdb/a/0/raquettespietaise/index.php on line 2

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /mnt/102/sdb/a/0/raquettespietaise/index.php:2) in /mnt/102/sdb/a/0/raquettespietaise/index.php on line 2

Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /mnt/102/sdb/a/0/raquettespietaise/classes/Mysql.php on line 6

Warning: Unknown(): open(/mnt/102/sdb/a/0/raquettespietaise/sessions/sess_ce1f4d000e3b1c87c52954482c3c83cd, O_RDWR) failed: No such file or directory (2) in Unknown on line 0

Warning: Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/mnt/102/sdb/a/0/raquettespietaise/sessions) in Unknown on line 0

Est ce que quelqu'un aurait une solution à soumettre, une astuce, un conseil...

Par avance merci beaucoup,

Yves
Configuration: Windows XP
Firefox 3.0.6

9 réponses

  1. Pour les "Warning: session_start()...", as-tu mit, à la racine de ton site, un fichier qui s'appelle "seesions" ?

    Si tu n'en a pas, crés-en un.

    Pour le reste, peut-être que ça marchera si tu fais ce que je t'ai dit.

    Voilà
    1. Merci,
      Non je n'ai pas de fichier qui se nomme session.php
      Quel doit en être le contenu ?
      Cordialement
      Yves
      1. ATTENTION !

        Ce n'est pas un fichier. J'ai oublié de te dire que c'est un répertoire (donc il s'appelle juste "sessions" et non pas "sessions.php").
        Dans ce répertoire, tu ne mes rien. Il va s'y mettre des sessions. Mais toi, tu n'as rien a y mettre.

        Voilà
        1. Super,
          Il y a du mieux..... la liste des messages d'erreurs a considérablement diminuées.
          Mais il reste encore celle-ci :

          Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /mnt/102/sdb/a/0/raquettespietaise/classes/Mysql.php on line 6

          Je suis désolé, d'être aussi nul et vous remercie de nouveau de votre contribution

          Cordialement,

          Yves
          1. voici le code du fichier nommé Mysql.php et qui se trouve dans un dossier classes
            <?php

            require_once 'includes/constants.php';

            class Mysql {
            private $conn;

            function __construct() {
            $this->conn = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME) or
            die('There was a problem connecting to the database.');
            }

            function verify_Username_and_Pass($un, $pwd) {

            $query = "SELECT *
            FROM users
            WHERE username = ? AND password = ?
            LIMIT 1";

            if($stmt = $this->conn->prepare($query)) {
            $stmt->bind_param('ss', $un, $pwd);
            $stmt->execute();

            if($stmt->fetch()) {
            $stmt->close();
            return true;
            }
            }

            }
            }

            Voici le code php de mon fichier index.php qui se trouve à la racine du site

            <?php
            session_start();
            require_once 'classes/Membership.php';
            $membership = new Membership();

            // If the user clicks the "Log Out" link on the index page.
            if(isset($_GET['status']) && $_GET['status'] == 'loggedout') {
            $membership->log_User_Out();
            }

            // Did the user enter a password/username and click submit?
            if($_POST && !empty($_POST['username']) && !empty($_POST['pwd'])) {
            $response = $membership->validate_User($_POST['username'], $_POST['pwd']);
            }

            ?>

            Encore merci
            1. Déjà, d'après ce que dit l'erreur, ça se trouve à la ligne 6 de mysql.php. J'ai regardé, et si je ne me suis pas trompé, c'est cette ligne :
              private $conn; 
              . Si tu l'enlèves, ça te rajoute des erreurs ? Ou tu n'en a plus du tout ?
              1. effectivement je n'ai plus d'erreur su la page index, elle s'affiche maintenant correctement.
                Par contre au test de saisi du code et de mot de passe j'ai l'erreur suivante

                Fatal error: Call to a member function on a non-object in /mnt/102/sdb/a/0/raquettespietaise/classes/Mysql.php on line 20

                grrrr..........
                Est ce qu'il y aurait une solution simple pour protéger l'acces à des pages d'un site web ?
                Peut être que cela serait plus facile que de trouver mon ou mes erreurs.
                en tout cas encore merci d'avance pour tout

                Cordialement
                Yves
                1. Excusement moi d'avoir été un peu long...

                  Oui il y a un moyen de protéger des pages d'un site. Il faut que tu les mettes dans un répertoire qui lui en fait sera protégé (donc les pages à l'intérieur aussi ^^).

                  Ouvres ton bloc-note ou notepad++ ou autre et note à l'intérieur :
                  deny from all
                  Ensuite nomme le fichier .htaccess
                  Et enfin, mets-le dans le répertoire dont les pages doivent être protégées.

                  Voilà