dyablo96
02-06-2015, 14:37
salve a tutti, ho riscontrato uno strano problema in un recente programma che ho costruito.
nel momento in cui tento di concatenare dei vettori di caratteri utilizzando la funzione strcat() il secondo va a sovrapporsi al primo.
qui di seguito lo spezzone di codice che da problemi:
char q[200]="select id from users where mail='";
char add[17]="' and password='";
printf("\nadd: %s\n",add);
strcat(q,username);
char q2[200];
strcpy(q2,add);
printf("\nq2: %s\n",q2);
strcat(q2,PasswordMd5);
printf("\nq2: %s\n",q2);
char q3[200];
strcpy(q3,q);
printf("\nq3: %s\n",q3);
strcat(q3,q2);
printf("\nq3: %s\n",q3);
so bene che avrei potuto riscrivere evitando le variabili q2 e q3 concatendando tutto sul vettore q ma l'ho fatto per capire bene come mai non mi viene concatenata la stringa ma bensė sovrapposta.
questo č l'uotput del programma:
add: ' and password='
q2: ' and password='
q2: ' and password='055a3a4adf9033eb272b9f008500ffa0
q3: select id from users where mail='mattia.milani10@gmail.com
' and password='055a3a4adf9033eb272b9f008500ffa0ni10@gmail.com
se prima di unire le stringhe richiedo di stampare l'username e la password non ci sono problemi e sono corretti, nel momento in cui invece si va ad unire per creare la select completa vengono sovrapposti
grazie a quelli che risponderanno
nel momento in cui tento di concatenare dei vettori di caratteri utilizzando la funzione strcat() il secondo va a sovrapporsi al primo.
qui di seguito lo spezzone di codice che da problemi:
char q[200]="select id from users where mail='";
char add[17]="' and password='";
printf("\nadd: %s\n",add);
strcat(q,username);
char q2[200];
strcpy(q2,add);
printf("\nq2: %s\n",q2);
strcat(q2,PasswordMd5);
printf("\nq2: %s\n",q2);
char q3[200];
strcpy(q3,q);
printf("\nq3: %s\n",q3);
strcat(q3,q2);
printf("\nq3: %s\n",q3);
so bene che avrei potuto riscrivere evitando le variabili q2 e q3 concatendando tutto sul vettore q ma l'ho fatto per capire bene come mai non mi viene concatenata la stringa ma bensė sovrapposta.
questo č l'uotput del programma:
add: ' and password='
q2: ' and password='
q2: ' and password='055a3a4adf9033eb272b9f008500ffa0
q3: select id from users where mail='mattia.milani10@gmail.com
' and password='055a3a4adf9033eb272b9f008500ffa0ni10@gmail.com
se prima di unire le stringhe richiedo di stampare l'username e la password non ci sono problemi e sono corretti, nel momento in cui invece si va ad unire per creare la select completa vengono sovrapposti
grazie a quelli che risponderanno