<?php
$table='<table>
<tr>
<th>Id</th>
<th>Name</th>
<th>Serial</th>
</tr>';
$servername = "localhost";
$username = "";
$password = "";
$dbname = "verify";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$result = $conn->query($sql);
$stack = array();
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
array_push($stack, $row);
if(!$array) {
return $row;
}
}
}
$conn->close();
$table_content='';
foreach($stack as $item)
{
$table_content.= "<tr>
<td>" . $row['ProductId'] . "</td>
<td>" . $row['Name'] . " </td>.
<td>" . $row['SerialId'] . "</td>
</tr>";
}
echo $table.$table_content.'</table>';
?>
Лучшее решение, которое я нашел до сих пор (и тем, на котором я остановился), это добавить RegexKitLite В проект, который дает доступ к регулярным выражениям через NSString Категории .
Добавлять в проект довольно безболезненно, и, как только он появится, любая логика проверки правильности электронной почты будет работать.
Читать RFC. Почти каждый, кто думает, что знает, как разобрать / очистить / проверить адрес электронной почты, неправилен.
http://tools.ietf.org/html/rfc2822 Раздел 3.4.1 очень полезен. Заметьте
dtext = NO-WS-CTL / ; Non white space controls %d33-90 / ; The rest of the US-ASCII %d94-126 ; characters not including "[", ; "]", or "\"
Да, это означает, что +, 'и т. Д. Являются законными.
While the focus on regular expressions is good, but this is only a first and necessary step. There are other steps that also need to be accounted for a good validation strategy.
Two things on top of my head are :
DNS validation to make sure the domain actually exists.
After dns validation, you can also choose to do an smtp validation. send a call to the smtp server to see if the user actually exists.
In this way you can catch all kinds of user errors and make sure it is a valid email.
I have found that using a regular expression works quite well to validate an email address.
The major downside to regular expressions of course is maintainability, so comment like you have never commented before. I promise you, if you don't you will wish you did when you go back to the expression after a few weeks.
Here is a link to a good source, http://www.regular-expressions.info/email.html.
Хорошее начало - это решить, что вы и не хотите принимать в качестве адреса электронной почты?
99% адресов электронной почты выглядят так: bob. smith@foo.com или fred@bla.edu
Однако технически законно иметь адрес электронной почты, подобный этому: f ! # $% & '* + - / =? ^ _
{|} ~ "ha!" @ Com
Вероятно, в мире существует всего несколько действительных писем для доменов верхнего уровня, и почти никто не использует большинство этих других символов (особенно кавычки и обратные ссылки), поэтому вы можете предположить, что это все недопустимые действия. Но вы должны сделать это как осознанное решение.
Кроме того, делайте то, что говорит Павел, и попытайтесь сопоставить входные данные с регулярным выражением, подобным этому: ^ [A-Z0-9 ._% + -] + @ [A -Z0-9 .-] +. [AZ] {2,} $
Этот адрес будет в значительной степени соответствовать адресу электронной почты каждого.
Ответ на Использование регулярного выражения для проверки адреса электронной почты очень подробно объясняет, что грамматика, указанная в RFC 5322, слишком сложна для примитивных регулярных выражений.
Я рекомендую настоящий парсер, например MKEmailAddress .
В качестве быстрого решения для регулярных выражений см. Эту модификацию DHValidation :
- (BOOL) validateEmail: (NSString *) candidate {
NSString *emailRegex =
@"(?:[a-z0-9!#$%\\&'*+/=?\\^_`{|}~-]+(?:\\.[a-z0-9!#$%\\&'*+/=?\\^_`{|}"
@"~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\"
@"x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-"
@"z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5"
@"]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-"
@"9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21"
@"-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])";
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES[c] %@", emailRegex];
return [emailTest evaluateWithObject:candidate];
}