Why this doesnt work?

// When you press the button, it is supposed to blink each 10 seconds. The first two blinks (20s) it works well, but in the third one, the light keeps on, and doesn't turn off. (Why is this?) The other button is to stop the sequence...

//LIBRERÍAS

#include <LiquidCrystal.h>
#include <Servo.h>

///////////////////////////////

LiquidCrystal lcd(7,6,5,4,3,2);
Servo serv;

//VARIABLES//

int pot; //Potenciómetro
int valor; //Valor del potenciómetro
int boton=9; //Botón de encendido
int botond=12; //Botón de apagado
int ap;
int en;
int led=13;
int t; //Tiempo
int act; //activado?

//SETUPS//

void setup() {
t =millis();
lcd.begin(16, 2);
lcd.setCursor(0,1);
lcd.print("DESACTIVADO");
pinMode(boton,INPUT);
pinMode(led,OUTPUT);
serv.attach(8);
Serial.begin(9600);
}

void loop() {
lcd.setCursor(0,0);
lcd.print(valor);
lcd.setCursor(3,0);
lcd.print("HORAS / RIEGO");
en= digitalRead(boton);
ap= digitalRead(botond);
pot = analogRead(0);
valor = map(pot, 0, 1019, 10, 48);

if(en==1){ //Botón encendido

t =millis();
lcd.clear();
lcd.setCursor(0,0);
lcd.print(valor);
lcd.setCursor(3,0);
lcd.print("HORAS / RIEGO");
lcd.setCursor(0,1);
lcd.print("ACTIVADO");
act=1;

}
while(millis()-t> 10000){
if(act==1){
t=millis();
digitalWrite(led,HIGH);
delay(200);
digitalWrite(led,LOW);
t=millis();
}
}

if(ap==1){ //Botón apagado
digitalWrite(led,HIGH);
delay(300);
digitalWrite(led,LOW);
lcd.setCursor(0,1);
lcd.print("DESACTIVADO");
act=0;
}
}

// When you press the button, it is supposed to blink each 10 seconds. The first two blinks (20s) it works well, but in the third one, the light keeps on, and doesn't turn off. (Why is this?) The other button is to stop the sequence...

int t; //Tiempo
t =millis();

Variables used with millis() like like this should be declared as unsigned long or else they will overflow.

I think it is stuck in the while-loop.
Can you make the sketch without the while-loop ?
A millis timer can be turned on and off with an extra 'bool' variable: millis_within_millis.ino.
It is possible to count within a millis-timer. A millis-timer can turn itself off. There are many possibilities.

I also did it with an "if" an didn't work...

Ok thanks. The thing i don't understand is why at first blinks It does work, but then It stays on...

i don't see that. i see it flickering (200ms) repeatedly without pressing a button.

button switches are normally connected between the pin and ground and the pin configured as INPUT_PULLUP so that there is an internal pullup resistor pulling the pin HIGH. pressing the button connects it to ground making the pin LOW

you also have two conditionals toggling the LED. shouldn't there just be one?