undefinned offset

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : undefinned offset

Re: undefinned offset

par Invité » 18 juil. 2011, 15:00

Merci beaucoup pour votre aide :) !

Re: undefinned offset

par Ryle » 18 juil. 2011, 14:49

foreach ($_POST as $index => $value)
Pour chaque couple clé/valeur envoyé par post, l'index est dans $index, la valeur est dans $value :)

Re: undefinned offset

par Invité » 18 juil. 2011, 14:14

oui j'ai dit que je ne m'y connaissait pas en regex
mon problème c'est que je ne sais pas non plus comment récupérer le nom de l'index (ref1 ref2 etc.) en php

Re: undefinned offset

par moogli » 18 juil. 2011, 12:52

heu en fait Ryle t'a donné le motif exact :/

après je pense que tu ne sais pas trop te servir des expression régulière ?

if(preg_match('/^ref(\d+)/',$index))

devrait fonctionner ?

pour les expressions regulière il y a, par exemple : http://expreg.com, pour les tester http://lumadis.be/regex/test_regex.php (par exemple)


@+

Re: undefinned offset

par Invité » 18 juil. 2011, 12:13

[quote="Ryle"]C'est à peu près ça... en fait l'idée c'est de parcourir tous les index envoyés en post, et pour ceux qui commencent par 'ref' (^ref) et qui sont suivi d'un ou plusieurs chiffres (\d+), exécuter ton traitement...

Merci pour votre aide.
ce que je n'arrive pas à faire c'est tester le nom de l'index justement
foreach($_POST as $rows)
{
if(preg_match('^ref\d+',$index))
{
//code
}
}

je ne sais pas par quoi remplacer $index

Re: undefinned offset

par Ryle » 18 juil. 2011, 11:29

C'est à peu près ça... en fait l'idée c'est de parcourir tous les index envoyés en post, et pour ceux qui commencent par 'ref' (^ref) et qui sont suivi d'un ou plusieurs chiffres (\d+), exécuter ton traitement...


Une autre solution par rapport à ton code initial consisterait simplement à vérifier si l'index existe avant de l'utiliser. Un simple if( isSet($_POST['ref'+$i]) ) avant d'exécuter le code et tu n'es plus embêté. C'est toutefois moins optimisé que de ne traiter que les données envoyées (à ne retenir donc que si le volume des données le permet)

Re: undefinned offset

par Invité » 18 juil. 2011, 10:41

désolé de rep si tard...pour les expréssion régulière je ne m'y connais pas trop
vu que les index que je veux récupéré sont ref1 ref2 refx je dois écrire quelque chose comme preg_match('^ref',$index)?? en fait je ne vois pas comment appliquer sa sur les index de mon $_POST peux tu m'orienter s'il te plait moogli?

Re: undefinned offset

par sirakawa » 15 juil. 2011, 17:12

Un truc bête comme chou :
Quand _un POST fait des siennes, commencer par un print_r($_POST); die(); éclaircit souvent la situation.
print_r($_POST); die();// montrera ce qui est passé et sous quels noms; après ça devrait aller mieux. die(); pour éviter que l'écran soit envahi...
foreach($product as $rows)
{

for($i=1;$i<=$_POST['nombreproduit'];$i++)
{
if(!($rows['reference'] == $_POST['ref'+$i]))
{

Re: undefinned offset

par moogli » 15 juil. 2011, 15:42

Salut,
Utilise foreach pour parcourir le tableau de post (une p'tit expression régulière pour prendre que les bon index et ca roule tous seul ;) )

@+

undefinned offset

par Invité » 15 juil. 2011, 13:57

Bonjour, j'ai ici une erreur undefined offset 1 que je n'arrive pas à régler...d'après ce que j'ai lu sa signifie que l'index 1 de mon tableau n'existe pas mais je n'arrive toujours pas à résoudre
Lecode sert à parcourir le tableau $_POST['ref1'] à $_POST['refx ']voici le code

foreach($product as $rows)
{

for($i=1;$i<=$_POST['nombreproduit'];$i++)
{
if(!($rows['reference'] == $_POST['ref'+$i]))
{
$this->facturemodel->add_produit($_POST);
$lastProductId = mysql_insert_id();
$this->facturemodel->facture_has_product($lastFactureId,$lastProductId,$_POST['quantity']);
}
else
{
$this->facturemodel->facture_has_product($lastFactureId,$product['id'],$_POST['quantity']);
}
}
}
l'erreur est à la ligne if(!($rows['reference'] == $_POST['ref'+$i])). Si quelqu'un pouvait m'aider merci d'avance =)