Connection base de données et site en ligne?

Résolu/Fermé
mitch7600 Messages postés 27 Date d'inscription mardi 26 juin 2012 Statut Membre Dernière intervention 6 septembre 2012 - 14 août 2012 à 21:36
mitch7600 Messages postés 27 Date d'inscription mardi 26 juin 2012 Statut Membre Dernière intervention 6 septembre 2012 - 6 sept. 2012 à 21:54
Bonjour,


Voici mon code :
<?php

 $HOST = "xxxxx";
 $LOGIN = "userxxxx";
 $PASS = "xx1234xxx";
 $DATA = "tabxxxx";
 $BASE = "logwww";
   
mysql_connect(  $HOST , $LOGIN , $PASS ,  $DATA) or die ("Erreur de connextion");
mysql_select_db($DATA) or die ("Database introuvable");
     ?>


J aimerais savoir comment peut on lier ma base de données avec mon site d' apprentissage.
Je signale juste que çà fonctionne en localhost, via WAMPSERVER.

Pour établir une connection j ai tester toutes mes idées...
$HOTE :" adresse IP ou localhost..."; mais rien n' y fait.

Ensuite,je suis passé par mon hebergeur et Cpannel. Là j ai du creer une nouvelle table de données, mais ensuite toujours pareil sinale toujours la meme erreur.
Je penses que mon soucis vient de $HOTE? Mais je ne vois pas du tout ce que je peux mettre?

merci de votre attention.
A voir également:

21 réponses

Bonjour

Normalement, ton hébergeur t'a donné le nom d'hôte, ainsi que ton nom d'utilisateur et ton mot de passe quand tu as créé ton compte.
De plus, je trouve très bizarre ton $DATA dans l'appel à mysql_connect : normalement, on n'utilise pas ce 4ème paramètre, et si on l'utilise ce devrait être un booléen. Or, ça a l'air d'être le nom de ta base, puisqu'on le retrouve dans la sélection de la base : mysql_select_db($DATA)
Et à quoi sert $BASE ?

Si tu veux avoir des précision sur l'erreur, au lieu de faire or die("message") après les appels à mysql, fais des or die (mysql_error());
1
mitch7600 Messages postés 27 Date d'inscription mardi 26 juin 2012 Statut Membre Dernière intervention 6 septembre 2012 7
15 août 2012 à 20:53
D' aprés mon serveur, le nom d hote est mon adresse ip ou localhost, je trouve çà pas terrible mais bon c est juste de l' apprentissage.
Pour $BASE, c est la nom de ma base de données, enfait cela pour qu elle ne soit pas noter dans mes requetes tout simplement. Par contre, pour µDATA, c est ce que j ai lu dans un cour sur youtube, donc voilà çà marche ;-)

SI çà fonctionne en local avec WAMPSERVER, c est qu il n' y a pas d erreurs dans mes pages? L erreur ne peut etre que de ma connection? Merci
1
Utilisateur anonyme
15 août 2012 à 21:04
D' aprés mon serveur, le nom d hote est mon adresse ip ou localhost,
Sauf ton respect, c'est n'importe quoi.
"D'après ton serveur" Quel serveur ? Comment fais-tu pour lui poser la question ? C'est à ton hébergeur qu'il faut demander - ou trouver l'information sur son site. Et si le nom d'hôte peut éventuellement être localhost, il ne peut en aucun cas être ton adresse IP sur ton site en ligne.
Pour $BASE, c est la nom de ma base de données Mais alors, pourquoi fais-tu mysql_select_db($DATA) ? Avec cette instruction, tu sélectionnes $DATA comme base de données, pas $BASE !
L erreur ne peut etre que de ma connection? Pas forcément... As-tu mis les "or die (mysql_error()); comme je te l'ai dit ? Tu auras des messages d'erreur clairs et précis au lieu de suppositions.
1
mitch7600 Messages postés 27 Date d'inscription mardi 26 juin 2012 Statut Membre Dernière intervention 6 septembre 2012 7
17 août 2012 à 19:04
bonjour,

oui j avoue avoir fait une erreur fatale, confondre le mot herbergeur avec celui de serveur :(
Sans doute dans l abime de la précipitation et le stress de pas trouver. mia culpa

J ai envoyé un mail à mon hebergeur, qui ma répondu que mon hote serait localhost ou adress ip c est pareil.
Enfin j ai tenté les deux çà fonctionne pas, çà note tjrs pareil :
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for wxyz 'xxxyz'@'localhost' (using password: NO) in /home/xxxz/public_html/section-login.php on line 15
 

Merci :-)
0
Utilisateur anonyme
17 août 2012 à 20:19
Ce message d'erreur signifie que ta connexion n'est pas établie avec la base de données. Tu appelles peut-être la fonction mysql-real-escape-string anat la connexion.

Peux-tu donner les 20 premières lignes de section-login.php - en cachant les mots de passe s'il y en a
1

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

Posez votre question
Utilisateur anonyme
17 août 2012 à 21:12
La fonction mysql_real_escape_string est liée à la connexion à la base de données, tu ne peux pas l'appeler avant d'être connecté à la base

Le plus simple est de mettre la ligne include('connecte.php'); au début du script.
1
mitch7600 Messages postés 27 Date d'inscription mardi 26 juin 2012 Statut Membre Dernière intervention 6 septembre 2012 7
17 août 2012 à 21:17
ok mais pour qu elle page? la page section-lofin c est pas possible j appelle la connection a ma base si l utilisateur entre le bon speudo et bon mot de passe.
0
Utilisateur anonyme
17 août 2012 à 21:57
j appelle la connection a ma base si l utilisateur entre le bon speudo et bon mot de passe.
Non, c'est absurde...
Tu te connectes forcément AVANT, puisque c'est dans la base de données que tu vérifies si le pseudo et le mot de passe sont bons.
Alors tu le mets , peu importe où, pourvu que ce soit AVANT que mysql_real_escape_string soit appelé. Le plus simple, c'est au début.
1
mitch7600 Messages postés 27 Date d'inscription mardi 26 juin 2012 Statut Membre Dernière intervention 6 septembre 2012 7
Modifié par mitch7600 le 17/08/2012 à 22:38
oui vrai d ailleurs j avais mis session_start au début :-S

bon :-D déjà çà note plus le meme...


Warning: mysql_connect() [function.mysql-connect]: Access denied for wxyz 'xyz_admin'@'localhost' (using password: YES) in /home/xyz/public_html/connecte.php on line 9
Access denied for user 'xyz_admin'@'localhost' (using password: YES

Si je change un une valeur des vriables cela note ceci :

Access denied for user 'xyze'@'localhost' to database 'users'
1
Utilisateur anonyme
17 août 2012 à 22:53
oui vrai d ailleurs j avais mis session_start au début Ça n'a absolument aucun rapport.

Warning: mysql_connect() [function.mysql-connect]: Access denied Là, ça veut dire que tu te trompes dans le nom du serveur, le nom d'utilisateur et / ou le mot de passe

Access denied for user 'xyze'@'localhost' to database 'users' Là, il semble que tu aies réussi à te connecter au serveur. Mais il y a une erreur dans le nom de la base, ce n'est pas 'users'
1
mitch7600 Messages postés 27 Date d'inscription mardi 26 juin 2012 Statut Membre Dernière intervention 6 septembre 2012 7
17 août 2012 à 23:04
merci pour me remettre a jour :-) y a du boulot je sais :( merci ;-) je regarde çà tout de suite pour users
0
mitch7600 Messages postés 27 Date d'inscription mardi 26 juin 2012 Statut Membre Dernière intervention 6 septembre 2012 7
17 août 2012 à 23:11
je vous aie envoyé des infos en privé :-) merci
0
Utilisateur anonyme
17 août 2012 à 23:19
Merci, mais ces informations ne m'aident pas à t'aider
D'ailleurs, il y a toujours la même incohérence sur l'utilisation de $DATA et $BASE que je t'avais signalée dès mon premier message.

Qu'est-ce qui marche et qu'est-ce qui ne marche pas actuellement ? Quel(s) message(s) d'erreur?
1
mitch7600 Messages postés 27 Date d'inscription mardi 26 juin 2012 Statut Membre Dernière intervention 6 septembre 2012 7
19 août 2012 à 17:43
bonjour,

Pour $DATA c' est le nom de ma base de données
Par contre $BASE, c' est le nom de la table de $DATA

Par exemple :
<code$reg=mysql_query("SELECT * FROM $BASE WHERE username='$username'");>
</code>

Le message d' erreur des que j' jouvre la page login.php est :
Warning: mysql_connect() [function.mysql-connect]: Access denied for xyz' xyyzz'localhost' (using password: YES) in /home/xyyzzic_html/connecte.php on line 9
 Access denied for user 'xyyzzz_admin'@'localhost' (using password: YES)ost' (using password: YES)

et ma page connnecte.php on line 9 c' est 
mysql_connect($HOST,$LOGIN,$PASS,$DATA) or die (mysql_error());


Merci ;-)
1
mitch7600 Messages postés 27 Date d'inscription mardi 26 juin 2012 Statut Membre Dernière intervention 6 septembre 2012 7
19 août 2012 à 20:18
voiilà j ai pris un mot de pss moins compliqué, meme si c est bizarre maintenant la page s affiche et quand je tape speudo et mot de passe cela note
Warning: Cannot modify header information - headers already sent by (output started at /home/renco43e/public_html/login.php:20) in /home/rxxyyzz/public_html/section-login.php on line 37


çà avance :-)
0
Utilisateur anonyme
19 août 2012 à 21:27
Tu as cette nouvelle erreur parce que tu utilise la fonction header (qui envoie des en-têtes) alors que l'envoi des données est déjà commencé.
En HTTP, en envoie d'abord les entêtes, puis les données. Attention, je parle d'entêtes http, pas des entêtes html sui sont entre <head> et </head> !

Or toi, tu as commencé à envoyer des données dès le début de ton login.php, avec le <!DOCTYPE>. Tu n'as plus le droit ensuite d'appeler la fonction header.

À toi d'organiser ton code pour ne rien envoyer avant d'être sûr que tu n'auras plus de header à faire.
1
mitch7600 Messages postés 27 Date d'inscription mardi 26 juin 2012 Statut Membre Dernière intervention 6 septembre 2012 7
Modifié par mitch7600 le 20/08/2012 à 22:01
Bonsoir,

je suis désolé j ai essayé tout ce que je pensais comprendre sur votre message précédent mais je vois pas ce que je dois faire? :-(
Le gros bon point, c est que ma base de données est reconnue, puisque si je tape un mauvais pseudo/password la page me l' indique. :-)

Merci,
1
Utilisateur anonyme
20 août 2012 à 22:12
Tu ne dois pas appeler la fonction header() après la balise <!DOCTYPE >
Tu sais ce que c'est qu'appeler une fonction ?
Tu sais ce qu'est la balise <!DOCTYPE> ?
Maintenant, si ta question signifiait : " peux-tu ré-écrire mon script ? ", ma réponse est non, car je n'en ai pas le temps.
1
mitch7600 Messages postés 27 Date d'inscription mardi 26 juin 2012 Statut Membre Dernière intervention 6 septembre 2012 7
20 août 2012 à 22:32
non je cherches pas un script mais comme depuis le dénut avancé d ailleur merci de votr attention,
le header que j ai, c est celui de section-login :
                                                           $_SESSION['username']=$username;
			  $_SESSION['password']=$password;
			  header ('Location:membre.php');
0
mitch7600 Messages postés 27 Date d'inscription mardi 26 juin 2012 Statut Membre Dernière intervention 6 septembre 2012 7
22 août 2012 à 22:03
bonsoir,

je penses comprendre qu il faut noter le 'header' avant le doctype. mais le header fonciionne que si les SESSION sont reconnues , alors si je mets mon code avant le doctype. la page reste sur le login.php.
Enfait je demande juste un peu plus de précision? Précision au stade d un novice.

Merci
1
Utilisateur anonyme
23 août 2012 à 08:20
Rien ne t'oblige à envoyer le DOCTYPE avant d'appeler la fonction header.
Tous les sites du monde respectent cette règle, ton cas n'est pas unique.
Le problème, c'est que tu as dans section-login.php une partie qui DOIT être exécutée avant la sortie des données, et une autre qui doit être âtre exécutée après le DOCTYPE : il ne fallait pas regrouper ces deux parties en un seul include.
La solution est de découper ton section-login.php en 2. Une première partie qui conduit vers l'appel à header. Cette partie devra être incluse avant <DOCTYPE.
La deuxième partie qui fait les 'echo' nécessaires, à inclure à l'endroit actuel.
1
mitch7600 Messages postés 27 Date d'inscription mardi 26 juin 2012 Statut Membre Dernière intervention 6 septembre 2012 7
23 août 2012 à 21:21
wahou super la connection se fait, je n étais pas au courant de ce systeme pour la prigrammation??
Pourquoi faut il faire çà? enfin si c est pas abusé de votre expérience?
Par contre ma page maintenant ne prend plus en concidération le CSS?
Que puis je faire?

Merci
1
Utilisateur anonyme
23 août 2012 à 23:13
De quel système de programmation parles-tu ? Il n'y a rien de particulier là-dedans.
Et tout ceci n'a aucun rapport avec le CSS : s'il ne marche plus, c'est que tu as fait une bêtise par ailleurs.

L'envoi des header avant les données n'est pas du tout une question de PHP ni de HTML mais de HTTP.
Quand un serveur envoie un document à un visiteur, il envoie d'abord des en-têtes, puis des données (pas très original)
Attention, je parle d'en-tête http, que tu ne vois jamais même quand tu regardes le source de la page. Ne pas confondre avec l'en-tête HTML compris entre <head> et </head>. Pour http, toute la page html depuis le <!DOCTYPE ou tout autre 'echo' qu'il pourrait y avoir avant, constitue des données.
La fonction header dit au serveur d'envoyer une entête. Si le serveur a commencé à envoyer des données, il ne peut tout simplement plus.
Parmi les headers http, il y a des informations pour les sessions (d'où le session_start lui aussi obligatoirement avant l'envoi des données) et Location. Quand le navigateur du client reçoit une entête "Location", il comprend qu'il doit laisser tomber la page en cours et en redemander une autre. C'est pour ça qu'en général on fait suivre le header("Location: d'un die(); car il n'est pas utile d'exécuter la suite du script car ce qui suit ne sera pas affiché
1
mitch7600 Messages postés 27 Date d'inscription mardi 26 juin 2012 Statut Membre Dernière intervention 6 septembre 2012 7
27 août 2012 à 21:38
franchement désolé je vois pas.. suis nul c est une choses, j ai essayé comme çà :
<?php
include('connecte.php');
if(isset($_SESSION['username']))
{
		unset($_SESSION['username'], $_SESSION['userid']);
}
else
{


   if(isset($_POST['submit']))
{
      $username= mysql_real_escape_string(htmlentities(trim($_POST['username'])));
	  $password= mysql_real_escape_string(htmlentities(trim($_POST['password'])));

  if($username&&$password)
  {
    /*  $password= md5($password);  */
	$password = $password;
    
	 
    	 $query=mysql_query("SELECT * FROM $BASE WHERE username='$username'&&password='$password'");  /* Vérifie si le pseudo et le password font bien partie de la Bd */
		 $rows= mysql_num_rows($query);
		   if($rows==1)  /* 1 = oui */
		    {

			  while($row=mysql_fetch_assoc($query))
			  {
			  $active = $row['active'];  /* vérifie si le compte a été activé */
			  }
		         if($active==1)
				 {
			  $_SESSION['username']=$username;
			  $_SESSION['password']=$password;
			  header ('Location:membre.php');	?>
			  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">


     <head>
       <title></title>	 
           <meta>
		   <script type="text/javascript" src="js/java.js">
	  
</script>

		   
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="css/php.css" />
  </style>
   </head> <body>

<?php include("top.php");?>
 <div id="milieu">
 <p class="standardtable">
<?php

			   }else die( "<span style='font: 20px arial; color: red; '>Votre compte n' est pas encore actif, vous recevrez un mail de confirmation dans les 48h, merci.&nbsp;&nbsp;<a href='login.php'>Retour</a></span>");
			   
			}else echo "<span style='font: 20px arial; color: red; '>Pseudo ou password incorrect</span>";
 
	}else echo "<span style='font: 20px arial; color: red; '>Veuillez saisir tous les champs</span>"; 
}
}	

?>

</p>
 <div id="membres">
     <div id="compte">
	 <u>
<h2>Mon Compte:</h2>
     </u>
	</br>		 

<form method="POST" action="login.php">

<label for="username">Votre pseudo :</label>
	</br>
<input type="text" name="username" id="username" onmouseover="username.value=''" />
</br></br>

 <label for="password">Password :</br>
<input type="password" name="password" onmouseover="password.value=''" />
	         
<input type="submit" name="submit"  value="Me connecter">
<input type="button" name="bouton_survol" value="Retablir" onclick="password.value='Mon mot de passe' , username.value='Mon pseudo'"  size=30/>
  </form>
  </br>
</form>

<TABLE BORDER=2 CELLPADDING=0 CELLSPACING=0">
<TR><TD>
<FORM ACTION="register.php">
<INPUT TYPE="SUBMIT" VALUE="Inscription simple " name="ici" size=80/></TD>
</FORM></TR>
</TABLE>
	</div>

<img class="c" src="img\c.gif" width="450px" height="300px" alt="resto.be"/>	


</div>

 </body>
 </html>



La connection se fait bien mais la page s affiche sans css merci :-(
1
mitch7600 Messages postés 27 Date d'inscription mardi 26 juin 2012 Statut Membre Dernière intervention 6 septembre 2012 7
31 août 2012 à 18:51
Je suis trop compliqué .... abandonné pour m aider...?
0
mitch7600 Messages postés 27 Date d'inscription mardi 26 juin 2012 Statut Membre Dernière intervention 6 septembre 2012 7
17 août 2012 à 20:47
section-login :
<?php

//Si lutilisateur est connecte, on le deconecte
if(isset($_SESSION['username']))
{
	//On le deconecte en supprimant simplement les sessions username et userid
	unset($_SESSION['username'], $_SESSION['userid']);
}
else
{


   if(isset($_POST['submit']))
{
      $username= mysql_real_escape_string(htmlentities(trim($_POST['username'])));
	  $password= mysql_real_escape_string(htmlentities(trim($_POST['password'])));

  if($username&&$password)
  {
    /*  $password= md5($password);  */
	$password = $password;
    include('connecte.php');
	 
    	 $query=mysql_query("SELECT * FROM $BASE WHERE username='$username'&&password='$password'");  /* Vérifie si le pseudo et le password font bien partie de la Bd */
		 $rows= mysql_num_rows($query);
		   if($rows==1)  /* 1 = oui */
		    {

			  while($row=mysql_fetch_assoc($query))
			  {
			  $active = $row['active'];  /* vérifie si le compte a été activé */
			  }
		         if($active==1)
				 {
			  $_SESSION['username']=$username;
			  $_SESSION['password']=$password;
			  header ('Location:membre.php');		
			   
			   }else die( "<span style='font: 20px arial; color: red; '>Votre compte n' est pas encore actif, vous recevrez un mail de confirmation dans les 48h, merci.&nbsp;&nbsp;<a href='login.php'>Retour</a></span>");
			   
			}else echo "<span style='font: 20px arial; color: red; '>Pseudo ou password incorrect</span>";
 
	}else echo "<span style='font: 20px arial; color: red; '>Veuillez saisir tous les champs</span>"; 
}
}	

?>


include('connecte.php') :

 $HOST = "localhost";
 $LOGIN = "xyz_admin";
 $PASS = "XxxYyyzzz";
 $DATA = "xyz_phplogin"; */ nom de la base */
 $BASE = "wxyz";  */ nom de la table */
   
mysql_connect(  $HOST , $LOGIN , $PASS ,  $DATA) or die (mysql_error());
mysql_select_db($BATA) or die (mysql_error());
     ?>


login :

<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">

     <head>
       <title></title>	 
           <meta>
		   <script type="text/javascript" src="js/java.js">
	  
</script>

		   
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="css/phpcss.css" />
  </style>
   </head>
 <body>

<?php require_once("top.php");?> <!-- choix menu -->
 <div id="milieu">
 <p class="standardtable">
<?php
include('section-login.php');
?>
</p>
 <div id="membres">
     <div id="compte">
	 <u>
<h2>Mon Compte:</h2>
     </u>
	</br>		 

<form method="POST" action="login.php">

<label for="username">Votre pseudo :</label>
	</br>
<input type="text" name="username" id="username" onmouseover="username.value=''" />
</br></br>

 <label for="password">Password :</br>
<input type="password" name="password" onmouseover="password.value=''" />
	         
<input type="submit" name="submit"  value="Me connecter">
<input type="button" name="bouton_survol" value="Retablir" onclick="password.value='Mon mot de passe' , username.value='Mon pseudo'"  size=30/>
  </form>
  </br>
</form>

<TABLE BORDER=2 CELLPADDING=0 CELLSPACING=0">
<TR><TD>
<FORM ACTION="register.php">
<INPUT TYPE="SUBMIT" VALUE="Inscription simple et gratuite!" name="ici" size=80/></TD>
</FORM></TR>
</TABLE>
	</div>

<img class="coeur" src="img\coeur.gif" width="450px" height="300px" alt=".be"/>	


</div>

 </body>
 </html>


Voilà, tout y est mais je rapelle que je suis dans l apprentissage seul avec les vidéo forums et explications...

Un grand merci!!!
0
Utilisateur anonyme
31 août 2012 à 21:40
Non, je n'abandonne pas. Je croyais t'avoir fait une réponse, mais je ne la vois pas...
Tu n'as plus de CSS, et ça me semble normal. As-tu regardé le code généré par ta page (Ctrl U). Je parie qu'il y a ni DOCTYPE, ni balise style etc...
En effet, l'envoi de toutes ces infos est fait à l'intérieur du if($active==1). Donc si $active n'est pas à 1, il manque plein de choses au début de ta page.
0
mitch7600 Messages postés 27 Date d'inscription mardi 26 juin 2012 Statut Membre Dernière intervention 6 septembre 2012 7
2 sept. 2012 à 19:06
merci sincérement pour toute l attention porté sur mon sujet.. je ne cherche qu' a comprendre la solution mais malheureusement je ne vois pas la solution? :-(
$active vérifie si le compte a bien le chiffre 1 via la base de donnée $Base dans la colonne active de Myphpadmin.
Que je tape un pseudo/password d un compte activé par 1 ou pas le résultat est identique. Comme vous le stipulez, il n y a pas de doctype, de css...
j ai supprimer cette fonction pour tester si cela ne change tjours pas?
Par contre si le compte n est pas activé, ceci envoie un lien vers la page notaccess. Qui indique quele compte n est pas active.
Pouvez vous m éclairer un peu plus? Merci
0