je suis héberger chez Toile-Libre et j'ai cette erreur :
Warning: session_start() [function.session-start]: open(/tmp/php/sess_903cf76cc259fcdc3df1bfd0419d5c9d, O_RDWR) failed: No space left on device (28) in /data/henry2/web/c/9/attaque-me.toile-libre.org/htdocs/index.php on line 19
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /data/henry2/web/c/9/attaque-me.toile-libre.org/htdocs/index.php:19) in /data/henry2/web/c/9/attaque-me.toile-libre.org/htdocs/index.php on line 19
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /data/henry2/web/c/9/attaque-me.toile-libre.org/htdocs/index.php:19) in /data/henry2/web/c/9/attaque-me.toile-libre.org/htdocs/index.php on line 19
Warning: Cannot modify header information - headers already sent by (output started at /data/henry2/web/c/9/attaque-me.toile-libre.org/htdocs/index.php:19) in /data/henry2/web/c/9/attaque-me.toile-libre.org/htdocs/index.php on line 21
Warning: Unknown: open(/tmp/php/sess_903cf76cc259fcdc3df1bfd0419d5c9d, O_RDWR) failed: No space left on device (28) 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 (/tmp/php) in Unknown on line 0
pour ce script :
<?php
// on teste si le visiteur a soumis le formulaire de connexion
if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {
$base = mysql_connect ('sql.toile-libre.org', 'attaqueme_site', 'XXX');
mysql_select_db ('attaqueme_site', $base);
// on teste si une entrée de la base contient ce couple login / pass
$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.mysql_escape_string(md5($_POST['pass'])).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
mysql_free_result($req);
mysql_close();
// si on obtient une réponse, alors l'utilisateur est un membre
if ($data[0] == 1) {
session_start();
$_SESSION['login'] = $_POST['login'];
header('Location: acceuil.php');
exit();
}
// si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
elseif ($data[0] == 0) {
$erreur = 'Compte non reconnu.';
}
// sinon, alors la, il y a un gros problème :)
else {
$erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
}
}
else {
$erreur = 'Au moins un des champs est vide.';
}
}
?>
<html>
<head>
<title>Accueil</title>
</head>
<body>
Connexion à l'espace membre :<br />
<form action="index.php" method="post">
Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
<input type="submit" name="connexion" value="Connexion">
</form>
<a href="inscription.php">Vous inscrire</a>
<?php
if (isset($erreur)) echo '<br /><br />',$erreur;
?>
</body>
</html>
Le problème vien de moi ou de Toile-Libre ? Merci d'avance !
Salut.
Le message d'erreur renvoyé par PHP indique qu'il n'y a plus de place dans le dossier d'enregistrement des sessions. Le problème semble se situer plutôt du côté de ton hébergeur. A voir si tu as les droits de gestion de tes répertoires ou pas.
Bon courage.
Cdlt,
IC
PS : Il est recommandé de placer l'instruction session_start() en début de script, surtout si tu utilise les cookies.