Framework7 не передает переменную URL на следующую страницу

Я не могу заставить Framework7 использовать переменную URL ?username=User1 на следующей странице.

Он генерируется и присваивается ссылке на странице 1, но не используется ни в запросе SQL, ни в выражениях echo на странице 2.

Страница 1 устанавливает переменную в гиперссылке с помощью;

profile.php?username=<?php echo htmlentities($row['username'], ENT_QUOTES, 'UTF-8'); ?>

Страница 2 «получает» переменную используя;

<?php $username = (isset($_GET['username']))? trim(strip_tags($_GET['username'])) : ""; ?>

Framework7 — это фреймворк для веб-приложений — www.idangero.us/framework7/.

Отредактировано, чтобы добавить полный источник profile.php, который должен использовать переменную.

<?php

// First we execute our common code to connection to the database and start the session
require("common.php");

// At the top of the page we check to see whether the user is logged in or not
if(empty($_SESSION['user']))
{
// If they are not, we redirect them to the login page.
header("Location: index.php");

// Remember that this die statement is absolutely critical.  Without it,
// people can view your members-only content without logging in.
die("Redirecting to index.php");
}

// Everything below this point in the file is secured by the login system// We can retrieve a list of members from the database using a SELECT query.
// In this case we do not have a WHERE clause because we want to select all
// of the rows from the database table.
$query = "SELECT
id,
username,
email
FROM users WHERE username = '$username'
";

try
{
// These two statements run the query against your database table.
$stmt = $db->prepare($query);
$stmt->execute();
}
catch(PDOException $ex)
{
// Note: On a production website, you should not output $ex->getMessage().
// It may provide an attacker with helpful information about your code.
die("Failed to run query: " . $ex->getMessage());
}

// Finally, we can retrieve all of the found rows into an array using fetchAll
$rows = $stmt->fetchAll();
?>

<?php include('header.php') ?>

<div class="pages navbar-through toolbar-through">
<div class="page" data-page="profile">

<div class="page-content">

<div class="content-block">
<div class="content-block-inner">

<?php
print_r($_GET);
?>

<p>Profile content will go here - <?php echo '&username'; ?></p>
<?php foreach($rows as $row): ?>
<div>Username: <?php echo $row['username'] ?></div>
<div>Location: <?php echo $row['email'] ?></div>

<?php endforeach; ?>

<a href="private.php">Go Back</a><br />
</div>

</div>
</div>

</div>
</div>

<?php include('footer.php') ?>

Я также напечатал $GET переменные и может видеть, что значение переменной фактически передается — просто по какой-то причине оно не используется в запросе.

1

Решение

Вы не назначили $username переменная, вы должны использовать что-то вроде этого:

<?php

// First we execute our common code to connection to the database and start the session
require("common.php");

// At the top of the page we check to see whether the user is logged in or not
if(empty($_SESSION['user']))
{
// If they are not, we redirect them to the login page.
header("Location: index.php");

// Remember that this die statement is absolutely critical.  Without it,
// people can view your members-only content without logging in.
die("Redirecting to index.php");
}

// Everything below this point in the file is secured by the login system// We can retrieve a list of members from the database using a SELECT query.
// In this case we do not have a WHERE clause because we want to select all
// of the rows from the database table.

$username = (isset($_GET['username']))? trim(strip_tags($_GET['username'])) : "";

$query = "SELECT
id,
username,
email
FROM users WHERE username = '$username'
";

try
{
// These two statements run the query against your database table.
$stmt = $db->prepare($query);
$stmt->execute();
}
catch(PDOException $ex)
{
// Note: On a production website, you should not output $ex->getMessage().
// It may provide an attacker with helpful information about your code.
die("Failed to run query: " . $ex->getMessage());
}

// Finally, we can retrieve all of the found rows into an array using fetchAll
$rows = $stmt->fetchAll();
?>

<?php include('header.php') ?>

<div class="pages navbar-through toolbar-through">
<div class="page" data-page="profile">

<div class="page-content">

<div class="content-block">
<div class="content-block-inner">

<?php
print_r($_GET);
?>

<p>Profile content will go here - <?php echo $username; ?></p>
<?php foreach($rows as $row): ?>
<div>Username: <?php echo $row['username'] ?></div>
<div>Location: <?php echo $row['email'] ?></div>

<?php endforeach; ?>

<a href="private.php">Go Back</a><br />
</div>

</div>
</div>

</div>
</div>

<?php include('footer.php') ?>

Вы также должны избегать ввода перед входом в БД

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]