par
gboul » 26 mars 2019, 00:12
Bonjour à tous,
J'ai cherché sur le net, aussi bien des cours de MySQL en PHP que des forum, mais je n'ai pas trouvé mon bonheur. Du coup, je me permet d'ouvrir un post afin de voir si quelqu'un pouvais m'aider.
J'ai depuis un an environ un site internet que j'ai écrit en PHP. Dans celui-ci, j'ai une base de données utilisateurs. Lorsque j'ouvre ma page d'accueil, je peux savoir le nombre de personnes qui se sont inscrites sur mon site. Depuis un an, j'avais un serveur à la maison qui hébergeait mon site et j'utilisais une requête mysqli afin d'avoir ceci. Par contre, suite à un déménagement à l'étranger, je me suis mis sur un serveur mutualisé et j'ai dû recodé une partie de mon site en utilisant la fonction "new PDO" pour la connexion MySQL et c'est là que les ennuis ont commencés. Je pense que ça doit être un truc tout bête, mais je dois dire que ça fait plusieurs jours que je suis dessus et je n'y arrive plus.
Ma page d'accueil (qui fonctionne très bien) me donne le nombre de personnes inscrites sur mon site. Pour cela, j'ai codé ceci
try
{
$link=new PDO('mysql:host='.$server.'; dbname='.$database.'', $mysql_user, $mysql_pwd);
}
catch (Exception $e)
{
die('Erreur: '. $e->getMessage());
}
$requete = "SELECT * FROM Ma_Base";
if ($result_query=$link->query($requete))
{
while($dnn = $result_query->fetch())
{
$num_rows++;
}
$result_query->Close();
echo "$num_rows inscrits";
}
}
Par la suite, lorsque quelqu'un veux se connecter, une autre page est utilisée avec la requête MySQL suivante, qui tombe en échec:
try
{
$link=new PDO('mysql:host='.$server.'; dbname='.$database.'', $mysql_user, $mysql_pwd);
}
catch (Exception $e)
{
die('Erreur: '. $e->getMessage());
}
$requete="SELECT * FROM Ma_Base WHERE user_name LIKE '$Login' AND pswrd LIKE PASSWORD('$Pass') AND active LIKE 'true'";
if ($result_query=$link->query($requete))
{
while($dnn = $result_query->fetch())
{
...
}
$result_query->closeCursor();
}
En comparant les deux codes, je me dit que la seule différence vient du fait que dans le deuxième cas, je fait une requête conditionnelle. Du coup, j'ai essayé de l'écrire différemment, comme par exemple en utilisant ' ' à la place de " ". J'ai aussi essayé en supprimant complètement les ' '. Mais rien n'y fait. Je dois probablement avoir plusieurs erreurs qui font que lorsque j'arrive à en corriger une, une autre erreur non corrigé empêche le code de fonctionner. J'ai même essayé un vérificateur de code PHP, mais il ne m'a rient trouvé.
Si quelqu'un a une idée sur ce qui ne fonctionne pas, je suis tout à fait preneur.
Je vous remercie pour votre aide.
Guillaume
PHP: 7.0
MySQL: 5.1
Bonjour à tous,
J'ai cherché sur le net, aussi bien des cours de MySQL en PHP que des forum, mais je n'ai pas trouvé mon bonheur. Du coup, je me permet d'ouvrir un post afin de voir si quelqu'un pouvais m'aider.
J'ai depuis un an environ un site internet que j'ai écrit en PHP. Dans celui-ci, j'ai une base de données utilisateurs. Lorsque j'ouvre ma page d'accueil, je peux savoir le nombre de personnes qui se sont inscrites sur mon site. Depuis un an, j'avais un serveur à la maison qui hébergeait mon site et j'utilisais une requête mysqli afin d'avoir ceci. Par contre, suite à un déménagement à l'étranger, je me suis mis sur un serveur mutualisé et j'ai dû recodé une partie de mon site en utilisant la fonction "new PDO" pour la connexion MySQL et c'est là que les ennuis ont commencés. Je pense que ça doit être un truc tout bête, mais je dois dire que ça fait plusieurs jours que je suis dessus et je n'y arrive plus.
Ma page d'accueil (qui fonctionne très bien) me donne le nombre de personnes inscrites sur mon site. Pour cela, j'ai codé ceci
[PHP]
try
{
$link=new PDO('mysql:host='.$server.'; dbname='.$database.'', $mysql_user, $mysql_pwd);
}
catch (Exception $e)
{
die('Erreur: '. $e->getMessage());
}
$requete = "SELECT * FROM Ma_Base";
if ($result_query=$link->query($requete))
{
while($dnn = $result_query->fetch())
{
$num_rows++;
}
$result_query->Close();
echo "$num_rows inscrits";
}
}
[/PHP]
Par la suite, lorsque quelqu'un veux se connecter, une autre page est utilisée avec la requête MySQL suivante, qui tombe en échec:
[PHP]
try
{
$link=new PDO('mysql:host='.$server.'; dbname='.$database.'', $mysql_user, $mysql_pwd);
}
catch (Exception $e)
{
die('Erreur: '. $e->getMessage());
}
$requete="SELECT * FROM Ma_Base WHERE user_name LIKE '$Login' AND pswrd LIKE PASSWORD('$Pass') AND active LIKE 'true'";
if ($result_query=$link->query($requete))
{
while($dnn = $result_query->fetch())
{
...
}
$result_query->closeCursor();
}
[/PHP]
En comparant les deux codes, je me dit que la seule différence vient du fait que dans le deuxième cas, je fait une requête conditionnelle. Du coup, j'ai essayé de l'écrire différemment, comme par exemple en utilisant ' ' à la place de " ". J'ai aussi essayé en supprimant complètement les ' '. Mais rien n'y fait. Je dois probablement avoir plusieurs erreurs qui font que lorsque j'arrive à en corriger une, une autre erreur non corrigé empêche le code de fonctionner. J'ai même essayé un vérificateur de code PHP, mais il ne m'a rient trouvé.
Si quelqu'un a une idée sur ce qui ne fonctionne pas, je suis tout à fait preneur.
Je vous remercie pour votre aide.
Guillaume
PHP: 7.0
MySQL: 5.1