Php 如何从url拨打电话
我正在制作一个联盟计划,我根据fridgeblasteraffiliate.freeiz.com/affiliate/?numberherebasedonid这个链接计算点击次数,但我有这个Php 如何从url拨打电话,php,html,mysql,Php,Html,Mysql,我正在制作一个联盟计划,我根据fridgeblasteraffiliate.freeiz.com/affiliate/?numberherebasedonid这个链接计算点击次数,但我有这个 <?php $conn = mysqli_connect("redacted", "redacted", "redacted", "redacted"); if (!$conn) { die("Connection failed: ".mysqli_connect_error()
<?php
$conn = mysqli_connect("redacted", "redacted", "redacted",
"redacted");
if (!$conn) {
die("Connection failed: ".mysqli_connect_error());
}
session_start();
$url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$sql = "SELECT clicks FROM affiliate WHERE ID='$ID'";
$add = 1;
$ID = strpos($url, needle)
?>
您想使用GET变量。请尝试以下URL:
fridgeblasteraffiliate.freeiz.com/affiliate/?id=numberherebasedonid
然后在脚本中使用$\u GET['id']
访问该值
$sql = "SELECT clicks FROM affiliate WHERE ID='$_GET['id']'";
但是,请注意,此代码正如Magnus Eriksson在注释中所指出的,您可以通过将$\u GET['id']
类型转换为int类型或使用准备好的语句来否定此代码:
$statement = $conn->prepare('SELECT clicks FROM affiliate WHERE ID=?');
$statement->bind_param('s', $_GET['id']);
$statement->execute();
铸造:
$id = (int)$_GET['id'];
$sql = "SELECT clicks FROM affiliate WHERE ID='$id'";
准备的发言:
$statement = $conn->prepare('SELECT clicks FROM affiliate WHERE ID=?');
$statement->bind_param('s', $_GET['id']);
$statement->execute();
与您的问题无关,但您应该将session\u start()
放在打开的php标记下面。如果您这样做,您将为自己省去很多麻烦。请仔细阅读$\u GET
-super-global:。像这样在url中传递参数通常称为“查询字符串”。顺便说一句,您当前正在尝试使用变量$ID
后定义该变量。它需要在之前定义。此外,如果ID是数字的,请确保在db查询中使用它之前将其转换为整数,或者使用准备好的语句。否则,您将完全接受SQL注入。@Daniel创建链接和数字时,请不要忘记等号(=)/affiliate/?id=
@JonathanConnery如果您只想在数据库中添加对该帖子的点击,您可以直接更新它。您不需要先选择它。只需执行UPDATE affiliate SET clicks=clicks+1,其中ID=?
@Daniel感谢您帮助我加强了它,但我真正的问题是如何从url获取数字,将其添加到clicksMagnus的数据库中已经向您提供了查询。你真的不需要选择它,只需要更新它。只需使用该查询即可