Php 基于mySQL查询转到url
好的,我正在制作这个网站(有点像bitly或goo.gl),在这里你输入一个链接,它会缩短它,但会有一些额外的好处。Php 基于mySQL查询转到url,php,html,mysql,Php,Html,Mysql,好的,我正在制作这个网站(有点像bitly或goo.gl),在这里你输入一个链接,它会缩短它,但会有一些额外的好处。 现在我正在托管一个本地mysql服务器进行测试,按照它的设置方式,一旦输入一个要缩短的链接,就会生成一个随机的3位数代码,并将其与链接一起放入mysql表中 当您在站点上输入代码时,它会转到mysql表,找到代码,找到相应的链接,理论上应该是带回该链接,然后打开它 这就是问题所在。它根本不起作用。我不知道这是html页面的问题,还是脚本的问题,但我不知道 我对PHP(我用于查询脚
现在我正在托管一个本地mysql服务器进行测试,按照它的设置方式,一旦输入一个要缩短的链接,就会生成一个随机的3位数代码,并将其与链接一起放入mysql表中 当您在站点上输入代码时,它会转到mysql表,找到代码,找到相应的链接,理论上应该是带回该链接,然后打开它 这就是问题所在。它根本不起作用。我不知道这是html页面的问题,还是脚本的问题,但我不知道 我对PHP(我用于查询脚本的语言)不是很有经验,所以我不知道如何进行故障排除 我希望这里有人能提供一些见解,解释为什么它可能不起作用。
我只知道当我点击“Go”按钮时,它会打开php代码而不是运行它,我不知道如何修复它 因为我不知道到底是什么问题,这里是html和php代码 HTML: (为了方便起见,只脱光了衣服,其他地方没有什么有趣的东西)
PHP:
您的代码中存在语法错误,请在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();
?>
如果您不能运行PHP代码,那么检查Apache的HTTPD.CONF文件是否有PHP MIME类型未注释,此外还有其他事情要考虑。检查此项
您是否安装了php并配置了Apache(或您正在使用的任何Web服务器)以正确运行php文件?它们还没有从Web服务器上运行,而只是通过thr浏览器在本地进行测试,而只是在开发过程中简化了流程。如果在本地运行,我将如何安装它们?为了在本地运行php文件,您需要安装一个Web服务器,比如wamp或xampp,它将apache、php、mysql捆绑在一起。我理解Darren,我只是让一切正常工作,即使代码非常混乱。一旦它正常工作,我将清理代码并修复任何bug。谢谢Alex,我会尝试的!所以我已经实现了这段代码,一切似乎都很正常,除了在php文件页面上出现http 500错误。你知道为什么现在会发生这种情况吗?检查error.log文件,它会详细地告诉你错误。基于此,您可以修复它。
$result = mysqli_query($conn, "SELECT id, nimblecode, urlredirect, messageredirect FROM linker WHERE nimblecode = '" . $var . "'");
<?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();
?>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ http://nic.x10.mx/tinyurl.php?var=$1 [QSA,NC,L]