Я хочу создать систему, чтобы пользователь мог зарегистрироваться / войти в систему, и когда они продолжат работу, они будут перенаправлены на страницу с пользовательскими настройками, например blahurl.com/nations/customid, каждый идентификатор уже генерируется, когда он регистрируется под именем UserID, и я хотите иметь возможность перейти на blahurl.com/nations/92, и у этого человека появится всплывающее окно, и его информация о SQL будет отображена.
Я хочу, чтобы, когда они регистрировались, они уже могли получить доступ к этим страницам, я не хочу делать страницу для каждого подписавшегося. Как бы я поступил так? И затем искать их по имени пользователя MySQL?
Когда люди регистрируются, они автоматически помещаются в мой submit-form.php, который выглядит так:
<?php
$username=$_POST['UserName'];
$password=$_POST['Password'];
$leadername=$_POST['LeaderName'];
$nationname=$_POST['NationName'];
$email=$_POST['Email'];
//Database connection
require_once("config.php");
require_once("checkregister.php");
//mysql query to insert value to database
$query=mysql_query("INSERT INTO users (UserName, Password, LeaderName, NationName, Email)
VALUES ('$username', '$password', '$leadername', '$nationname', '$email')");
//if value inserted successyully disply success message
if($query)
{
echo '<div style="color:#008000; font-weight:bold;">Your Account has been Created! <del>Check your Email for Verification Code!</del> in the future you will need to Verify your Account, for right now just <a href="../Login.php">go back to the Website!</a></div>';
} else
{
//error message
echo '<div style="color:#c24f00; font-weight:bold;">Registration Failed: Could not INSERT to Query! (Could not Connect to Database)<br><a href="../home.php">Back to Website</a></div>';
}
?>
Вы спросили, как сделать ссылку на необычный URL, что довольно просто. Вам просто нужно получить первичный ключ, который будет создан из вашего столбца автоинкремента:
представить-form.php
// Create user
// @todo Fix injection vuln
$query=mysql_query( ... );
// If successful...
if($query)
{
// Get the inserted primary key
$userId = mysql_insert_id();
?>
<div style="color:#008000; font-weight:bold;">
Your account has been created,
<a
href="nations.php?userId=<?php echo $userId ?>">go back to the website!</a>
</div>
<?php
}
Затем вы можете прочитать его на другой странице:
nations.php
<?php
// Read it only if it exists
$userId = isset($_GET['userId']) ? $_GET['userId'] : null;
// Escape any apostrophes in the ID, to avoid SQL injection
$cleanUserId = mysql_real_escape_string($userId);
// Always check if it exists, the user may have tampered with the URL
$sql = "SELECT * FROM users WHERE UserID = '$cleanUserId'";
$query = mysql_query($sql);
// Do something with the result...
Ниже приведены некоторые общие замечания. Это, вероятно, слишком много, чтобы поглотить его за один раз, но если вы немного почитаете их, они помогут в долгосрочной перспективе:
mysql_
звонки больше не поддерживаются. Они будут выдавать уведомления в PHP 5.5+.Других решений пока нет …