?
Solved

Need PHP help parsing CGI response...

Posted on 2008-10-17
4
Medium Priority
?
305 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
3 Comments
 
LVL 20

Accepted Solution

by:
NerdsOfTech earned 2000 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 20

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 20

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

Become an Android App Developer

Ready to kick start your career in 2018? Learn how to build an Android app in January’s Course of the Month and open the door to new opportunities.

Question has a verified solution.

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

These days socially coordinated efforts have turned into a critical requirement for enterprises.
Introduction This article is intended for those who are new to PHP error handling (https://www.experts-exchange.com/articles/11769/And-by-the-way-I-am-New-to-PHP.html).  It addresses one of the most common problems that plague beginning PHP develop…
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
The viewer will learn how to dynamically set the form action using jQuery.
Suggested Courses

571 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