I hope you like it now
Well, I don't.
if(RFID.available()>0){
data[0] = RFID.read();
data[1] = RFID.read();
data[2] = RFID.read();
data[3] = RFID.read();
If there is at least one byte to read, read all 4 of them. Why can't you see that this is wrong?
if ((data[0] == tag1[0])&&(data[1] == tag1[1])&&(data[2] == tag1[2])&&(data[3] == tag1[3])) {
Googling memcmp() is in your future.
if (tag1_card==true) {
Don't you suppose that true == true evaluates to true, just like true does?
if(tag1_card)
{ // Down here where it belongs!