I'm at wits end, I'm hoping someone can tell me what's wrong.

This is Apache 1.3.19, Redhat 6.2, modperl 1.25, apache::session 1.53
and MySQL 3.23.36.

(This is also happening inside HTML::Mason 1.03, but I dont think that has
anything to do with it. I've crossposted to the mason list in case anyone
there has seen this behavior, but what I'm doing isnt really out of the
ordinary, so I dont think it's Mason related)

I've got a hash %s successfully re tied every request. I'm using it to store
a session id and userid with success, so I know it's storing.

Maybe I'm doing too much for A::S but here goes.

I want an entry in the %s hash that is an array of hashrefs

so tied-hash -> array -> hash.

I'm writing this in wizard style, getting one piece of information from the
client per page. The first step is to get a list of domain names, which I do
and store in @domain.

then I do

  my $c=0;
  foreach my $dom (@domain) {
   my $ref = { 'domainname' => $dom,
               'term' => '',
               'ns1name' => '',
               'ns1ip' => '',
               'ns2name' => '',
               'ns2ip' => ''
             };
   $s{regdomains}->[$c++] = $ref;
  }

  this data is all successfully stored in the session.

  We now move to the second page, and if I do a Data::Dumper on %s, I can
actually see the above structure as I envisioned it.

(I'll paraphrase here and not paste the whole dump)

          'regdomains' => [
                            {
                              'ns1name' => '',
                              'ns2ip' => '',
                              'domainname' => 'qwert.com',
                              'term' => '2',
                              'ns2name' => '',
                              'ns1ip' => ''
                            },

Note that 'term'=> '2'.

That's there because before I did the Dumper, I populated the %s with the
data I had on the term. Each term is read from Apache::Request into
@term. (Yes, the orders match)

so I do...

  my $c=0;
  foreach my $term (@term) {
   $s{regdomains}->[$c++]->{term} = $term;
  }

Then I do the Dumper. You can see the result above. Term is set, and I've
verified by changing the term per domain name that the data is going in
correctly.

Now, as I understand it, the tie is causing any data written into the hash
to be written to the database.

The problem is that it's not. When I get to my third page I get four fields
per domain for the nameservers and assign into the hash with...

  my $c=0;
  foreach (@{$s{regdomains}}) {
   $s{regdomains}->[$c]->{ns1name} = $nsn1[$c];
   $s{regdomains}->[$c]->{ns1ip} = $nsip1[$c];
   $s{regdomains}->[$c]->{ns2name} = $nsn2[$c];
   $s{regdomains}->[$c]->{ns2ip} = $nsip2[$c];
   $c++;
  }

I then do a Dumper and get...


          'regdomains' => [
                            {
                              'ns1name' => 'a',
                              'ns2ip' => 'd',
                              'domainname' => 'qwert.com',
                              'term' => '',
                              'ns2name' => 'c',
                              'ns1ip' => 'b'
                            },

you'll see that term is now empty. I've watched the db, and reading it's
cryptic scrawl, I never see any entries for term.

HELP!


-- 
________________________________________________________________________
| Chris Thompson                                      [EMAIL PROTECTED] | 
+----------------------------------------------------------------------+

Reply via email to