[php] probleme liaison base de données

Bonjour,

J'ai un petit probleme avec mon site (projet pour le bac). Il semblerait qu'il y ait un probleme de liaison entre la base de données é le site. voir : gipn56.free.fr/inscription

Essayez de vous inscrire vous verez le probleme.

Ci-dessous vous verez les scripts de mes différents fichiers php :

***conf.php***

<?
$host="sql.free.fr";
$user="gipn56";//nom d'utilisateur
$pass="mon mot de pass";//mot de pass
$base="gipn56";//nom de la bases de données
$connect=mysql_connect($host,$user,$pass);
mysql_select_db($base, $connect);
?>

***connect.php***

<?php
if($action=="deconnexion"){

session_start();

$_SESSION = array();

session_destroy();

}
?>

<form action="connect2.php" method='post'>
<table align="left" border="0" class="text1">
<tr>
<td>Pseudo :</td>
<td><input type="text" name="login"></td>
</tr>
<tr>
<td>Mot de Passe :</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="Connexion"></td>
</tr>
</table>
</form></p>

***connect2.php***

<?
require("conf.php");

if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['password'])) {
extract($_POST);
// on recupère le password de la table qui correspond au login du visiteur
$sql = "select password from membres_tbl where login='".$login."'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

$data = mysql_fetch_assoc($req);

if($data['password'] != $password) {
echo '<SCRIPT LANGUAGE="JavaScript">
document.location.href="connect.php" </SCRIPT>';
exit;
}
else {
session_start();
$_SESSION['login'] = $login;

echo '<SCRIPT LANGUAGE="JavaScript">
document.location.href="membres.php" </SCRIPT>';
}
}
else {
echo '<SCRIPT LANGUAGE="JavaScript">
document.location.href="connect.php" </SCRIPT>';
exit;
}
?>

***inscription.php***

<SCRIPT LANGUAGE="JavaScript">
function VerifForm(formulaire)
{
adresse = formulaire.mail.value;
var place = adresse.indexOf("@",1);
var point = adresse.indexOf(".",place+1);
if ((place > -1)&&(adresse.length >2)&&(point > 1))
{
formulaire.submit();
return(true);
}
else
{
alert('Entrez une adresse e-mail valide!!');
return(false);
}
}
</SCRIPT>
<form action="inscription2.php" method='post' onSubmit="return(VerifForm(this))">
<table width="280" border="0" class="text1">
<tr>
<td width="125" height="24">Pseudo :</td>
<td width="145"> <div align="left">
<input type="text" name="login">
</div></td>
</tr>
<tr>
<td height="24">Mot de Passe :</td>
<td> <div align="left">
<input type="password" name="password">
</div></td>
</tr>
<tr>
<td>Adresse Email :</td>
<td><input type="text" name="mail"></td>
</tr>
<br>
<tr>
<td> </td>
<td><input type="submit" name="Submit" value="S'inscrire"></td>
</tr>
</table>
</form></p>

***inscription2.php***

<?
include('conf.php');
$login= $_POST['login'];
$password= $_POST['password'];
$mail= $_POST['mail'];

$requete=mysql_query("INSERT INTO membres_tbl VALUES('','$_POST[login]','$_POST[password]','$_POST[mail]','$_POST[nom]','$_POST[prenom]','$_POST[adresse]','$_POST[ville]','$_POST[codepostal]')");
echo ' <p>Vos informations ont bien été ajoutés, <a href="index.html">cliquez ici</a> pour vous identifier.</p>
';
?>

***membres.php***

<?
session_start();

if(!isset($_SESSION['login'])) {
echo '<SCRIPT LANGUAGE="JavaScript">
document.location.href="connect.php" </SCRIPT>';
exit;
}
?>
<?php echo '<p>Bonjour ',$_SESSION['login'],'</p>';
?>
<a href="connect.php?action=deconnexion">Déconnexion</a>

==> voila vous avez tout. Merci pour vos réponses ;)
Configuration: Windows Vista
Internet Explorer 7.0

36 réponses

Résumé de la discussion

Problème de liaison entre la base de données et le site, avec des scripts PHP utilisant mysql_connect et un accès à sql.free.fr, entraînant des échecs lors des inscriptions et de l'authentification. Des réponses suggèrent de revoir le code et les redirections, de corriger les identifiants et l'hôte, d'utiliser une authentification et une navigation vers les pages membres ou index, selon le contexte. Plusieurs participants évoquent la distinction entre PHP4 et MySQL, l'utilisation de pages PHP vs HTML, et l'erreur possible chez l'hébergeur Free, avec des conseils comme tester l'inscription, vérifier l'hôte et les permissions.

Bobot (l’IA à votre service)
  1. Salut !

    Met ca

    ***connect.php***

    <?php
    if($action=="deconnexion"){

    $Connect = mysql_connect($host, $user,$pass) or die (mysql_error());
    $Select_Db = mysql_select_db($Connect,$base) or die (mysql_error());

    $_SESSION = array();

    mysql_close();

    }
    ?>

    En faite tu fesait une ouverture de session php 4 au lieu de connexion MySQL
    1. Excuse je suis a l'ouest !

      Vérifie tes identifiants de connexion sinon voit avec free
      1. j'ai les bons identifiants mais je ne sais pas si j'ai le bon host.
        J'ai essayé avec des hébergeurs avec qui ca marchait d'habitude et d'un coup ca s'est mis a plus marcher.
        1. Essaye ca pour voir le message d'erreur :

          <?
          $host="sql.free.fr";
          $user="gipn56";//nom d'utilisateur
          $pass="mon mot de pass";//mot de pass
          $base="gipn56";//nom de la bases de données
          $connect=mysql_connect($host,$user,$pass) or die (mysql_error());
          mysql_select_db($base, $connect) or die (mysql_error());
          ?>
          1. merci l'inscription remarche :)

            Mais j'ai un autre probleme maintenant c'est lors de l'identification mais la j'ai aucune idée d'où ca vient
            1. non l'inscription marche.

              C'est pour s'identifier j'ai ce message :

              Warning: session_start() [function.session-start]: open(/mnt/146/sdb/7/4/gipn56/sessions/sess_798fd9e6b09144f3f59d3fde34554a72, O_RDWR) failed: No such file or directory (2) in /mnt/146/sdb/7/4/gipn56/membres.php on line 2

              Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /mnt/146/sdb/7/4/gipn56/membres.php:2) in /mnt/146/sdb/7/4/gipn56/membres.php on line 2

              Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /mnt/146/sdb/7/4/gipn56/membres.php:2) in /mnt/146/sdb/7/4/gipn56/membres.php on line 2

              lol
              1. merci t'es un génie :)

                par contre j'aimerais intégrer le script de l'identification dans la page.
                ce que je veut dire c'est que a la place de l'espace pour l'identification je vous qu'il affiche 'bienvenue pseudo" et déconnexion

                mais je sais pas comment intégrer le script dans la page
                1. quand tu vas sur mon site a gauche sous le menu ya l'espace client où on s'identifie.

                  En fait je veux qu'après s'être identifié dans cet espace il yé marqué un message de bienvenue...

                  Je veux que la page a laquelle a accès le client soit réservé qu'on puisse y accèder qu'après etre identifié.

                  Parce que la quand je m'identifie après il m'envoi sur la page membres.php (voir script)
                  1. Et bien si ta session PHP4 est ouverte, tu autorise la page sinon tu refoulle.
                    1. pour parler plus francais lol

                      Commnt faire pour intégrer le script membres.php dans le script de la page indexclient.html ?

                      Comment faire pour que si l'identification est valide l'utilisateur est envoyé vers celle ci et dans le cas contraire qu'il soit renvoyé sur la page index.html ?
                      1. Salut,

                        Ton script membre il faut que tu l'inclue avant tout code html de ta page et l'echo du nom d'utilisateur tu fait l'echo ou tu veux dans ta page.

                        Pour l'autre point, tu fait un if ( login_client == login_base && md5(pass_client) == pass_base)
                        {
                        session_start();
                        $_SESSION['login'] = login_client;
                        }

                        if (@$_SESSION['login'] == '')
                        {
                        header("location:index.html");
                        }
                        1. ce que je veux dire c'est qu'il faut le mettre dans quelle page ? ou dans quel fichier php ?
                          • 1
                          • 2