Tuesday, April 28, 2009

Re: Check array for duplicate

I don't know why the save isn't happening but you shouldn't have the
array_unique() in the if test because that just returns the modified
array. If you're more interested in testing whether the array has
dupes, rather than simply removing them, I think you'd have to do
something like:

if (sizeof(array_unique($this->data[$model_name][$model_name])) ==
sizeof($this->data[$model_name][$model_name]))
{
$this->User->save($this->data);
$this->skills($model);
}
else
{

I was going to suggest using array_diff() but that function is bollocks.

Anyway, why don't you just use SecurityComponent?

On Tue, Apr 28, 2009 at 1:59 PM, Dave Maharaj :: WidePixels.com
<dave@widepixels.com> wrote:
>
> Ok right on....seems to get me started.
>
> I have this in my controller but if there is a duplicate its not saving
> which is what I want) but  skipping past the }else{
>
> Ideas what i am missing?
>
>                  if (!empty($this->data)) {
>                      $san = new Sanitize();
>                      $this->data = $san->clean($this->data);
>                      if ($this->data[$model_name][$model_name] =
> array_unique($this->data[$model_name][$model_name])) {
>                                  $this->User->save($this->data);
>                          $this->skills($model);
>                      } else {
>                          $value = 'Messing around with values';
>                          $this->User->id = $this->Auth->user('id');
>                          //set confirm code to zero disableing login
>                          //$this->User->saveField('confirmed', 0);
>                          $this->set('value', $value);
>                          $this->layout = 'ajax';
>                          $this->render('/errors/hack_attempt');
>                      }
>                  }
> -----Original Message-----
> From: brian [mailto:bally.zijn@gmail.com]
> Sent: April-28-09 3:13 PM
> To: cake-php@googlegroups.com
> Subject: Re: Check array for duplicate
>
>
> $this->data['System']['System'] =
> array_unique($this->data['System']['System']);
>
> On Tue, Apr 28, 2009 at 1:33 PM, Dave Maharaj :: WidePixels.com
> <dave@widepixels.com> wrote:
>>
>> I have modified my form value using Firebug and I get this array
>> (which should never happen unless someone has edited the form and
>> tried submitting the altered values)
>>
>> How could I create a quick 'check the values' function for duplicates
>> to see if someone was trying to mess with the site?
>>
>>
>> Array
>> (
>>    [System] => Array
>>        (
>>            [System] => Array
>>                (
>>                    [0] => 1
>>                    [1] => 1
>>                    [2] => 1
>>                )
>>
>>        )
>>
>> )
>>
>> I have the db set so the fields have to be unique so it will not
>> save...but the view shows SQL Error: 1062: Duplicate entry '1-3' for
>> key 2
>> Query: INSERT INTO `users_systems` (`user_id`,`system_id`) VALUES
>> (3,'1'), (3,'1'), (3,'1')
>>
>> I would like to check the array for duplicte values before saving, if
>> found then destroy user session, display message and ban user...just
>> cant figure ot how to check the array for duplcates.
>>
>> Ideas?
>>
>> thanks
>>
>>
>> Dave
>>
>>
>> >
>>
>
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "CakePHP" group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to cake-php+unsubscribe@googlegroups.com
For more options, visit this group at http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

No comments: