Итак, я думаю, если они просят вас использовать списочное понимание для упражнения, они хотят, чтобы вы определяли списки встроенными:
Если ваши решения могут работать, они, скорее всего, не будут тем, что ищет разработчик вопроса.
def build_list(number_of_randoms=3, outer_list_size=3, threshold=5):
rands = [[random.randint(1, 10) for _x in range(number_of_randoms)] for _y in range(outer_list_size)]
return [[index] + [n for n in numbers] + [sum(x for x in numbers if x > threshold)] for index, numbers in enumerate(rands)]
Я написал довольно грубую функцию выше, но она должна помочь вам дать представление о том, что, я думаю, они ищут.
Можно передать информацию между использованием страниц, ДОБИРАЮТСЯ или методы POST. ДОБЕРИТЕСЬ добавил бы информацию, как которая Вы хотите передать как querystring URL, такому:
loginprocess.php? id=JSmith&pword=HelloThere (это точно не рекомендуется для частной информации),
Другой метод должен отправить информацию по почте так, чтобы это было скрыто от querystring.
Больше примеров видно здесь: http://www.tizag.com/phpT/postget.php
Вы ищете POST и ПОЛУЧАЕТЕ переменные, он сделан в параметре метода Вашей HTML-формы:
login.php
<form name="myform" action="secondpage.php" method="post">
<div>Username: <input type="text" name="username" value="" /></div>
<div>Password: <input type="password" name="password" value="" /></div>
</form>
Затем на этой другой странице:
secondpage.php
$username = isset($_POST['username']) ? $_POST['username'] : '';
$password = isset($_POST['password']) ? $_POST['password'] : '';
if ($username != '') {
// do your validations here
}
При использовании ПОЛУЧИТЬ метода параметры видимы в URL, так скажем, мы изменяемся, метод = "ДОБИРАЮТСЯ" в login.php, Вы закончите с чем-то как secondpage.php? username=jsmith&password=1234. И затем Вы могли получить использование значений $_GET['username']
.
Используя POST позволяет отправить большее количество данных (существует неопределенный предел размеру URL), и это не видимо в URL. Необходимо отметить, хотя это, которое это все еще отправляется в открытом тексте, таким образом, это не делает средств, это безопасно.
POST и ДОБИРАЕТСЯ, были сделаны в различных целях. ДОБЕРИТЕСЬ должно быть использование для извлечения информации, которую Вы могли хотеть извлечь снова в будущем, информация, которая не является особенной для этого очень мгновенного. Полезно иметь mypage.php? product=123, потому что Вы потенциально захотите отправить этот URL другу. POST должен использоваться при изменении состояния данных: обновление продукта, создавая нового пользователя, удаляя статью и так далее. Это - что-то, что Вы хотите произойти однажды.
В заключение я просто хочу добавить, что обычно Вы не обязательно хотели бы использовать другой Сценарий PHP только для предотвращения некоторого кода для выполнения или нет. Таким образом не зная специфических особенностей Вашего проекта, я могу, тем не менее, сказать, что Вы, вероятно, хотели бы сделать что-то как этот для пользы из того же кода (такого как HTML формы).
Обратите внимание, что это упростило код.
login.php
<?php
$error = false;
$username = isset($_POST['username']) ? $_POST['username'] : '';
$password = isset($_POST['password']) ? $_POST['password'] : '';
// if, and only if something was posted... so not on first display
if ($username != '') {
// do your validations here
if ($properlyLogged) {
session_start();
$_SESSION['loggedAt'] = time();
header('Location: http://localhost/secondpage.php');
exit();
} else {
$error = true;
}
}
?>
<?php if($error): ?>Login failed. Please try again.<?php endif; ?>
<form name="myform" action="login.php" method="post">
<div>Username: <input type="text" name="username" value="<?php echo($username) ?>" /></div>
<div>Password: <input type="password" name="password" value="" /></div>
</form>
secondpage.php
<?php
session_start();
if (!isset($_SESSION['loggedAt'])) {
// if not properly logged in, return user to login
header('Location: http://localhost/login.php');
exit();
}
?>
You are now logged in!
Надежда это - то, что Вы искали!
Просто маленькое дополнительное к тому, что было записано прежде: пределом на ПОЛУЧЕНИЕ (параметризуют URL) является полный URL, что означает 1 024 символа. При необходимости в больше, чем это необходимо использовать сообщение.
Если данные не то, что большой Вы могли перенаправить пользователя к 2-й странице с данными, переданными через URL (ПОЛУЧИТЕ переменные). Иначе просто выполните метод секунд на той же странице и используйте функцию, чтобы сделать заключительный парсинг данных, которые могут быть включены, как вышеупомянутый пользователь предполагает.
Можно использовать в своих интересах сессии PHP для обмена данными среди Сценариев PHP. Основной пример ниже, читайте больше здесь.
login.php:
<?php
// initializes the session //
session_start();
// save user name and password to session //
$_SESSION["username"] = 'someuser';
$_SESSION["password"] = 'somepassword';
$_sESSION["valid"] = true;
?>
secondpage.php:
<?php
// start session handler //
session_start();
// check for a valid session //
if (!isset($_SESSION["valid"])) header("Location: login.php\n\n");
// continue page code here //
?>