Solved

Need PHP help parsing CGI response...

Posted on 2008-10-17
4
299 Views
Last Modified: 2012-05-05
http://pastie.org/294866

I have a form that submits to a PHP script which in turn does a shell_exec to a perl script written by someone else, which calls an API to validate the form data. The pastie is the exact response I am given when a user is not authenticated. This should be very easy for someone to figure out, but I'm on a time crunch to get this done by end of day so I need to know how to parse out each field.

Specifically, at the bottom of the response is a 'data' => '0' -- it could potentially be '1' but that shouldn't matter for these purposes. However, I want to be able to know what that value is. I also want to know what the value of the errors[{'messages'}] is *if* it exists (sometimes it won't be there, that's ok).

So in essence, I want to be able to say if (blah['data'] == '0') then do something otherwise do something else.

TIA,
Jen
<?php
$output = shell_exec('login.pl test test');
// echo $output gives: 
$VAR1 = bless( {
  'warnings' => [],
  'errors' => [
    {
      'data' => '',
      'message' => 'Customer/password combination is invalid',
      'code' => '1997'
    }
  ],
  '_warn_table' => undef,
  '_err_table' => undef,
  'multicall' => 0,
  'data' => '0'
}, 
'VWH::API::Return');
?>

Open in new window

0
Comment
Question by:jenjenut233
  • 3
4 Comments
 
LVL 19

Accepted Solution

by:
NerdsOfTech earned 500 total points
ID: 22765837
Bless is not a PHP function - it is a PERL/CGI function

http://us.php.net/manual/en/arrayobject.construct.php

Try array function instead:
<?php
$output = shell_exec('login.pl test test');
// echo $output gives: 
$VAR1 = array( {
  'warnings' => [],
  'errors' => [
    {
      'data' => '',
      'message' => 'Customer/password combination is invalid',
      'code' => '1997'
    }
  ],
  '_warn_table' => undef,
  '_err_table' => undef,
  'multicall' => 0,
  'data' => '0'
}, 
'VWH::API::Return');
?>

Open in new window

0
 
LVL 19

Expert Comment

by:NerdsOfTech
ID: 22765859
$VAR1 ['data'];

$value_data = array_search('data', $VAR1);
if ($value_data == 1){
// DATA == 1
} else {
// DATA == NOT 1
}
0
 
LVL 19

Expert Comment

by:NerdsOfTech
ID: 22765862

$value_data = array_search('data', $VAR1);
if ($value_data == 1){
// DATA == 1
} else {
// DATA == NOT 1
}

Open in new window

0

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Generating table dynamically is the most common issue faced by php developers.... So it seems there is a need of an article that explains the basic concept of generating tables dynamically. It just requires a basic knowledge of html and little maths…
Author Note: Since this E-E article was originally written, years ago, formal testing has come into common use in the world of PHP.  PHPUnit (http://en.wikipedia.org/wiki/PHPUnit) and similar technologies have enjoyed wide adoption, making it possib…
The viewer will learn how to create and use a small PHP class to apply a watermark to an image. This video shows the viewer the setup for the PHP watermark as well as important coding language. Continue to Part 2 to learn the core code used in creat…
This tutorial will teach you the core code needed to finalize the addition of a watermark to your image. The viewer will use a small PHP class to learn and create a watermark.

791 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question