gpt4 book ai didi

php - 转到基于 mySQL 查询的 url

转载 作者:可可西里 更新时间:2023-11-01 07:38:47 25 4
gpt4 key购买 nike

好的,所以我正在制作这个网站(有点像 bitly 或 goo.gl),您可以在其中输入链接并缩短它,但还有一些额外的好处。
现在我只是托管一个本地 mysql 服务器进行测试,它的设置方式是,一旦输入要缩短的链接,就会生成一个随机的 3 位数代码,并将其连同其链接一起放入 mysql 表中。

当你在网站上输入代码时,它会进入mysql表,找到代码,找到相应的链接,理论上应该带回那个链接,然后打开它。

这就是问题所在。它根本不起作用。我不知道这是 html 页面问题还是脚本问题,但我不知道。

我对 PHP(用于查询脚本的语言)不是很有经验,所以我不确定如何进行故障排除。

我希望这里的人可以提供一些见解来解释为什么它可能不起作用。
我所知道的是,当我单击“开始”按钮时,它会打开 php 代码而不是运行它,我不确定如何修复它。

因为我不知道到底是什么问题,这里是html和php代码。

HTML:(为方便起见,只剩下 body 。其他地方没什么有趣的)

  <body>
<center><form action="sql_query.php" method="post">
<input class="enjoy-css" placeholder="" maxlength="3" name="var" type="text" />
<script type="text/javascript" script-name="josefin-sans" src="http://use.edgefonts.net/josefin-sans.js"></script>
<input type="submit" class="enjoy-css_1" value="Go" src="sql_query.php" />
<script type="text/javascript" script-name="josefin-sans" src="http://use.edgefonts.net/josefin-sans.js"></script>
</form></center>

PHP:

<?php
$servername = "localhost";
$username = "nimbleadmin";
$password = "admin";
$dbname = "nimble";
$var = $_POST['var'];

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}

$result = mysql_query("SELECT id, nimblecode, urlredirect, messageredirect FROM linker WHERE nimblecode = '" + $var + "'");
if (!$result) {
echo 'Could not run query: ' . mysql_error();
exit;
}
$row = mysql_fetch_row($result);
echo "id: " . $row["nimblecode"]. " //// URL: " . $row["urlredirect"]. " //// Message: " . $row["messageredirect"]. "<br>";
if ($row["messageredirect"]. == null) {
header('Location: ' . $row["urlredirect"]);
} else {
header('Location: http://nic.x10.mx/message?' . $row["nimblecode"]);
}
$conn->close();
?>

非常感谢任何帮助!我知道这是一个有点有趣的问题,但我仍在学习!

最佳答案

您的代码中存在语法错误,请在 php 中使用点进行连接,并在查询时使用 mysqli 对象而不是 mysql。

$result = mysqli_query($conn, "SELECT id, nimblecode, urlredirect, messageredirect     FROM linker WHERE nimblecode = '" . $var . "'");

完整代码更改:将此文件存储为“tinyurl.php”

    <?php    $servername = "localhost";    $username = "nimbleadmin";
$password = "admin";
$dbname = "nimble";
$var = $_GET['var'];
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$result = $conn->query("SELECT id, nimblecode, urlredirect, messageredirect FROM linker WHERE nimblecode = '%s', $var);
if (!$result) {
echo 'Could not run query: ' . mysql_error(); exit;
}
if ($result->num_rows > 0) { $row = $result->fetch_assoc();
echo "id: " . $row["nimblecode"]. " //// URL: " . $row["urlredirect"]. "
//// Message: " . $row["messageredirect"]. "
";
} if ($row["messageredirect"] == "") {
header('Location: ' . $row["urlredirect"]);
} else if ($row["nimblecode"] != "") {
header('Location: http://nic.x10.mx/message?' . $row["nimblecode"]);
} else { header('Location: http://nic.x10.mx/'); } $conn->close(); ?>

在.htaccess 中需要添加这条规则:

     RewriteEngine on     RewriteCond %{REQUEST_FILENAME} !-d     RewriteCond %{REQUEST_FILENAME} !-f     RewriteRule ^([^/]+)/?$ http://nic.x10.mx/tinyurl.php?var=$1 [QSA,NC,L]      

示例 URL 条目 http://nic.x10.mx/abc

将重定向到数据库中存在的目标 URL。

关于php - 转到基于 mySQL 查询的 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39543298/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com