Base de donnée MySql chez Free - erreur code

Fermé
yves - 2 mars 2009 à 16:11
Harricote Messages postés 417 Date d'inscription mercredi 21 janvier 2009 Statut Membre Dernière intervention 30 janvier 2011 - 3 mars 2009 à 19:04
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
A voir également:

9 réponses

Harricote Messages postés 417 Date d'inscription mercredi 21 janvier 2009 Statut Membre Dernière intervention 30 janvier 2011 41
2 mars 2009 à 16:36
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à
0
Merci,
Non je n'ai pas de fichier qui se nomme session.php
Quel doit en être le contenu ?
Cordialement
Yves
0
Harricote Messages postés 417 Date d'inscription mercredi 21 janvier 2009 Statut Membre Dernière intervention 30 janvier 2011 41
2 mars 2009 à 16:42
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à
0
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Harricote Messages postés 417 Date d'inscription mercredi 21 janvier 2009 Statut Membre Dernière intervention 30 janvier 2011 41
2 mars 2009 à 16:59
Peux-tu mettre ton code, stp ?
0
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
0
Harricote Messages postés 417 Date d'inscription mercredi 21 janvier 2009 Statut Membre Dernière intervention 30 janvier 2011 41
2 mars 2009 à 17:11
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 ?
0
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
0
Harricote Messages postés 417 Date d'inscription mercredi 21 janvier 2009 Statut Membre Dernière intervention 30 janvier 2011 41
3 mars 2009 à 19:04
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à
0