if ($email == NULL || $email == '' || !check_email_address($email)) { echo json_encode(array('success' => FALSE, 'error' => 'INVALID')); } else { if (R::count('email', 'ip=:ip AND time>=:time', array(':ip' => $ip, ':time' => time() + 119 * 60)) >= 20) { echo json_encode(array('success' => FALSE, 'error' => 'LIMITATION')); } else { $bean = R::findOne('email', 'forwardto=:email AND time >= :time', array(':email' => $email, ':time' => time())); if ($bean) { $bean->time = time() + 120 * 60; R::store($bean); echo json_encode(array('success' => TRUE, 'email' => $bean->email . '@tempmail.ir')); } else { $rndmail = ''; do { $rndmail = generateRandomString(8); } while (R::count('email', 'email=:email AND time>=:time', array(':email' => $rndmail, ':time' => time())) > 0); $bean = R::dispense('email'); $bean->email = $rndmail; $bean->forwardto = $email; $bean->time = time() + 120 * 60; $bean->ip = $ip; R::store($bean); echo json_encode(array('success' => TRUE, 'email' => $rndmail . '@tempmail.ir')); } } } }); $app->run(); function check_email_address($email) { if (!preg_match("/^[^@]{1,64}@[^@]{1,255}\$/", $email)) {