[RESOLU] PHP5 - Connexion à une base mysql (EasyPhp)

Jip Jip Jip
Invité n'ayant pas de compte PHPfrance

15 mars 2010, 20:37

Bonjour tout le monde !

Pour faire bref, je connaissais pas mal le php et puis j'ai laché la programmation, pour x raisons me revoila dans le php, entre-temps php est passé de la version 4 à 5 et c'est là que ca coince.

Je dois faire un projet pour un client et je voulais reprendre une ancienne programmation qui marchait (et qui marche) très bien sur PHP 4 mais sur PHP5 je n'arrive meme pas à me connecter à la base, et même en essayant plusieurs choses rien ne marche ! En bref : au secouuuuuuuurs !!!

Je vous copie colle dans l'ordre :
- la page où doivent être listés les stagiaires
- le fichier des fonctions
- le fichier de conf
- l'erreur quand j'accède à la page du listing

--------------------------------------------------------------------------------------------------------------------------
<?php
include("config.php");
include("fonctions.php");

?>
<?php
	
			
		function datefr2en($mydate){
		   @list($jour,$mois,$annee)=explode('/',$mydate);
		   return @date('Y-m-d',mktime(0,0,0,$mois,$jour,$annee));
		}
		function dateen2fr($date) { 
			$split = split("-",$date); 
			$annee = $split[0]; 
			$mois = $split[1]; 
			$jour = $split[2]; 
			return "$jour"."-"."$mois"."-"."$annee"; 
		} 

		
		
/*session_start();*/
//require("config.php");
//require("fonctions.php");
//connection($serveur, $login, $password, $base);

 
 $q = "SELECT id_stagiaires, nom, prenom, poste, sexe, statut, naissance FROM stagiaires ORDER BY nom";



	// echo $q;
	$p = mysql_query($q) or die (mysql_error());
	while ($row = mysql_fetch_assoc($p)) 
		{ 
		$id[] = $row["id_salaries"];
		$nom[] = $row["nom"];
		$prenom[] = $row["prenom"];
		$poste[] =  $row["poste"];
		$statut[] =  $row["statut"];
		$naissance[] = $row["naissance"];
		$sexe[] = $row["sexe"];
		}
		$nbtotal = count($id);


	?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Liste des salariés</title>
<style type="text/css">
<!--
.Style1 {	font-size: 36px;
	font-weight: bold;
	font-style: italic;
}
-->
</style>
<style type="text/css">
<!--
.Style1 {	font-size: 36px;
	font-weight: bold;
	font-style: italic;
}
-->
</style>
<link href="style.css" rel="stylesheet" type="text/css">

<style type="text/css">
<!--
.Style2 {font-size: 24px}
.Style7 {
	font-size: 14px;
	font-family: Arial, Helvetica, sans-serif;
}
.Style15 {color: #003579}
.Style17 {
	font-size: 11px;
	font-style: italic;
	color: #000000;
	font-weight: bold;
}
.Style19 {font-size: 18px; font-weight: bold; color: #7E86B7; }
.Style21 {font-size: 11px}
.Style49 {	font-family: Arial, Helvetica, sans-serif;
	font-size: 9px;
	font-weight: bold;
	color: #000099;
}
-->
</style>
</head>

<body><br>

<table align="left"><tr><td><a href="/salaries/index.htm"><img src="data/accueil.png" width="40" border="0"></a></td><td><span class="Style49">ACCUEIL</span></td>
</tr></table>
<table align="right"><tr><td><a href="javascript:history.back();"><img src="data/precedent.png" width="40" border="0"></td><td><span class="Style49">PREC.</span></td>
</tr></table>

<table width="30%"  border="0" cellspacing="0" cellpadding="0" align="center">
    <tr>
      <td><div align="center"><span class="Style1 Style2 Style2"><span class="Style7">Liste des salari&eacute;s </span></span></div></td>
    </tr>
    <tr>
      <td><div align="center"><span class="Style1 Style2 Style2"><img border="0" src="data/lignes026.gif" width="115" height="2"></span></div></td>
    </tr>
</table><br><br>


    <center><table width="80%"  border="0" cellspacing="0" cellpadding="0">
  <?php
  for ($i=0;$i<$nbtotal;$i++)
				{
	?>
	  
    <tr>
      <td width="20">
	    <div align="right">
	      
           <img src="data/<? echo $sexe[$i]?>.jpg" width="50" height="50" align="top" alt="Homme/Femme"><br>
	      
	      
        </div></td>
      <td>
	    <div align="right"><table id="<? echo $numero; ?>" width="100%"  border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td><br><span class="Style15"><?php echo $nom[$i];?>&nbsp;&nbsp; <?php echo $prenom[$i];?></span>
	    <br><span class="Style17">
	  <?php echo $poste[$i]; ?>&nbsp;&nbsp;<span class="Style19">/</span>&nbsp;&nbsp;<?php echo $statut[$i];?>&nbsp;&nbsp;<span class="Style19">/</span>&nbsp;&nbsp; <?php echo $naissance[$i];?>
</span>
	    <hr color="003579" size="1">
	    <span class="Style17">      </span></td>
            <td width="30"><a href="salaries_voir.php?id_salaries=<?php echo $id[$i];?>"><img src="data/loupe.png" align="bottom" border="0" alt="Voir la fiche complète du salarié"></a></td>
          </tr>
        </table>
	    </div>
      </td>
      <td>&nbsp;</td>
    </tr>
  

<?php }
?> 
</table> </center>
  
</body>
</html>
------------------------------------------------------------------------------------------------------------------------------------------

<?
$connect = '' ;
function connection($srv,$log,$pwd,$nom_base)
{
global $connect ;
$connect=mysql_connect($srv,$log,$pwd) or die ("connexion echoué");
mysql_select_db($nom_base,$connect) or die ("connexion a la base echoué");
}


function afficherequete($req)
          {
         $reqres = mysql_query($req) or die ("requete erronée");
         print "<table>";
         while ($ligne = mysql_fetch_array($reqres))
          {
        print "<tr>";
               for ($i=0;$i<mysql_num_fields($reqres);$i++)
                        {
                      print "<td>$ligne[$i] </td>";
                        }
                      print "</tr>";
        }
        print "</table>";
        print "<br>";
 }

 function deconnexion()
 {
 mysql_close();
 }

function finish(){
   window.close();
}

function redirige($url,$sec)
	{
	die('<meta http-equiv="refresh" content='.$sec.';URL='.$url.'>');
	
	}
	
	
 function requete($req)
         {
         global $connect ;
                   $result=mysql_query($req) ;

                   if (!$result) {
                        echo"<hr>" ;
                        echo ("<font color=red>requette échouée : $req</font><br>");
                        echo mysql_error($connect);
                        echo"<hr>" ;
                        return(false);
                   }
                   else {
                       // echo ("requette réussie : $req<br>");
                        return($result);
                   }

          }
 function requeteaffich($req)
         {
         global $connect ;
                   $result=mysql_query($req) ;

                   if (!$result) {
                        echo"<hr>" ;
                        echo ("<font color=red>requette échouée : $req</font><br>");
                        echo mysql_error($connect);
                        echo"<hr>" ;
                        return(false);
                   }
                   else {
                       echo ("requette réussie : $req<br>");
                        return($result);
                   }

          }
		  
?>



----------------------------------------------------------------------------------------------------------------------------------

'); } function requete($req) { global $connect ; $result=mysql_query($req) ; if (!$result) { echo"
--------------------------------------------------------------------------------
" ; echo ("requette échouée : $req
"); echo mysql_error($connect); echo"
--------------------------------------------------------------------------------
" ; return(false); } else { // echo ("requette réussie : $req
"); return($result); } } function requeteaffich($req) { global $connect ; $result=mysql_query($req) ; if (!$result) { echo"
--------------------------------------------------------------------------------
" ; echo ("requette échouée : $req
"); echo mysql_error($connect); echo"
--------------------------------------------------------------------------------
" ; return(false); } else { echo ("requette réussie : $req
"); return($result); } } ?>

Code : Tout sélectionner

Warning: mysql_query() [function.mysql-query]: [2002] Une tentative de connexion a échoué car le parti connecté n’a pa (trying to connect via tcp://localhost:3306) in C:\Program Files\EasyPHP-5.3.2\www\gestion_presence\stagiaires_liste.php on line 34 Warning: mysql_query() [function.mysql-query]: Une tentative de connexion a échoué car le parti connecté n’a pas répondu convenablement au-delà d’une certaine durée ou une connexion établie a échoué car l’hôte de connexion n’a pas répondu. in C:\Program Files\EasyPHP-5.3.2\www\gestion_presence\stagiaires_liste.php on line 34 Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in C:\Program Files\EasyPHP-5.3.2\www\gestion_presence\stagiaires_liste.php on line 34 Fatal error: Maximum execution time of 30 seconds exceeded in C:\Program Files\EasyPHP-5.3.2\www\gestion_presence\stagiaires_liste.php on line 34
--------------------------------------------------------------------------------------------------------------------------------------
Comme vous le voyez, les erreurs sont plutot étranges, du moins leur présentation.

Je suis vraiment paumé et je crois que j'ai énormément que le PHP pour moi soit devenu bien lointain.
En tout cas, je vous remercie pour vos réponses ! En espérant qu'il y ait une solution.

Bonne soirée à tous et encore merci !

Jip Jip Jip
Invité n'ayant pas de compte PHPfrance

15 mars 2010, 20:41

Ah, et j'oubliais, si vous avez des astuces ou morceaux de codes utiles sous PHP5 je suis preneur car j'imagine que la façon a du évoluer elle aussi !

Merci !! :)

ViPHP
ViPHP | 2286 Messages

15 mars 2010, 20:51

Bonsoir,

tu as un timeout réseau lors de la connexion à MySQL, ce qui signifie probablement que tes paramètres d'accès sont en cause (nom d'hôte ou ip).

Regarde du côté de ton fichier config.php, et compare avec les paramètres d'accès à MySQL sur ta configuration actuelle (et actualise-les au besoin) ;)
if(!@work()){ Nespresso(); } else { what(); }
______________________________

Jip Jip Jip
Invité n'ayant pas de compte PHPfrance

16 mars 2010, 12:37

Bonjour,

Merci pour ta réponse mais j'avais déjà vérifié ce point, voici les paramètres de mysql (copier/coller de easyphp) :

MySQL parameters

MySQL parameters (default MySQL account)

■Host : 'localhost'
■Username : 'root'
■Password : '' (no password)
■Path to the database root (datadir) : C:\Program Files\EasyPHP-5.3.2\mysql\data\

Et mon fichier config.php :
<?
	$serveur = "localhost";
	$login = "root";
	$password= "";
	$base = "gestion_presence";
	$c = mysql_connect($serveur, $login, $password);
	mysql_select_db($base,$c);
	
	session_start();

		
?>

Et toujours cette erreur donc :

'); } function requete($req) { global $connect ; $result=mysql_query($req) ; if (!$result) { echo"
--------------------------------------------------------------------------------
" ; echo ("requette échouée : $req
"); echo mysql_error($connect); echo"
--------------------------------------------------------------------------------
" ; return(false); } else { // echo ("requette réussie : $req
"); return($result); } } function requeteaffich($req) { global $connect ; $result=mysql_query($req) ; if (!$result) { echo"
--------------------------------------------------------------------------------
" ; echo ("requette échouée : $req
"); echo mysql_error($connect); echo"
--------------------------------------------------------------------------------
" ; return(false); } else { echo ("requette réussie : $req
"); return($result); } } ?>

Code : Tout sélectionner

Warning: mysql_query() [function.mysql-query]: [2002] Une tentative de connexion a échoué car le parti connecté n’a pa (trying to connect via tcp://localhost:3306) in C:\Program Files\EasyPHP-5.3.2\www\gestion_presence\stagiaires_liste.php on line 34 Warning: mysql_query() [function.mysql-query]: Une tentative de connexion a échoué car le parti connecté n’a pas répondu convenablement au-delà d’une certaine durée ou une connexion établie a échoué car l’hôte de connexion n’a pas répondu. in C:\Program Files\EasyPHP-5.3.2\www\gestion_presence\stagiaires_liste.php on line 34 Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in C:\Program Files\EasyPHP-5.3.2\www\gestion_presence\stagiaires_liste.php on line 34 Fatal error: Maximum execution time of 30 seconds exceeded in C:\Program Files\EasyPHP-5.3.2\www\gestion_presence\stagiaires_liste.php on line 34
J'avoue être complètement paumé car pour moi il n'y aucune erreur, j'ai meme désactivé Kaspersky dans le doute qu'il bloque un port mais rien 'y fait ! grrr !

Merci pour vos réponses !

PS : suis-je si nul que ca ? lol

ViPHP
ViPHP | 5462 Messages

16 mars 2010, 12:49

change localhost en 127.0.0.1

Jip Jip Jip
Invité n'ayant pas de compte PHPfrance

16 mars 2010, 14:15

J'avais déjà testé, dans le doute je l'ai refais mais toujours la meme erreur.

Au cas où, voici ma config :
Windows 7

Apache 2.2.14
MySql 5.1.43
PHP 5.3.2

J'ai testé sous Windows XP et pareil... j'en perds mon latin !

Jip Jip Jip
Invité n'ayant pas de compte PHPfrance

16 mars 2010, 14:19

Sinon je me demandais, ne serait-ce pas EasyPhp le fautif ?

Wamp Server est-il mieux ?

ViPHP
ViPHP | 5462 Messages

16 mars 2010, 14:27

Sinon je me demandais, ne serait-ce pas EasyPhp le fautif ?

Wamp Server est-il mieux ?
easy php et wamp c'est des pack donc dedans c'est les mêmes choses (apache + php + mysql)
verifie bien ton fichier hosts (\windows\system32\drivers\etc)

127.0.0.1 localhost

(si cette ligne est commenté avec un # tu l'enlèves, si elle y est pas tu la rajoute)
Modifié en dernier par stealth35 le 16 mars 2010, 14:32, modifié 1 fois.

Jip Jip Jip
Invité n'ayant pas de compte PHPfrance

16 mars 2010, 14:31

Ok, je demandais au cas où, on sait jamais si EasyPhp soit connu pour ce genre de bug.

Pour le fichier hosts :

# Copyright (c) 1993-2006 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host

127.0.0.1 localhost
::1 localhost

ViPHP
ViPHP | 5462 Messages

16 mars 2010, 14:36

commente la ligne
::1 localhost

#::1 localhost

Modérateur PHPfrance
Modérateur PHPfrance | 7637 Messages

16 mars 2010, 14:50

Modération :
Afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Jip Jip Jip
Invité n'ayant pas de compte PHPfrance

16 mars 2010, 15:04

Ca avance ! Enfin du moins il y a un autre message d'erreur :

Code : Tout sélectionner

'); } function requete($req) { global $connect ; $result=mysql_query($req) ; if (!$result) { echo" -------------------------------------------------------------------------------- " ; echo ("requette échouée : $req "); echo mysql_error($connect); echo" -------------------------------------------------------------------------------- " ; return(false); } else { // echo ("requette réussie : $req "); return($result); } } function requeteaffich($req) { global $connect ; $result=mysql_query($req) ; if (!$result) { echo" -------------------------------------------------------------------------------- " ; echo ("requette échouée : $req "); echo mysql_error($connect); echo" -------------------------------------------------------------------------------- " ; return(false); } else { echo ("requette réussie : $req "); return($result); } } ?> Warning: mysql_query() [function.mysql-query]: Accès refusé pour l'utilisateur: 'JP'@'@localhost' (mot de passe: NON) in C:\Program Files\EasyPHP-5.3.2\www\gestion_presence\stagiaires_liste.php on line 34 Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in C:\Program Files\EasyPHP-5.3.2\www\gestion_presence\stagiaires_liste.php on line 34 Accès refusé pour l'utilisateur: 'JP'@'@localhost' (mot de passe: NON)

Par contre je comprends pas où il trouve l'utilisateur JP, il est défini nulle part ! Par contre je m'appelle bien JP ! lol

ViPHP
ViPHP | 5462 Messages

16 mars 2010, 15:11

on vois pas grand chose avec tes sauts ligne bizarre
pourquoi "global $connect" ? ta variable s'apelle $c dans ta config
ta bien inclus ton fichier de config ? ta pas un mysql_close qui traine avant ?
dans mysq_query tu peux rajouter la ressource
mysq_query($sql, $c)
http://php.net/manual/fr/function.mysql-query.php

:wink:

Jip Jip Jip
Invité n'ayant pas de compte PHPfrance

16 mars 2010, 15:20

Justement je comprends pas ces lignes avant les erreurs :

Code : Tout sélectionner

'); } function requete($req) { global $connect ; $result=mysql_query($req) ; if (!$result) { echo" -------------------------------------------------------------------------------- " ; echo ("requette échouée : $req "); echo mysql_error($connect); echo" -------------------------------------------------------------------------------- " ; return(false); } else { // echo ("requette réussie : $req "); return($result); } } function requeteaffich($req) { global $connect ; $result=mysql_query($req) ; if (!$result) { echo" -------------------------------------------------------------------------------- " ; echo ("requette échouée : $req "); echo mysql_error($connect); echo" -------------------------------------------------------------------------------- " ; return(false); } else { echo ("requette réussie : $req "); return($result); } } ?>
Sinon oui j'ai bien les include dans "stagiaires_liste.php"
<?php
include("config.php");
include("fonctions.php");

?>
Je remet le fichier config.php :
<?
	$serveur = "localhost";
	$login = "root";
	$password= "";
	$base = "gestion_presence";
	$c = mysql_connect($serveur, $login, $password);
	mysql_select_db($base,$c);
	
	session_start();

		
?>

Et le fichier fonctions.php :
<?
$connect = '' ;
function connection($srv,$log,$pwd,$nom_base)
{
global $connect ;
$connect=mysql_connect($srv,$log,$pwd) or die ("connexion echoué");
mysql_select_db($nom_base,$connect) or die ("connexion a la base echoué");
}


function afficherequete($req)
          {
         $reqres = mysql_query($req) or die ("requete erronée");
         print "<table>";
         while ($ligne = mysql_fetch_array($reqres))
          {
        print "<tr>";
               for ($i=0;$i<mysql_num_fields($reqres);$i++)
                        {
                      print "<td>$ligne[$i] </td>";
                        }
                      print "</tr>";
        }
        print "</table>";
        print "<br>";
 }

 function deconnexion()
 {
 mysql_close();
 }

function finish(){
   window.close();
}

function redirige($url,$sec)
	{
	die('<meta http-equiv="refresh" content='.$sec.';URL='.$url.'>');
	
	}
	
	
 function requete($req)
         {
         global $connect ;
                   $result=mysql_query($req) ;

                   if (!$result) {
                        echo"<hr>" ;
                        echo ("<font color=red>requette échouée : $req</font><br>");
                        echo mysql_error($connect);
                        echo"<hr>" ;
                        return(false);
                   }
                   else {
                       // echo ("requette réussie : $req<br>");
                        return($result);
                   }

          }
 function requeteaffich($req)
         {
         global $connect ;
                   $result=mysql_query($req) ;

                   if (!$result) {
                        echo"<hr>" ;
                        echo ("<font color=red>requette échouée : $req</font><br>");
                        echo mysql_error($connect);
                        echo"<hr>" ;
                        return(false);
                   }
                   else {
                       echo ("requette réussie : $req<br>");
                        return($result);
                   }

          }
		  
?>

ViPHP
ViPHP | 5462 Messages

16 mars 2010, 15:23

mais au niveau de ton code tu appelles ca ou ?