Benamour Jr

Inscris le 17/03/2010 à 20:43
  • Nombre de sujets
    6
  • Nombre de messages
    13
  • Nombre de commentaires
    Aucun
  • Nombre de news
    Aucune
  • Niveau en PHP
    Débutant

Ses derniers sujets sur les forums

Benamour Jr
le 30/03/2010 à 01:28
Concaténation dans une requête SQL
Bonsoir !

J'essaye depuis quelques temps de faire fonctionner une requête SQL... en vain :s
Dans mon code je récupère deux types de variables provenant d'un formulaire (des $_POST['lien1'], $_POST['lien2'], $_POST['lien3'],... et ainsi de suite ainsi que des $_POST['id1'], $_POST['id2'],...) que j'utilise dans une requête SQL que voici :

<?php
for ($nb_lignes = 1; $nb_lignes <= $_POST['nb_liens']; $nb_lignes++)
{
$table = $_POST['lien' . $nb_lignes . ''];
$id2 = $_POST['id' . $nb_lignes . ''];
$requete = "INSERT INTO ".$table."(id_article, id2) VALUES('".$_GET['id']."', '".$id2."')";
echo $requete . '<br />'; // que j'ai inséré pour y voir plus clair dans mon erreur
$bdd->exec($requete);
}
?>


l'echo $requete me retourne ceci quand $_POST['nb_liens'] vaut par exemple 3 :

INSERT INTO article_presse_dossier(id_article, id2) VALUES('47', '5')
INSERT INTO article_presse_individu(id_article, id2) VALUES('47', '2')
INSERT INTO article_presse_dossier(id_article, id2) VALUES('47', '2')

Ce qui me semble tout à fait correct, puis que j'ai les champs 'id_article' et 'id2' dans les deux tables concernées. Seulement voila, rien n'est ajouté dans mes tables... ca ne fonctionne pas :s

Si quelqu'un pouvait m'aider à trouver mon erreur je lui en serais vraiment très reconnaissant, merci ! :)
Benamour Jr
le 28/03/2010 à 10:57
Moteur de recherche : afficher des suggestions
Bonjour,

Je suis en train de plancher sur le développement du moteur de recherche de mon site. J'aurais aimé pouvoir afficher des suggestions de recherche directement liées aux données d'un champ d'une de mes table. Par exemple, le visiteur commence à taper "Infor" et de là une petite liste s'ouvre en bas de la zone de texte où l'on peut voir les champs de ma table qui correspondent (genre "Informatique", "Information", "Inforoute",...).

Comment qu'on fait pour développer ça ? Si quelqu'un a un petit tuto sous la main, un code source sur lequel je pourrais m'inspirer ou tout simplement des conseils pour m'indiquer la marche à suivre, ce serait sympa ! :)
Benamour Jr
le 26/03/2010 à 23:19
Espace membre : session + cookie
Bonsoir,

je suis en train de développer un espace membre où le visiteur à le choix d'utiliser les cookies où non (dans ce dernier cas, tout est géré par session_start()). Donc je dois utiliser les superglobales $_SESSION ou $_COOKIE. Le "problème" c'est que quand je programme mes pages je dois faire face aux deux possibilités. Prenons ce petit bout de code (destiné à modifier son mot de passe dans un espace membre) qui s'arrête à ma question :

<?php
if (!empty($_SESSION["pseudo"]) OR !empty($_COOKIE["pseudo"]))
{
if (isset($_POST["chg_mdp"]))
{
// connexion à la bdd
try
{
$bdd = new PDO('mysql:host=localhost;dbname=estoriai_archive', 'estoriai_Ben', '*****');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}

// vérifier que l'ancien mot de passe est correct
$req_verif_mdp = $bdd->prepare('SELECT mdp FROM membre WHERE pseudo = :pseudo');
$req_verif_mdp->execute(array('pseudo' =>
}
}
?>


Comme je ne sais pas si le visiteur naviguera sur la page via une session ou des cookies, j'aurais aimé pouvoir faire un truc du style :

<?php
$req_verif_mdp->execute(array('pseudo' => $_SESSION['pseudo'] OR $_COOKIE['pseudo']));
<?


Bien entendu ca ne marche pas :(
Mais est-ce qu'il existe une méthode du style qui me permettrait de devoir éviter de devoir écrire à chaque fois un code du style :

<?php
if (!empty($_SESSION['pseudo']))
{
$pseudo = $_SESSION['pseudo'];
}
if (!empty($_SESSION['pseudo']))
{
$pseudo = $_COOKIE['pseudo'];
}
?>


Ca marche mais ca me parrait trop redondant pour qu'il s'agisse du code le plus optimal... Donc si qqn avait une solution plus courte à proposer, je suis preneur :)
Benamour Jr
le 25/03/2010 à 00:24
La fonction crypt() utilisée pour un .htpasswd
Salut,

Je suis en train d'essayer de comprendre la fonction crypt()...
A ce que j'ai compris son cryptage dépend d'une clé.
Dans un tuto extérieur, un programmeur propose un générateur de mot de passe crypté utilisé pour les .htaccess ainsi que son code source. Il n'y crypte pas le mot de passe en fonction de notre pseudo (ce qui m'aurait semblé logique), donc ca veut dire que la clé est aléatoire et que même si on renseigne à chaque fois un pseudo identique et un mot de passe identique, on aura un mot de passe crypté différent. Ce mot de passe crypté sans prendre en compte le pseudo est stocké dans le fichier .htpasswd.

Ma question : Comment se fait-il que lorsque l'on veut accéder à une page du dossier protégé par cette méthode, le mot de passe que l'on indique colle toujours avec le mot de passe crypté dans le .htpasswd alors qu'il a été crypté sans utiliser le pseudo associé ?
Benamour Jr
le 23/03/2010 à 13:43
Aide pour agencer les tables de ma BDD
Bonjour,
Je suis en train de réfléchir à la structure de ma base de donnée et j'ai un peu de mal... J'espère que l'un de vous prendra le temps de m'éclaire un tantinet :)

J'ai une table "article_presse" destinée à stocker... des articles de presse. Je souhaiterai pouvoir associer chaque article de presse à différents acteurs (pays, individu ou organisation). Au lieu d'utiliser pour cela un champ "acteur" où je renseignerais tous les acteurs séparés par des virgules (ex: France, Nicolas Sarkozy) je me suis dit (mais peut-être que mon raisonnement n'est pas bon ?) que je devrais plutôt renseigner un champ "id_acteur" qui permettrait d'identifier un ou plusieurs acteurs stocké(s) dans une table "acteur".

Le problème c'est que par la suite, je projète de développer un moteur de recherche permettant de trouver facilement un article de presse en renseignant tel ou tel acteur. Mais comment faire pour que mon champ "id_acteur" puisse comporter plusieurs id d'acteurs ? Car un article de presse sera très souvent lié à plusieurs acteurs. Quelles sont les différents paramètres que je dois appliquer à ce champ ? Faut-il l'indexer ? Et comment se passera la recherche ? Car les internautes vont par exemple taper "Herman Van Rompuy" mais dans la table des articles de presse il n'y aura que des numéros dans le champ "id_acteur"... ?

Bref, je suis un peu paumé... Merci à ceux qui prendront le temps de me conseiller :)
Benamour Jr
le 17/03/2010 à 20:44
Utiliser une variable dans le LIMIT d'une requête SQL
Bonjour,

je suis en train de programmer un mini-chat et j'aurais aimé pouvoir afficher 10 résultats (messages) par page. J'ai une petite idée de comment y parvenir mais pour ca je dois pouvoir placer une variable dans la LIMIT de la requête SQL. Cependant je n'y arrive pas...

Voici ma question :

Comment se fait-il que ce code fonctionne pour mon script :

$req = $bdd->query('SELECT * FROM mini_chat ORDER BY id DESC LIMIT 0, 10');

Mais que celui-ci ne m'affiche rien du tout :

$limit = 0;
$req = $bdd->prepare('SELECT * FROM mini_chat ORDER BY id DESC LIMIT ?, 10');
$req->execute(array($limit));

Or ca revient au même... O.o
LoadingChargement en cours