Avatar billede emileej Nybegynder
11. september 2000 - 10:08 Der er 7 kommentarer og
2 løsninger

Problemer med CGI tæller

HJÆLP!

Jeg har et problem med en tæller, jeg skal bruge i et større CGI program. Når jeg starter programmet, sker der ikke så meget mere. Jeg kan forestille mig, at programmet går kold i en while-løkke, et eller andet sted, og jeg har da også begrænset problemet til følgende linier(Jeg kan ikke bruge et HELT nyt program):


Kaldet:

//...

char *Id;
int Nr;

//...Initialissering af Id m.m.

Nr=(char*)LoginNr();
Resultat=AdderStrenge(Id,Nr);

//...

Funktionerne :

//------------------------------------------
char* NytBrugerId(void){
    char *Id, *Tid, *Resultat, *Nr=\"\";
    Tid=(char*)calloc(9,sizeof(char));
    Id=(char*)calloc(11-3,sizeof(char));
    //Id=(\"%i%i%i%i%i%i%i\",BrugerNummer,År,Dag,Måned,Time,Minut,Sekundt);
    //Eksempel:
    _strdate( Tid );
    Id[0]=(Tid[0]+20);
    Id[1]=(Tid[1]+25);
    Id[2]=(Tid[3]+20);
    Id[3]=(Tid[4]+30);
    Id[4]=(Tid[6]+20);
    Id[5]=(Tid[7]+25);
    _strtime( Tid );
    Id[6]=(Tid[0]+20);
    Id[7]=(Tid[1]+25);
    Id[8]=(Tid[3]+20);
    Id[9]=(Tid[4]+30);
    Id[10]=(Tid[6]+20);
    Id[11]=(Tid[7]+25);
    Nr=(char*)LoginNr();
    Resultat=AdderStrenge(Id,Nr);
    //Resultat=Krypter(Resultat);
    return Resultat;
}

//------------------------------------------

char* AdderStrenge(char* Str1, char* Str2){
    int Len=strlen(Str1)+strlen(Str2), Count=0;
    char *Resultat=(char*)calloc(Len-3,sizeof(char)), *Retur;

   
    if((int)strlen(Str2)>1){
        while(Count<=Len){
            if(Count<=(int)strlen(Str1))
                Resultat[Count]=Str1[Count];
            else
                Resultat[Count]=Str2[Count-(int)strlen(Str1)];
            Count++;
        }
    }else
        Resultat=Str1;
    Retur=Resultat;
    return Retur;
}

Jeg håber, at i kan hjælpe mig.

E-)mil
Avatar billede lbs Nybegynder
11. september 2000 - 13:47 #1
for 30 point er der da ingen der overhovedet gider at læse din kode...
Avatar billede emileej Nybegynder
12. september 2000 - 09:47 #2
Rettet...
Avatar billede tuxen Nybegynder
12. september 2000 - 10:29 #3
Det er meget svært at overskue hvad der sker, hvad skal det her gøre i pseudo kode ?
altså mere specifikt end en tæller.
:-)
Tux
Avatar billede emileej Nybegynder
12. september 2000 - 11:41 #4
Hey Thue!

Alt det, jeg har spurgt om i den seneste tid, har jeg brugt til et CGI-script, der har til opgave, at sørge for, at eleverne på min skole kan få fat på, og arbejde med deres opgaver, der ligger på skolens server. Jeg er i øjeblikket ikke kommet længere end til login\'en. Vi har snart ikke mere tid, og der er pres på fra gruppen.

Ku\' jeg sende hele skidtet til dig, og håbe på, at du ville kigge på det?

E-(mil
Avatar billede tuxen Nybegynder
12. september 2000 - 11:47 #5
Tja jeg har sgu ikke tid til det Emil, hvordan ligger opagverne ? I tekstfiler, i en Database eller hvad ?
Avatar billede soepro Nybegynder
12. september 2000 - 13:05 #6
Såvidt jeg kan se, har du kun eet sted i dit program hvor det kan loope, nemlig i while løkken inde i AdderStrenge. Den ser dog korrekt ud for mig at se, men hvorfor koder du den ikke bare sådan her:

char *AdderStrenge(char *s1, char *s2)
{
  char *res = (char *)calloc(strlen(s1)+strlen(s2)+1);
  sprintf(res, \"%s%s\", s1, s2);
  return res;
}

du skal inkludere \'stdio.h\' for at kunne bruge sprintf.
Avatar billede soepro Nybegynder
12. september 2000 - 13:07 #7
Kaldet til calloc skal selvfølgelig se sådan her ud:

char *res = (char *)calloc(strlen(s1)+strlen(s2)+1, sizeof(char));
Avatar billede emileej Nybegynder
13. september 2000 - 10:02 #8
>Thue<

Jeg tror, at jeg har fundet fejlen selv. Tid.

>Soepro<

Jeg tester lige koden i frikvarteret (Jeg sidder lige midt i en teknologi time).

E-)mil
Avatar billede emileej Nybegynder
21. september 2000 - 11:09 #9
Jeg har fundet fejlen.

Tak for funktionen >Soepro<

E-)mil
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester