Solved

passing string to cgi from web

Posted on 2001-08-15
7
150 Views
Last Modified: 2013-12-25
when I call cgi from my form,
sometimes string contains symbols
like this "%5C%5C%5F"
Is there easy way to convert them to the normal chars?
my cgi-script is written on c.
Thanks
0
Comment
Question by:kako
7 Comments
 
LVL 6

Expert Comment

by:holli
ID: 6387560
there is a module for perl. but for c? i don`t know.

anyway. you have to split the string into pieces. here 5C, 5C and 5F. These pieces are the hexadecimal values, representing the char.

eg.
5C = 92 = \
5F = 95 = _

this is the theory.

holli
0
 
LVL 8

Accepted Solution

by:
mnashadka earned 100 total points
ID: 6389158
The best way is to write a function something like:
void change_string(char *input, char *output)
{
  char c[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
  char values[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
  int i = 0, j = 0, pos = 0;
  char first_value, second_value;

  for(; i < strlen(input); ++i)
  {
    if(input[i] == '%')
    {
      first_value = toupper(input[i + 1]);
      second_value = toupper(input[i + 2]);
      i += 2;

      for(j = 0; j < 16; ++j)
      {
        if(first_value == c[j])
          first_value = values[j];
        if(second_value == c[j])
          second_value = values[j];
      }
      output[pos++] = (char)(16 * first_value + second_value);
    }
    else
      output[pos++] = input[i];
  }
}

This would be easier in C++, but I think you get the idea.  My syntax may be a little off (I don't do straight C very often), but I think you get the idea.  Hope this helps.
0
 
LVL 16

Expert Comment

by:maneshr
ID: 6654373
kako,

Did you get the solution you were looking for?

If so, please delete this question & free up your points, or award the points to the answer you found most useful.

Thanks,
0
Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

 
LVL 16

Expert Comment

by:maneshr
ID: 6697219
kako,

Did you get the solution you were looking for?

What solution, if any, did you use?

If you have found the solution to this question on your own, or the question has become obsolete, please delete it & free your points.

Let us know.

Thanks.
0
 
LVL 1

Expert Comment

by:Moondancer
ID: 6699401
Please update/finalize this question.

Thanks,

Moondancer
Community Support Moderator @ Experts Exchange
0
 
LVL 1

Expert Comment

by:Moondancer
ID: 6827579
Administration has been contacted about the lack of responsiveness to prior follow up requests, and this information is being posted in all your open questions today.

This question appears to have been abandoned. Your options are:
 
1.  Accept a Comment As Answer (use the button next to the Expert's name).
2. Close the question if the information was not useful to you. You must tell the participants why you wish to do this, and allow for Expert response.
3.  Ask Community Support to help split points between participating experts, or just comment here with details and we'll respond with the process.
4.  Delete the question. Again, you must tell the other participants why you wish to do this.

For special handling needs, please post a zero point question in the link below, include the question QID/link.
http://www.experts-exchange.com/jsp/qList.jsp?ta=commspt
 
Please click this Help Desk link for Member Guidelines, Member Agreement and the Question/Answer process:  Click you Member Profile to view your question history and keep them all current with updates as the collaboration effort continues.
http://www.experts-exchange.com/jsp/cmtyHelpDesk.jsp

 
PLEASE DO NOT AWARD THE POINTS TO ME.  
 
------------>  EXPERTS:
 
Please leave any comments regarding this question here on closing recommendations if this item remains inactive another three days.
 
Thank you everyone.
 
Moondancer
Moderator @ Experts Exchange
 
P.S.  For year 2000 question, special attention is needed to ensure the first correct response is awarded, since they are not in the comment date order, but rather in Member ID order.
0
 
LVL 16

Expert Comment

by:maneshr
ID: 6827731
Moondancer,

No suggestions, but points definitely not awarded to me.
0

Featured Post

Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

Question has a verified solution.

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

It is a general practice to get rid of old user profiles on a computer  in a LAN environment. As I have been working with a company in a LAN environment where users move from one place to some other place at times. This will make many user profil…
Active Directory replication delay is the cause to many problems.  Here is a super easy script to force Active Directory replication to all sites with by using an elevated PowerShell command prompt, and a tool to verify your changes.
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)
In this fourth video of the Xpdf series, we discuss and demonstrate the PDFinfo utility, which retrieves the contents of a PDF's Info Dictionary, as well as some other information, including the page count. We show how to isolate the page count in a…

822 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