Mot de passe pour page php

Résolu/Fermé
florire Messages postés 151 Date d'inscription lundi 15 juillet 2013 Statut Membre Dernière intervention 15 juillet 2022 - Modifié par florire le 6/11/2013 à 12:08
florire Messages postés 151 Date d'inscription lundi 15 juillet 2013 Statut Membre Dernière intervention 15 juillet 2022 - 7 nov. 2013 à 20:35
Bonjour,
J'aimerais pouvoir bloqué une page de mon site par mot de passe mais pour compliqué la chose j'aimerais qu'il y ait plusieurs code valide (que je définit)

Dans ma base de donné j'ai créer une table "mot_de_passe" avec 2 colone.
1) Nom : id ; Type : int(11) ; Extra : AI
2) Nom : passe ; Type : VACHAR(10)

Version Php: 5.3
BDD : mysql

<?php
$dsn = 'mysql:host=mysql.hostinger.fr;port=3306;dbname=u839528755_jeu';
$username = 'AAAAAAAA';
$password = 'XXXXXXXX';
try {
$db = new PDO($dsn, $username, $password);
} catch(Exception $e) {
exit('Erreur : '.$e->getMessage());
}
$pass = $_POST['code'];
$pass_rechercher ="SELECT * FROM mot_de_passe where passe = '$pass'";
$requete=mysql_query ($pass_rechercher);
$nombre_pass = $mysql_num_rows($requete);


// Si le mot de passe n'a pas été envoyé ou n'est pas bon
if (!isset($_POST['code']) or $nombre_pass = 0)
// On affiche le formulaire
{
echo ' <form action="test1.php" method="post">
<p>
<input type="password" name="code" />
<input type="submit" value="Valider" />
</p>
</form>';
}
// Si le mot de passe a été envoyé et il est bon
if (isset($_POST['code']) AND $nombre_pass > 0)
{
echo'
Ici le contenue bloqué';
}
?>

Erreur : Warning: mysql_query(): Access denied for user 'root'@'localhost' (using password: NO) in /home/u839528755/public_html/1/test1.php on line 12 Warning: mysql_query(): A link to the server could not be established in /home/u839528755/public_html/1/test1.php on line 12 Fatal error: Function name must be a string in /home/u839528755/public_html/1/test1.php on line 13


Merci d'avance pour votre aide

3 réponses

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
6 nov. 2013 à 12:13
Salut,

Ton erreur indique un problème de connexion à la base de données.

Vérifie que tes informations de connexions soit correctes (host mysql, numéro de port, username et password).

Bonne journée
0
florire Messages postés 151 Date d'inscription lundi 15 juillet 2013 Statut Membre Dernière intervention 15 juillet 2022 6
6 nov. 2013 à 13:29
$dsn = 'mysql:host=mysql.hostinger.fr;port=3306;dbname=u839528755_jeu';
$username = 'AAAAAAAA';
$password = 'XXXXXXXX';
try {
$db = new PDO($dsn, $username, $password);
} catch(Exception $e) {
exit('Erreur : '.$e->getMessage());
}

Toute cette partie est remplie avec les bonne information.
D'ailleurs pour testé cette partie je les mis seule dans une page et aucun message d'erreur apparait.

j'ai plutôt du oublier quelque chose dans cette ligne mais je sais pas quoi
$requete=mysql_query ($pass_rechercher);
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
Modifié par Pitet le 6/11/2013 à 14:28
Je n'avais pas regarder en détail.

Tu crée ta connexion avec l'api PDO, puis tu exécute ta requête avec l'extension php mysql_, tu utilises donc 2 api différentes.

Il faut que tu utilises soit uniquement PDO, soit uniquement mysql_, mais on ne peut pas les mélanger comme ca.

Au passage l'extension mysql_ est dépréciée et vouée à disparaitre. Il est conseillé d'utiliser mysqli_ à la place pour gagner en performance.
0
florire Messages postés 151 Date d'inscription lundi 15 juillet 2013 Statut Membre Dernière intervention 15 juillet 2022 6
Modifié par florire le 6/11/2013 à 15:07
Quel api me conseil tu pour ma page ?
Quel est le plus simple a codé ?


pour essayé je me suis connecté avec cette ligne:
$con = mysql_connect("mysql.hostinger.fr", "u839528755_jeu", "monmotdepasse");

et j'ai rajouté $con à la ligne :
$requete=mysql_query ($pass_rechercher,$con);

Que veux dire "Nom de la fonction doit être une chaîne" ? (ligne9)

Si j'ai bien compris tu ma dit de remplacé "mysql_query" par "mysqli_query".
J'ai fais et en plus de me dire "Nom de la fonction doit être une chaîne" (ligne9) sa me dit:"
Attention: mysqli_query () s'attend à ce que le paramètre 1 pour être mysqli, chaîne donnée.".

ligne9: $nombre_pass = $mysql_num_rows($requete);


Merci de ton aide. Je suis que débutant.
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
6 nov. 2013 à 14:42
On conseil souvent d'utiliser PDO même si personnellement j'utilise souvent mysqli.

Les deux extensions fonctionnent pratiquement de la même façon et sont aussi simple l'une que l'autre.

Si tu ne sais vraiment pas laquelle choisir, je te conseil tout de même PDO pour les quelques avantages qu'elle a par rapport à mysqli (abstraction du driver sql, requêtes préparés...)

Tu trouveras facilement plein de tutoriels sur l'utilisation de PDO avec ton moteur de recherche préféré :)
0
florire Messages postés 151 Date d'inscription lundi 15 juillet 2013 Statut Membre Dernière intervention 15 juillet 2022 6
6 nov. 2013 à 23:23
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /home/u839528755/public_html/1/test1.php on line 6

<?php
$con = mysql_connect("mysql.hostinger.fr", "u839528755_jeu", "monmotdepasse", "u839528755_jeu");
$pass = $_POST['code'];
$pass_rechercher ="SELECT * FROM mot_de_passe where passe = '".$pass."'";
$requete=mysql_query ($pass_rechercher,$con);
$nombre_pass =mysql_num_rows($requete);

// Si le mot de passe n'a pas été envoyé ou n'est pas bon
if (!isset($_POST['code']) or $nombre_pass = 0)
// On affiche le formulaire
{
echo ' <form action="test1.php" method="post">
<p>
<input type="password" name="code" />
<input type="submit" value="Valider" />
</p>
</form>';
}
// Si le mot de passe a été envoyé et il est bon
if (isset($_POST['code']) AND $nombre_pass > 0)
{
echo'
Ici le contenue bloqué';
}
?>

Je ne comprend plus rien, en 3 jours j'ai du voir toute les erreurs qui pouvait existé ^^
Quel est encore mon erreur ?
0
florire Messages postés 151 Date d'inscription lundi 15 juillet 2013 Statut Membre Dernière intervention 15 juillet 2022 6
7 nov. 2013 à 10:36
Merci de ton aide j'ai réussi :)
0
florire Messages postés 151 Date d'inscription lundi 15 juillet 2013 Statut Membre Dernière intervention 15 juillet 2022 6
Modifié par florire le 7/11/2013 à 20:35
Un dernier petit détail svp :p
Quand je supprime une ligne de ma table la valeur de la colonne "id" ne redescend pas.
Par exemple:
id
1
2
3
4

Si je supprime la ligne 3 sa fera un trou
id
1
2
4

Il y a un moyen d'arranger sa ?

Id: type=int(11); NULL=non; Extra=AI; Index:Primary;
0