le 03/03/2012 à 18:21
alexandryne
Bonsoir,
Mon site fonctionnait parfaitement depuis plus d'un an, mais depuis 3 jours, l'hébergeur a mis la nouvelle version de PHP : le 5.3.10. L'hébergeur m'a dit qu'il semblerait que la programmation du site soit incompatible avec PHP 5.3.10. Si vous pouviez m'aider à voir ce qui ne va plus dans le code. Merci. Les messages pour l'inscription et pour la connexion sont :
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/public_html/accueil/index.php:1) in /home/public_html/accueil/index.php on line 2
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/public_html/accueil/index.php:1) in /home/public_html/accueil/index.php on line 2
Warning: Cannot modify header information - headers already sent by (output started at /home/public_html/accueil/index.php:1) in /home/public_html/accueil/index.php on line 24
Mon site fonctionnait parfaitement depuis plus d'un an, mais depuis 3 jours, l'hébergeur a mis la nouvelle version de PHP : le 5.3.10. L'hébergeur m'a dit qu'il semblerait que la programmation du site soit incompatible avec PHP 5.3.10. Si vous pouviez m'aider à voir ce qui ne va plus dans le code. Merci. Les messages pour l'inscription et pour la connexion sont :
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/public_html/accueil/index.php:1) in /home/public_html/accueil/index.php on line 2
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/public_html/accueil/index.php:1) in /home/public_html/accueil/index.php on line 2
Warning: Cannot modify header information - headers already sent by (output started at /home/public_html/accueil/index.php:1) in /home/public_html/accueil/index.php on line 24
inscription.php
<?php <?php
// on teste si le visiteur a soumis le formulaire
if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') {
//On teste également si elles ne sont pas vides
if (empty($_POST['civilite']) || empty($_POST['login']) || empty($_POST['pass']) || empty($_POST['pass_confirm']) || empty($_POST['email']) || empty($_POST['nom']) || empty($_POST['prenom']) || empty($_POST['adresse']) || empty($_POST['cp']) || empty($_POST['ville']) || empty($_POST['pays']) || empty($_POST['date_naissance']) || empty($_POST['ciel']) || empty($_POST['blanche'])) $erreur = 'Vous devez remplir tous les champs !';
elseif ($_POST['pass'] != $_POST['pass_confirm']) $erreur = "Les deux mots de passe sont différents.";
elseif ($_POST['ciel'] != "bleu") $erreur = "Ce n'est pas la bonne couleur.";
elseif ($_POST['blanche'] != "a") $erreur = "Ce n'est pas la 3ème lettre du mot blanche.";
else {
$base = mysql_connect ('*****', '********', '*********');
mysql_select_db ('********', $base);
$id_parrain='';
if( empty($_POST['id_parrain']) ) $id_parrain= mysql_real_escape_string( $_post['id_parrain']);
$id_parrain='';
if( isset( $_post['id_parrain']) && ! empty($_POST['id_parrain'] ) )
{
//alors $id_parrain prend pour valeur
$id_parrain= mysql_real_escape_string( $_post['id_parrain']);
}
// on recherche si ce login est déjà utilisé par un autre membre
$sql = 'SELECT count(*) FROM membres_jeux WHERE login="'.mysql_escape_string($_POST['login']).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
if ($data[0] == 0) {
$sql = 'INSERT INTO membres_jeux VALUES("",
"'.mysql_escape_string($_POST['civilite']).'",
"'.mysql_escape_string($_POST['login']).'",
"'.mysql_escape_string(sha1($_POST['pass'])).'",
"'.mysql_escape_string($_POST['email']).'",
"'.mysql_escape_string($_POST['nom']).'",
"'.mysql_escape_string($_POST['prenom']).'",
"'.mysql_escape_string($_POST['adresse']).'",
"'.mysql_escape_string($_POST['cp']).'",
"'.mysql_escape_string($_POST['ville']).'",
"'.mysql_escape_string($_POST['pays']).'",
"'.mysql_escape_string($_POST['date_naissance']).'",
"'.mysql_escape_string($_POST['id_parrain']).'",
"'.date('Y/m/d').'",
"'.date('His').'")';
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
session_start();
$_SESSION['login'] = $_POST['login'];
header('Location: membre.php');
exit();
}
else {
$erreur = 'Un membre possède déjà ce login.';
}
}
}
else {
$erreur = 'Au moins un des champs est vide.';
}
?>
?>
index.php
<?php <?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 ('*****', '*******', '*******');
mysql_select_db ('******', $base);
// on teste si une entrée de la base contient ce couple login / pass
$sql = 'SELECT count(*) FROM membres_jeux WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_sha1="'.sha1(mysql_escape_string($_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: membre.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.';
}
}
?> ?>