Простую альтернативу этой проблеме можно решить, предоставив соответствующие разрешения в самой базе данных. Например: если вы используете базу данных mysql, введите в базу данных через терминал или предоставленный интерфейс и просто следуйте этой команде:
GRANT SELECT, INSERT, DELETE ON database TO username@'localhost' IDENTIFIED BY 'password';
Это ограничит пользователя ограничиться только указанным запросом только. Удалите разрешение удаления, и поэтому данные никогда не будут удалены из запроса, запущенного с php-страницы. Второе, что нужно сделать, это очистить привилегии, чтобы mysql обновлял разрешения и обновления.
FLUSH PRIVILEGES;
Дополнительная информация о flush .
To см. текущие привилегии для пользователя, вызывают следующий запрос.
select * from mysql.user where User='username';
Подробнее о GRANT .
Если Вы хотите послать электронное письмо из своего приложения, вышеупомянутый код является единственным способом сделать это, если Вы не кодируете свой собственный почтовый клиент (SMTP) в Вашем приложении или имеете сервер, отправляют почту за Вами.
, Например, Вы могли кодировать свое приложение для вызова URL на сервер, который отправит почту за Вами. Тогда Вы просто называете URL от своего кода.
Примечание, что с вышеупомянутым кодом Вы ничего не можете присоединить к электронной почте, которую клиентский метод SMTP позволил бы Вам делать, а также метод серверной стороны.
Несколько вещей, которые я бы хотел бы добавить сюда:
Использование URL mailto не будет работать в симуляторе, поскольку mail.app не установлен на симуляторе. Однако на устройстве он работает.
Существует ограничение на длину URL mailto. Если URL-адрес превышает 4096 символов, mail.app не запускается.
В OS 3.0 есть новый класс, который позволяет отправлять электронную почту, не выходя из приложения. См. Класс MFMailComposeViewController.
MFMailComposeViewController - это решение, которое нужно сделать после выпуска программного обеспечения iPhone OS 3.0. Вы можете посмотреть пример кода или учебник, который я написал .
On iOS 3.0 and later you should use the MFMailComposeViewController
class, and the MFMailComposeViewControllerDelegate
protocol, that is tucked away in the MessageUI framework.
First add the framework and import:
#import <MessageUI/MFMailComposeViewController.h>
Then, to send a message:
MFMailComposeViewController* controller = [[MFMailComposeViewController alloc] init];
controller.mailComposeDelegate = self;
[controller setSubject:@"My Subject"];
[controller setMessageBody:@"Hello there." isHTML:NO];
if (controller) [self presentModalViewController:controller animated:YES];
[controller release];
Then the user does the work and you get the delegate callback in time:
- (void)mailComposeController:(MFMailComposeViewController*)controller
didFinishWithResult:(MFMailComposeResult)result
error:(NSError*)error;
{
if (result == MFMailComposeResultSent) {
NSLog(@"It's away!");
}
[self dismissModalViewControllerAnimated:YES];
}
Remember to check if the device is configured for sending email:
if ([MFMailComposeViewController canSendMail]) {
// Show the composer
} else {
// Handle the error
}