Передающая информация между страницами PHP

Итак, я думаю, если они просят вас использовать списочное понимание для упражнения, они хотят, чтобы вы определяли списки встроенными:

Списки понимают Документы

Если ваши решения могут работать, они, скорее всего, не будут тем, что ищет разработчик вопроса.

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)]

Я написал довольно грубую функцию выше, но она должна помочь вам дать представление о том, что, я думаю, они ищут.

5
задан TheTXI 7 March 2009 в 18:57
поделиться

5 ответов

Можно передать информацию между использованием страниц, ДОБИРАЮТСЯ или методы POST. ДОБЕРИТЕСЬ добавил бы информацию, как которая Вы хотите передать как querystring URL, такому:

loginprocess.php? id=JSmith&pword=HelloThere (это точно не рекомендуется для частной информации),

Другой метод должен отправить информацию по почте так, чтобы это было скрыто от querystring.

Больше примеров видно здесь: http://www.tizag.com/phpT/postget.php

4
ответ дан 18 December 2019 в 14:52
поделиться

Вы ищете 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!

Надежда это - то, что Вы искали!

7
ответ дан 18 December 2019 в 14:52
поделиться

Просто маленькое дополнительное к тому, что было записано прежде: пределом на ПОЛУЧЕНИЕ (параметризуют URL) является полный URL, что означает 1 024 символа. При необходимости в больше, чем это необходимо использовать сообщение.

1
ответ дан 18 December 2019 в 14:52
поделиться

Если данные не то, что большой Вы могли перенаправить пользователя к 2-й странице с данными, переданными через URL (ПОЛУЧИТЕ переменные). Иначе просто выполните метод секунд на той же странице и используйте функцию, чтобы сделать заключительный парсинг данных, которые могут быть включены, как вышеупомянутый пользователь предполагает.

1
ответ дан 18 December 2019 в 14:52
поделиться

Можно использовать в своих интересах сессии 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 //

?>
0
ответ дан 18 December 2019 в 14:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: