Pitäisi tehdä seuraava fuktio GetCGIParams. Miten tälläinen fuktio kannattaisi tehdä?
char input[200]= "muuttuja1=hei&muuttuja2=moi&muuttuja3=terve&submit2=Submit";
GetCGIParams(string temp1, "muuttuja1", input);
GetCGIParams(string temp2, "muuttuja2", input);
GetCGIParams(string temp3, "muuttuja3", input);
GetCGIParams(string temp4, "submit2", input);
Osaisiko joku auttaa?
temp1 pitäisi sisältää tekstin "hei"
temp2 pitäisi sisältää tekstin "moi"
temp3 pitäisi sisältää tekstin "terve"
temp3 pitäisi sisältää tekstin "Submit"
char input[200]= "muuttuja1=hei&muuttuja2=moi&muuttuja3=terve&submit2=Submit";
GetCGIParams(string temp1, "muuttuja1", input);
GetCGIParams(string temp2, "muuttuja2", input);
GetCGIParams(string temp3, "muuttuja3", input);
GetCGIParams(string temp4, "submit2", input);
Osaisiko joku auttaa?
temp1 pitäisi sisältää tekstin "hei"
temp2 pitäisi sisältää tekstin "moi"
temp3 pitäisi sisältää tekstin "terve"
temp3 pitäisi sisältää tekstin "Submit"
Vastaukset 9
Vanhimmat
"Pitäisi tehdä seuraava fuktio GetCGIParams."
"temp1 pitäisi sisältää tekstin "hei" "
no... string temp1 = "hei";
Valitan, mutta minä en ainakaan ymmärtänyt mitä haet takaa, postaa koko funktio tänne ja selitä kenties vielä kenties paremmin?
btw.
"
char input[200]= "muuttuja1=hei&muuttuja2=moi&muuttuja3=terve&submit2=Submit";"
Mikä sinulla on tuosa ideana?..
Oletko ohjelmoinut aikaisemmin C :lla?
"getCgiParams()
descrip
Returns a hash of (key,value) pairs extracted from the script cmd-line, where the 1st arg is a CGI-encoded string received from a web browser.
params
returns
table tHash = { ["key0"]=val0, ["key1"]=val1, ... } where script arg0 = 'key0=val0&key1=val1...'
or
nil if invalid format in CGI string
notes
This function is used in scripts that are executed in response to a web browser request.
See 'Web Browser Interface' in the User Manual docs for more information.
"
http://rbuilder.sourceforge.net/lua_lib.html#getCgiParams
>>Valitan, mutta minä en ainakaan ymmärtänyt mitä haet takaa, postaa koko funktio tänne ja selitä kenties vielä kenties paremmin?
Ongelmana on juuri, että sitä ei ole vielä olemassa C :lla. Yritän tehdä CGI:tä C :lla. Ei ole juuri ollenkaan C -kokemusta.
Ongelma:
Tälläinen saadaan inputtina: (voi tietysti muutella. =-merkin jälkeen voi tulla aina eri arvo)
char input[200]= "muuttuja1=hei&muuttuja2=moi&muuttuja3=terve&submit2=Submit"
Pitäisi tehdä GetCGIParams-funktio, joka käy kirjain kerralla tuota (ASCII) input stringiä läpi ja poimisi sieltä halutun parametrin esim. temp1-muuttujaan.)
Eli GetCGIParams poimisi tekstistä(halutun) muuttuja1:n arvon temp1 muuttujaan. (eli lukisi kirjain kerralla tuota ASCII input stringiä. )
Kiitos etukäteen.
Koska tossa ei ilmeisesti ennakkoon tiedetä &muuttuja=ARVO&muuttuja... tuota ARVO:n pituutta, eikä se ole numeroarvokaan, näkisin parhaana vaihtoehtona ottaa vain '=' ja '&' merkkien välien tekstin ja sijoittaa se muuttujaan.
Split-funktio olisi hyvä tuossa. Googlella löytynee.
kokeileppas tätä ajankuluksesi:
sscanf(data, "luku1=%d&luku2=%d", &luku1, &luku2);
eli tohon tyyliin
Jos korvaisit muuttuja1=arvo&muuttuja2=arvo jos korvaisit tuon & merkin " " merkillä eli whitespacella. Tällöin onnistuisi seuraava:
#include
using namespace std;
int main ()
{
char buffer2[100] = "luku1=arvoy luku2=arvox";
char da1[30], da2[30];
sscanf(buffer2, "%*6c%s %*6c%s", &da1, &da2);
return 0;
}
Moi!
Sain toimimaan, mutta tuon std:n kanssa en saanut cout-komentoa toimimaan.
Tässä toimiva koodi:
#include
#include
bool GetCGIParams(char *param, char *findfrom, char *storeresult);
int main()
{
char input[200]= "muuttuja1=hei&muuttuja2=moi&muuttuja3=testimies&submit2=Submit";
char kohde[200]="moikka ";
cout
melko monimutkainen mutta toimiva =)
vähemmälläkin pääsisi
"Sain toimimaan, mutta tuon std:n kanssa en saanut cout-komentoa toimimaan. "
"#include "
käytä
#include // huom. ei .h
using namespace std;
se on ansi-c :a
iostream.h header ei ole.