Utiliser une classe pour se connecter
Fermé
maxireussite
Messages postés
372
Date d'inscription
jeudi 10 mai 2007
Statut
Membre
Dernière intervention
11 mars 2020
-
Modifié par maxireussite le 3/06/2014 à 04:38
maxireussite Messages postés 372 Date d'inscription jeudi 10 mai 2007 Statut Membre Dernière intervention 11 mars 2020 - 5 juin 2014 à 13:04
maxireussite Messages postés 372 Date d'inscription jeudi 10 mai 2007 Statut Membre Dernière intervention 11 mars 2020 - 5 juin 2014 à 13:04
A voir également:
- Utiliser une classe pour se connecter
- Se connecter à gmail sur téléphone - Guide
- Utiliser chromecast - Guide
- Se connecter à ma boite hotmail - Guide
- Facebook se connecter à un autre compte - Guide
- Yahoo mail se connecter - Guide
15 réponses
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
526
3 juin 2014 à 10:37
3 juin 2014 à 10:37
Salut,
Il serait beaucoup plus facile de t'aider avec un message d'erreur php (regarde les logs ou change la configuration de php pour les afficher).
Tu peux avoir au moins deux problèmes possibles :
- connexion PDO : vérifier les infos de connexion et changer le mode d'erreur par défaut de PDO (https://www.php.net/manual/fr/pdo.error-handling.php
- problème d'inclusion du fichier connexion.php (require_once) : le chemin vers le fichier connexion est-il correct ?
Il serait beaucoup plus facile de t'aider avec un message d'erreur php (regarde les logs ou change la configuration de php pour les afficher).
Tu peux avoir au moins deux problèmes possibles :
- connexion PDO : vérifier les infos de connexion et changer le mode d'erreur par défaut de PDO (https://www.php.net/manual/fr/pdo.error-handling.php
- problème d'inclusion du fichier connexion.php (require_once) : le chemin vers le fichier connexion est-il correct ?
maxireussite
Messages postés
372
Date d'inscription
jeudi 10 mai 2007
Statut
Membre
Dernière intervention
11 mars 2020
5
Modifié par maxireussite le 3/06/2014 à 11:52
Modifié par maxireussite le 3/06/2014 à 11:52
Merci.
Mais je suis hébergé, donc pas moyen de régler php.
Et je n'ai pas de message, vu que la connexion fonctionne.
En testant par exemple sans mot de passe, l'erreur s'affiche effectivement !
Mon problème vient certainement de require_once, je pense..
Mais je suis hébergé, donc pas moyen de régler php.
Et je n'ai pas de message, vu que la connexion fonctionne.
En testant par exemple sans mot de passe, l'erreur s'affiche effectivement !
Mon problème vient certainement de require_once, je pense..
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
526
Modifié par Pitet le 3/06/2014 à 14:17
Modifié par Pitet le 3/06/2014 à 14:17
Tu peux afficher les erreurs php pour un script en particulier en y ajoutant ce code au début :
(ne fonctionne pas si tu as une erreur de syntaxe php dans le script)
Tes deux fichiers sont dans le même dossier ?
<?php ini_set('display_errors', true); error_reporting(E_ALL); // suite de ton code ... require_once('connexion.php');
(ne fonctionne pas si tu as une erreur de syntaxe php dans le script)
Tes deux fichiers sont dans le même dossier ?
maxireussite
Messages postés
372
Date d'inscription
jeudi 10 mai 2007
Statut
Membre
Dernière intervention
11 mars 2020
5
Modifié par maxireussite le 3/06/2014 à 14:33
Modifié par maxireussite le 3/06/2014 à 14:33
Oui, les 2 sont dans le même dossier.
Avec ton code, voilà l'erreur que ça donne :
"Parse error: syntax error, unexpected $end in /home/******/html/lorganisation/inscriptions/connexion.php on line 17 "
Voilà le script complet de connexion.php :
<?php
// Connection au serveur
$PARAM_hote='localhost'; // le chemin vers le serveur
$PARAM_nom_bd='*****'; // le nom de votre base de données
$PARAM_utilisateur='***'; // nom d'utilisateur pour se connecter
$PARAM_mot_passe='****'; // mot de passe de l'utilisateur pour se connecter
try
{
$connexion = new PDO('mysql:host='.$PARAM_hote.';dbname='.$PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe);
}
catch(Exception $e)
{
echo 'Erreur : '.$e->getMessage().'<br />';
echo 'N° : '.$e->getCode();
?>
Avec ton code, voilà l'erreur que ça donne :
"Parse error: syntax error, unexpected $end in /home/******/html/lorganisation/inscriptions/connexion.php on line 17 "
Voilà le script complet de connexion.php :
<?php
// Connection au serveur
$PARAM_hote='localhost'; // le chemin vers le serveur
$PARAM_nom_bd='*****'; // le nom de votre base de données
$PARAM_utilisateur='***'; // nom d'utilisateur pour se connecter
$PARAM_mot_passe='****'; // mot de passe de l'utilisateur pour se connecter
try
{
$connexion = new PDO('mysql:host='.$PARAM_hote.';dbname='.$PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe);
}
catch(Exception $e)
{
echo 'Erreur : '.$e->getMessage().'<br />';
echo 'N° : '.$e->getCode();
?>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
526
3 juin 2014 à 14:58
3 juin 2014 à 14:58
Effectivement, tu n'as pas fermé l'accolade du bloc catch :
<?php // Connection au serveur $PARAM_hote='localhost'; // le chemin vers le serveur $PARAM_nom_bd='*****'; // le nom de votre base de données $PARAM_utilisateur='***'; // nom d'utilisateur pour se connecter $PARAM_mot_passe='****'; // mot de passe de l'utilisateur pour se connecter try { $connexion = new PDO('mysql:host='.$PARAM_hote.';dbname='.$PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe); } catch(Exception $e) { echo 'Erreur : '.$e->getMessage().'<br />'; echo 'N° : '.$e->getCode(); } ?>
maxireussite
Messages postés
372
Date d'inscription
jeudi 10 mai 2007
Statut
Membre
Dernière intervention
11 mars 2020
5
3 juin 2014 à 15:37
3 juin 2014 à 15:37
Merci bcp,
mais ma requête reste désespérément vide.
Avec une connexion "normale" elle fonctionne et alimente une zone de liste qui fonctionne.
Mais avec la classe c choux gras !
mais ma requête reste désespérément vide.
Avec une connexion "normale" elle fonctionne et alimente une zone de liste qui fonctionne.
Mais avec la classe c choux gras !
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
526
3 juin 2014 à 16:15
3 juin 2014 à 16:15
Que veux tu dire par "connexion normale" ? Avec l'api Mysql à la place de PDO ?
La méthode query() ne fait qu'exécuter ta requête, il faut ensuite parcourir le résultat avec un fetch. Où est le code qui alimente la liste ?
La méthode query() ne fait qu'exécuter ta requête, il faut ensuite parcourir le résultat avec un fetch. Où est le code qui alimente la liste ?
maxireussite
Messages postés
372
Date d'inscription
jeudi 10 mai 2007
Statut
Membre
Dernière intervention
11 mars 2020
5
Modifié par maxireussite le 3/06/2014 à 18:45
Modifié par maxireussite le 3/06/2014 à 18:45
:) , j'entends par "normal" ceci :
"<?php
$db='****';
$cnx=mysql_connect('localhost', '****', '****') or die("Pb connexion serveur ".mysql_error());
$db_sel=mysql_select_db($db) or die("Erreur de selection ".mysql_error());
$requete = mysql_query("SELECT ville_id, ville FROM eg_villes") or die("Pb avec la requette ".mysql_error());
?>"
Ce script de connexion (à remplacer par la classe) alimente cette zone de liste qui fonctionne à merveille :
"<select name="ville_id" style="width: 224px">
<option selected="selected">Lieu de résidence</option>
<?php
while ($valeur = mysql_fetch_array($requete)){
echo "<option value=\"". $valeur['ville_id'] ."\" cli_name=\"". $valeur['ville'] ."\">". $valeur['ville'] ."</option>n";
}
?>
</select>"
"<?php
$db='****';
$cnx=mysql_connect('localhost', '****', '****') or die("Pb connexion serveur ".mysql_error());
$db_sel=mysql_select_db($db) or die("Erreur de selection ".mysql_error());
$requete = mysql_query("SELECT ville_id, ville FROM eg_villes") or die("Pb avec la requette ".mysql_error());
?>"
Ce script de connexion (à remplacer par la classe) alimente cette zone de liste qui fonctionne à merveille :
"<select name="ville_id" style="width: 224px">
<option selected="selected">Lieu de résidence</option>
<?php
while ($valeur = mysql_fetch_array($requete)){
echo "<option value=\"". $valeur['ville_id'] ."\" cli_name=\"". $valeur['ville'] ."\">". $valeur['ville'] ."</option>n";
}
?>
</select>"
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
526
4 juin 2014 à 09:22
4 juin 2014 à 09:22
Ta classe utilise l'API PDO alors que le reste de ton code utilise l'ancienne API Mysql. Tu ne peux pas utiliser les deux API ensemble de cette façon, dans l'idéal il faut utiliser uniquement PDO et oublié l'API Mysql qui est osbolète.
Il faut donc remplacer ton mysql_fetch_array par un $connexion->fetch, mysql_error par $connexion->errorInfo(), etc...
Il faut donc remplacer ton mysql_fetch_array par un $connexion->fetch, mysql_error par $connexion->errorInfo(), etc...
maxireussite
Messages postés
372
Date d'inscription
jeudi 10 mai 2007
Statut
Membre
Dernière intervention
11 mars 2020
5
4 juin 2014 à 12:26
4 juin 2014 à 12:26
Bon, ben même si j'ai pas tout saisi pour l'heure , je sais au moins où creuser.
Merci bcp en tout cas de ton aide précieuse.
Merci bcp en tout cas de ton aide précieuse.
maxireussite
Messages postés
372
Date d'inscription
jeudi 10 mai 2007
Statut
Membre
Dernière intervention
11 mars 2020
5
4 juin 2014 à 17:09
4 juin 2014 à 17:09
Bon, ben me revoilà !
j'ai tenté de remplacer mysql_fetch_array par un $connexion->fetch, en faisant ça :
"<?php
while ($valeur = $connexion->fetch($requete)){
echo "<option value=\"". $valeur['ville_id'] ."\" cli_name=\"". $valeur['ville'] ."\">". $valeur['ville'] ."</option>n";
}
?>"
mais ça ne donne rien ...!
Tu as bien compris que j'ai le niveau bidouille +, et qu'il faudrait me prendre par la main.
j'ai tenté de remplacer mysql_fetch_array par un $connexion->fetch, en faisant ça :
"<?php
while ($valeur = $connexion->fetch($requete)){
echo "<option value=\"". $valeur['ville_id'] ."\" cli_name=\"". $valeur['ville'] ."\">". $valeur['ville'] ."</option>n";
}
?>"
mais ça ne donne rien ...!
Tu as bien compris que j'ai le niveau bidouille +, et qu'il faudrait me prendre par la main.
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
526
4 juin 2014 à 17:18
4 juin 2014 à 17:18
Ton code semble correct, hormis le caractère n après la balise </option> qui doit être une faute de frappe je suppose.
Si ça ne donne rien, deux raisons possibles :
- ta requête ne retourne aucun résultat (ce qui est étonnant car tu fais un simple SELECT sans WHERE donc à moins que ta table soit vide tu devrais avoir un résultat)
- tu as une erreur php ou sql
Peux tu poster ton code complet stp ?
Si ça ne donne rien, deux raisons possibles :
- ta requête ne retourne aucun résultat (ce qui est étonnant car tu fais un simple SELECT sans WHERE donc à moins que ta table soit vide tu devrais avoir un résultat)
- tu as une erreur php ou sql
Peux tu poster ton code complet stp ?
maxireussite
Messages postés
372
Date d'inscription
jeudi 10 mai 2007
Statut
Membre
Dernière intervention
11 mars 2020
5
4 juin 2014 à 17:39
4 juin 2014 à 17:39
La table n'est pas vide, vu que la requête fonctionne différemment.
Voila le code php intégré à la page pour alimenter la zone de liste d'un formulaire, à moins que tu veuilles toute la page ?
"<?php
ini_set('display_errors', true);
error_reporting(E_ALL);
require_once'connexion.php';
$requete = $connexion->query("SELECT ville_id, ville FROM eg_villes") or die("Pb avec la requette".$connexion->errorInfo());
?>
<tr>
<td class="auto-style1" colspan="2">Commune *:</td>
<td colspan="2" style="width: 460px"><select name="ville_id" style="width: 224px">
<option selected="selected">Lieu de résidence</option>
"<?php
while ($valeur = $connexion->fetch($requete))
{
echo "<option value=\"". $valeur['ville_id'] ."\" cli_name=\"". $valeur['ville'] ."\">". $valeur['ville'] ."</option>";
}
?>"
</select>
"
Voila le code php intégré à la page pour alimenter la zone de liste d'un formulaire, à moins que tu veuilles toute la page ?
"<?php
ini_set('display_errors', true);
error_reporting(E_ALL);
require_once'connexion.php';
$requete = $connexion->query("SELECT ville_id, ville FROM eg_villes") or die("Pb avec la requette".$connexion->errorInfo());
?>
<tr>
<td class="auto-style1" colspan="2">Commune *:</td>
<td colspan="2" style="width: 460px"><select name="ville_id" style="width: 224px">
<option selected="selected">Lieu de résidence</option>
"<?php
while ($valeur = $connexion->fetch($requete))
{
echo "<option value=\"". $valeur['ville_id'] ."\" cli_name=\"". $valeur['ville'] ."\">". $valeur['ville'] ."</option>";
}
?>"
</select>
"
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
526
5 juin 2014 à 11:31
5 juin 2014 à 11:31
Essaye d'afficher le contenu de tes variables pour débuger :
- ajoute un var_dump($requete); après l'exécution de la requête
- ajoute un var_dump($valeur); dans la boucle while
et regarde le code source de ta page
- ajoute un var_dump($requete); après l'exécution de la requête
- ajoute un var_dump($valeur); dans la boucle while
et regarde le code source de ta page
maxireussite
Messages postés
372
Date d'inscription
jeudi 10 mai 2007
Statut
Membre
Dernière intervention
11 mars 2020
5
5 juin 2014 à 13:04
5 juin 2014 à 13:04
Merci.
Je n'ai jamais utiliser ces expressions, mais je vais voir comment faire.
Je n'ai jamais utiliser ces expressions, mais je vais voir comment faire.