作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我在一个使用 PHP 的网站上工作,我想在单击按钮时更新数据库。但出于某种原因,无论何时加载页面,代码都会运行,我不希望这样,因为它真的会弄乱整个代码。如何停止脚本自动运行?
<?php
ob_start();
session_start();
include_once 'dbconnect.php';
// if session is not set this will redirect to login page
if( !isset($_SESSION['user']) ) {
header("Location: index.php");
exit;
}
$res=mysql_query("SELECT * FROM users WHERE userId=".$_SESSION['user']);
$userRow=mysql_fetch_array($res);
//Here is where the script is
if ( isset($_POST['send']) ) {
if ( ! empty($_POST['sender'])){
$name = $_POST['sender'];
}
if ( ! empty($_POST['reciever'])){
$name = $_POST['reciever'];
}
$query = "UPDATE users SET userCoins = userCoins + 1 WHERE userName='Morgan'";
$res = mysql_query($query);
if ($res) {
$error = "Success!";
} else {
$error = "Something Went Wrong!";
}
}
?>
<!DOCTYPE html>
<html>
<?php header("Access-Control-Allow-Origin: http://www.py69.esy.es"); ?>
<head>
<title>ServiceCoin</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="assets/css/bootstrap.min.css" type="text/css" />
<link rel="stylesheet" href="scripts/home/index.css" />
</head>
<body>
<ul>
<li><a href="#" class="a">ServiceCoin.com(image)</a></li>
<li><a href="logout.php?logout" class="a">Sign Out</a></li>
<li><a href="#" class="a">Contact</a></li>
<li><a href="#" class="a">Get Service Coins</a></li>
<li><a href="#" class="a">News</a></li>
<li><a href="settings.php" class="a">Settings</a></li>
<li><a href="#" class="a">Referrals</a></li>
<li><a href="service.php" class="a">Services</a></li>
<li><a href="home.php" class="a">Home</a></li>
</ul>
<br /><br />
<center>
<h3>Welcome, <?php echo $userRow['userName']; ?>. You Currently Have <span id="services"><?php echo $userRow['userCoins']; ?></span> Service Coins</h3>
<form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" autocomplete="off">
<div class="form-group">
<div class="input-group">
<span class="input-group-addon"><span class="glyphicons glyphicons-lock"></span></span>
<input type="text" name="sender" class="form-control" placeholder="Enter Your Wallet Key" value="<?php echo $row['userCoins']; ?>" maxlength="15" />
<span class="text-danger"><?php echo $error; ?></span>
</div>
<div class="input-group">
<span class="input-group-addon"><span class="glyphicons glyphicons-lock"></span></span>
<input type="text" name="reciever" class="form-control" placeholder="Enter The Recievers Wallet Key" value="<?php echo $row['userCoins']; ?>" maxlength="15" />
<span class="text-danger"><?php echo $error; ?></span>
</div>
</div>
<div class="form-group">
<button type="submit" class="btn btn-block btn-primary" name="send">Sign Up</button>
</div>
</form>
</center>
</body>
</html>
<?php ob_end_flush(); ?>
更新
我的页面现在完全是白色的。
<?php
ob_start();
session_start();
include_once 'dbconnect.php';
if(!isset($_SESSION['user'])) {
header("Location: index.php");
exit;
}
$condition = empty($_POST['sender']) || empty($_POST['reciever']);
if ($condition) {
die; // if your post data is empty PHP will no longer be executed
}
$res= "SELECT * FROM users WHERE userId=".$_SESSION['user'];
$mysqli->query($con, $res); // you are doing nothing with it in your code, why?
$name = $_POST['sender'];
$name = $_POST['reciever'];
$query = "UPDATE users SET userCoins = userCoins + 1 WHERE userName='Morgan'";
$res = $mysqli->query($con, $query);
if ($res) {
$error = "Success!";
} else {
$error = "Something Went Wrong!";
}
?>
<!DOCTYPE html>
<html>
<?php header("Access-Control-Allow-Origin: http://www.py69.esy.es"); ?>
<head>
<title>ServiceCoin</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="assets/css/bootstrap.min.css" type="text/css" />
<link rel="stylesheet" href="scripts/home/index.css" />
</head>
<body>
<ul>
<li><a href="#" class="a">ServiceCoin.com(image)</a></li>
<li><a href="logout.php?logout" class="a">Sign Out</a></li>
<li><a href="#" class="a">Contact</a></li>
<li><a href="#" class="a">Get Service Coins</a></li>
<li><a href="#" class="a">News</a></li>
<li><a href="settings.php" class="a">Settings</a></li>
<li><a href="#" class="a">Referrals</a></li>
<li><a href="service.php" class="a">Services</a></li>
<li><a href="home.php" class="a">Home</a></li>
</ul>
<br /><br />
<center>
<h3>Welcome, <?php echo $userRow['userName']; ?>. You Currently Have <span id="services"><?php echo $userRow['userCoins']; ?></span> Service Coins</h3>
<form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" autocomplete="off">
<div class="form-group">
<div class="input-group">
<span class="input-group-addon"><span class="glyphicons glyphicons-lock"></span></span>
<input type="text" name="sender" class="form-control" placeholder="Enter Your Wallet Key" value="<?php echo $row['userCoins']; ?>" maxlength="15" />
<span class="text-danger"><?php echo $error; ?></span>
</div>
<div class="input-group">
<span class="input-group-addon"><span class="glyphicons glyphicons-lock"></span></span>
<input type="text" name="reciever" class="form-control" placeholder="Enter The Recievers Wallet Key" value="<?php echo $row['userCoins']; ?>" maxlength="15" />
<span class="text-danger"><?php echo $error; ?></span>
</div>
</div>
<div class="form-group">
<button type="submit" class="btn btn-block btn-primary" name="send">Sign Up</button>
</div>
</form>
</center>
</body>
</html>
<?php ob_end_flush(); ?>
最佳答案
你应该使用 MySQLi
。关于why not mysql_*
你可以阅读here
解决方案
您的代码可能如下所示:
$mysqli = new mysqli("localhost", "my_user", "my_password", "table_name"); // here you will need your connection data, you can store it in dbconnect.php.
// if session is not set this will redirect to login page
if(!isset($_SESSION['user'])) {
header("Location: index.php");
exit;
}
$condition = empty($_POST['sender']) || empty($_POST['reciever']);
if (!$condition) {
$res= "SELECT * FROM users WHERE userId=".$_SESSION['user'];
$mysqli->query($res); // you are doing nothing with it in your code, why?
$name = $_POST['sender'];
$reciever = $_POST['reciever'];
$query = "UPDATE users SET userCoins = userCoins + 1 WHERE userName='Morgan'";
$res = $mysqli->query($query);
if ($res) {
$error = "Success!";
} else {
$error = "Something Went Wrong!";
echo "Error: ".$mysqli->error; // here you can check your errors
}
}
手动
关于 MySQLi
的更多信息可以在 PHP Manual 中找到
关于无需单击按钮即可运行的 PHP 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40595165/
这实际上是我问的问题的一部分here ,该问题没有得到答复,最终被标记为重复。 问题:我只需使用 @Autowired 注释即可使用 JavaMailSender。我没有通过任何配置类公开它。 @Co
我是一名优秀的程序员,十分优秀!