Polhux

  • Signature
    Polhux
  • Nombre de sujets
    12
  • Nombre de messages
    31
  • Nombre de commentaires
    Aucun
  • Nombre de news
    Aucune
  • Niveau en PHP
    Débutant

Ses derniers messages sur les forums

Polhux
le 17/09/2006 à 17:25
Lutte anti-pollution des zones "textarea"
Je suis d'accord pour le système transparent pour le visiteur. C'est pourquoi je cherche un moyen transparent.

Et Bzh, as-tu une idée d'un de ces moyens ? Je ne suis quand même pas le seul à avoir ce problème et à devoir se pencher dessus. Je cherche donc des idées bien que j'aie déjà prévu le système chiffre + image.
Polhux
Polhux
le 16/09/2006 à 23:05
Lutte anti-pollution des zones "textarea"
Oui, c'était di bon côté mais au début, ce n'est pas évident à exprimer. Est-ce que mon test est correctement écrit ainsi ?
$test = ereg("^[<|>|href]+$", $message);

J'ai donc essayer d'exprimer que je cherche à trouver, depuis le début de ma chaîne $message jusqu'à la fin, au moin une fois soit le <, > ou href. Cela métonnerait que cela soit bon du premier coup !
Polhux
Polhux
le 16/09/2006 à 17:56
Lutte anti-pollution des zones "textarea"
Bonjour et bon week-end,

A moins d’avoir sauter la bonne rubrique, il m’étonne de ne pas avoir trouvé un post relatif à la pollution de robots automatiques qui viennent polluer les zones "textarea" des formulaires, forums (sans test membre), livre d’or, … avec leurs publicités.

Pour éviter cela, on peut utiliser le test de recopie d’un code écrit sur une image. Mais pour éviter l’obligation de recopie, n’y a-t-il pas un autre moyen ? Je suppose que oui. J’ai pensé à un test mais
1°) croyez-vous qu’il soit fiable et sinon, connaissez-vous d'autres moyens ?
2°) encore faut-il l’exprimer en PHP (et pas en SQL afin que le test soit immédiat).

Je prends, disons, les premiers 100 caractères de ma première chaîne du message (parce que les pollueurs commencent parfois avec une phrase, genre "you have un beautiful site" ) et je teste si je trouve une balise < ou > (code 060 et 062). Si oui, je refuse l’enregistrement.

Si vous pensez que c'est un test valable, comment l'exprimer en PHP. Il y a bien la commande <sscanf> mais cela analyse un format. Il faudrait une commande d'analyse de caractères genre
$test = substr ("les 100 premiers caractères", 0, 99);
Comment exprimer "les 100 premiers caractères" et comment tester la présence d'un code 060 ou 062.?
D'avance merci pour votre avis.
Polhux
Polhux
le 24/09/2005 à 19:29
Enregistrement de mêmes inputs à la queue leu leu
Le cours sur les variables dynamiques se termine par "Alors, convaincu ?". Oui je suis convaincu qu'il doit s'agir de la bonne solution mais je ne suis pas convaincu d'avoir tout compris. Loin s'en faut. Du moins pour l'appliquer à mon problème.

Je suppose que tu fais allusion au dernier exemple de la page du cours ! Bien que j'ai une hésitation avec l'exemple.
$tableau1 = array ('test', 'toto', 'titi');
$tableau2 = array ('humpf', 'grmbl');

Pour le cas du champs caché,
$champ_cache = $_POST['champ_cache'];
function insert() {
// code
}
le système se met en erreur parce que j'ai justement plusieurs fois des champs qui portent le même nom, je suppose. (Même sans champ caché, en testant, si je désactive 5 des 6 lignes du formulaire, j'enregistre sans problème. Dès que je réactive les 5 autres lignes, même sans les remplir, j'ai des messages d'erreurs, lors de l'exécution)

Mais de toute manière, dans les 2 autres cas, je suis paumé. J'ai, en XHTML, en faisant court :
<input type="text" name="doc_date" size="10">
<input type="text" name="doc_nombre1" size="8">
<input type="text" name="doc_nombre2" size="8">

Donc je dois déjà contrôler mes entrées
if (isset($_POST[doc_date']) &&
isset($_POST[doc_nombre1']) &&
isset($_POST[doc_nombre2']) {…
Je ne comprends déjà pas comment le système va comprendre qu'il doit contrôler 2, 4, 6 fois des entrées ayant les mêmes noms de variable.

Ensuite, si c'est le dernier exemple qui convient, 'je ne comprends pas très bien comment travailler sur le nombre de champs. Mon nombre de champs, selon l'exemple que j'ai donné sera toujours 3 X le nombre de lignes complétées.

Enfin, quoi qu'il en soit, pour le moment je suis dans le cirage. Ne pourriez-vous pas me donner 2-3 éléments plus précis SVP.
Polhux
Polhux
le 22/09/2005 à 20:22
Enregistrement de mêmes inputs à la queue leu leu
Bonsoir,

En fait, je recherche l'inverse de la commande :
while ($data = mysql_fetch_array($req))
qui m'affiche tous les tuples correspondant aux conditions demandées.

Un autre membre vient de poser une question qui se rapproche de mon problème mais je crois qu'il est différent.

Chaque jour, je dois enregistrer le même type d'information, à savoir 2 dates et 4 nombres.
Certains jours, je n'ai qu'un seul enregistrement à faire, d'autres jours, 3, 6 ou 8.

Un formulaire d'une ligne écran me suffit amplement pour un enregistrement. Et dans ce cas, pas de problème pour mettre les infos dans la base.

Mais, j'aimerais pouvoir, avec un seul bouton submit, pouvoir enregistrer une ou plusieurs lignes avec 6 inputs identiques de même nom. Evidement, les infos, elles, sont différentes. Donc c'est un enregistrement répétitif que je voudrais pouvoir faire avec autant d'enregistrement qu'il y a de lignes de remplies.

Avec la commande foreach peut-être ? Mais comment écrire cela :
For each (chaque ligne)
If (isset($_POST['date1']) && isset($_POST['date2']) && ………. Pour mes 6 inputs)
(il y a un petit traitement)
$query = "INSERT INTO ….

Merci et une bonne soirée
Polhux
Polhux
le 30/08/2005 à 21:01
Correction d'un script avec 2 boutons submit SVP
Rebonsoir,

Oui, je m'apprêtais à écrire pour dire que tout était OK. En effet, c'était bien là l'erreur, et tout est en ordre pour les modifs comme pour les suppressions. Ce fut pénible, mais j'y suis arrivé… avec votre aide.

Un grand merci à vous, La globule et Zebden pour celle-ci. Maintenant, pourrais-je me permettre une suggestion à La Globule s'il entre dans tes intentions de faire une mise à jour de ton cours. Il s'agit de parer à un défaut que l'on trouve dans tous les tutoriaux PHP et même dans les officiels de PHP et MySQL.

Dans tous vos exemples, vous prenez toujours des constantes (C'est TIBO qui est né le … qui aime le livre Discovery écrit par ….). Or pratiquement, même un débutant est directement confronté à un travail avec des variables. D'où beaucoup d'hésitation dans la syntaxe. Quand faut-il écrire avec', ", '"; "' (' '), (" ") et j'en passe et les différences quand on manipule des constantes et des variables. Et ce, aussi bien en PHP qu'en SQL.

Si tu avais le temps et le désir de revoir ton cours, un exemple avec une constante et une variable serait certainement très apprécié. Moi, en tout cas, c'est ce qui me fait le plus hésité. Mais attention, il s'agit bien d'une suggestion et non d'une critique. L'effort pour ce site est déjà très louable.
Polhux
Polhux
le 30/08/2005 à 18:59
Correction d'un script avec 2 boutons submit SVP
Bonsoir,

Ben voilà, je viens juste de trouver une des bêtises, avant de lire la réponse de la Globule (d'ailleurs, merci pour les réponses) Puisque j'utilisais un type="hidden", je pensais naïvement qu'il était inutile d'écrire value="<?php echo $user_id; ?> et que la variable ="<?php $user_id; ?>. ssuffisait.

C'est en chipotant et en essayant la méthode GET pour la suppression, que j'ai vu que mon adresse suppression.php?user_id= n'était pas bonne.

Ceci était donc déjà corrigé. Il n'empêche que je ne suis toujours pas au bout de mes peines, avec la suppression qui était la partie la plus facile. Il doit encore y avoir un bug. Dans mon programme de suppression, j'ai

if(isset($_POST['user_id']))
$user_id = $_POST['user_id'];
// TEST // echo $user_id;
$query='DELETE FROM user WHERE user_id="user_id"';
mysql_query($query) or die('Erreur SQL : '.mysql_error());
mysql_close();

echo &user_id m'affiche mon user_id correctement mais mon tuple, lui, n'est toujours pas effacé. Je commence "à approcher du but…" mais je n'y suis pas encore. J'ai beau me référer à la page 46 du cours, je ne vois pas l'erreur.

Pour ce qui est des 3 inputs dont parle La Globule, pour tester, je voulais passer les 3 variables mais voir la remarque ci-dessus avec echo. De plus, comme je l'ai écrit au début du premier post, mes formulaires sont plus longs et différents Mais si je réussis ce petit exemple, je programmerai un peu différemment, comme les 2 premiers exemples que j'avais donnés, mais au moins, je serais certain du raisonnement.
Polhux
Polhux
le 30/08/2005 à 15:47
remplacer la fonction header ()
Bonjour,

Fin de la semaine dernière, j'ai aussi cherché sur Internet pour des problèmes de header (voir aussi ma demande récente, dans ce forum, avec le problème de header + target)..

As-tu essayé le header("location: …. ") avec une adresse relative ? Si c'est le cas, cela ne marche pas chez beaucoup de monde. J'ai déjà vu que dans son cours, La Globule utilise les adresses relatives, mais chez moi, cela ne marche pas non plus, comme chez d'autres internautes, à voir le nombre de questions relatives au sujet.

Il faut soit, utiliser l'adresse absolue header("location:http://www.nomsite.com/....... ") ou http://C:/….. Ce qui n'est pas pratique en développement soit, utiliser un moyen préconisé dans le manuel officiel de PHP :

header("Location: http://" . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . "/" . "monfichier..php"); (donc avec l'adresse relative, cette fois.) et cela marche.
Polhux
Polhux
le 30/08/2005 à 14:24
Correction d'un script avec 2 boutons submit SVP
Bonjour,

Désolé, mais quand ça ne veut pas, ça ne veut pas, même avec un rappel de la variable en "hidden" J'ai encore essayé pas une autre méthode, mais le résultat est toujours le même, à savoir aucun résultat. (voir dans le Wall, puisque maintenant je sais ce que c'est)

http://www.lephpfacile.com/wall/wall.php?id=2422
Polhux
LoadingChargement en cours