Closed. This question is off-topic。它当前不接受答案。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
4年前关闭。
我尝试将表单数据放入mysql表,但无法正常工作。密码和我所有的密码都是正确的。复选框和国家/地区现在位于第二位。
php:警告:sprintf():参数太少
警告:mysqli :: query():空查询
mysql表:
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
4年前关闭。
我尝试将表单数据放入mysql表,但无法正常工作。密码和我所有的密码都是正确的。复选框和国家/地区现在位于第二位。
php:警告:sprintf():参数太少
警告:mysqli :: query():空查询
mysql表:
CREATE TABLE IF NOT EXISTS 'users' (
'id' INT(11) NOT NULL AUTO_INCREMENT,
'username' VARCHAR(255) NOT NULL,
'password' VARCHAR(255) NOT NULL,
'email' VARCHAR(255) NOT NULL,
'firstname' VARCHAR(255) NOT NULL,
'lastname' VARCHAR(255) NOT NULL,
'phone' INT(255) NOT NULL,
'town' VARCHAR(255) NOT NULL,
'street' VARCHAR(255) NOT NULL,
'zip' INT(255) NOT NULL,
PRIMARY KEY ('id'),
UNIQUE KEY 'username' ('username')
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
<?php
$message = array();
if (!empty($_POST)) {
if (
empty($_POST['f']['username']) ||
empty($_POST['f']['password']) ||
empty($_POST['f']['password_again']) ||
empty($_POST['f']['email']) ||
empty($_POST['f']['firstname']) ||
empty($_POST['f']['lastname']) ||
empty($_POST['f']['phone']) ||
empty($_POST['f']['town']) ||
empty($_POST['f']['street']) ||
empty($_POST['f']['zip'])
) {
$message['error'] = 'Es wurden nicht alle Felder ausgefüllt.';
} else if ($_POST['f']['password'] != $_POST['f']['password_again']) {
$message['error'] = 'Die eingegebenen Passwörter stimmen nicht überein.';
} else {
unset($_POST['f']['password_again']);
$salt = '';
for ($i = 0; $i < 22; $i++) {
$salt .= substr('./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789', mt_rand(0, 63), 1);
}
$_POST['f']['password'] = crypt(
$_POST['f']['password'],
'$2a$10$' . $salt
);
$mysqli = @new mysqli('localhost', 'root', '***', '***');
if ($mysqli->connect_error) {
$message['error'] = 'Datenbankverbindung fehlgeschlagen: ' . $mysqli->connect_error;
}
$query = sprintf(
"INSERT INTO user2 (username, password, email, firstname, lastname, phone, town, street, zip)
SELECT * FROM (SELECT '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s') as new_user
WHERE NOT EXISTS (
SELECT username FROM user2 WHERE username = '%s'
) LIMIT 1;",
$mysqli->real_escape_string($_POST['f']['username']),
$mysqli->real_escape_string($_POST['f']['password']),
$mysqli->real_escape_string($_POST['f']['email']),
$mysqli->real_escape_string($_POST['f']['firstname']),
$mysqli->real_escape_string($_POST['f']['lastname']),
$mysqli->real_escape_string($_POST['f']['phone']),
$mysqli->real_escape_string($_POST['f']['town']),
$mysqli->real_escape_string($_POST['f']['street']),
$mysqli->real_escape_string($_POST['f']['zip'])
);
$mysqli->query($query);
if ($mysqli->affected_rows == 1) {
$message['success'] = 'Neuer Benutzer (' . htmlspecialchars($_POST['f']['username']) . ') wurde angelegt, <a href="login.php">weiter zur Anmeldung</a>.';
header('Location: http://' . $_SERVER['HTTP_HOST'] . '/socialad/login.php');
} else {
}
$mysqli->close();
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Bootstrap -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<script type="text/javascript" type="js/bootstrap.min.js"></script>
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<![endif]-->
<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
</head>
<body>
<div class="bs-example">
<h1>Sign Up as a adsearcher</h1>
<form action="./register1.php" method="post" class="form-horizontal">
<div class="form-group">
<label class="control-label col-xs-3" for="username">Username:</label>
<div class="col-xs-5">
<input name="f[username]" type="text" class="form-control" id="inputusername" >
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-3" for="inputPassword">Password:</label>
<div class="col-xs-5">
<input name="f[password]" type="password" class="form-control" id="inputPassword" >
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-3" for="confirmPassword">Confirm Password:</label>
<div class="col-xs-5">
<input name="f[password_again]" type="password" class="form-control" id="confirmPassword" >
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-3" for="inputEmail">Email:</label>
<div class="col-xs-5">
<input name="f[email]" type="email" class="form-control" id="inputEmail" >
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-3" for="firstName">First Name:</label>
<div class="col-xs-5">
<input name="f[firstname]" type="text" class="form-control" id="firstName" >
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-3" for="lastName">Last Name:</label>
<div class="col-xs-5">
<input name="f[lastname]" type="text" class="form-control" id="lastName" >
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-3" for="phoneNumber">Phone:</label>
<div class="col-xs-5">
<input name="f[phone]" type="tel" class="form-control" id="phoneNumber" >
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-3" for="adress">Adress</label>
</div>
<div class="form-group">
<label class="control-label col-xs-3" for="town">Town:</label>
<div class="col-xs-5">
<input name="f[town]" type="text" class="form-control" id="town" >
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-3" for="street">Street:</label>
<div class="col-xs-5">
<input name="f[street]" type="text" class="form-control" id="street" >
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-3" for="ZipCode">Zip Code:</label>
<div class="col-xs-5">
<input name="f[zip]" type="text" class="form-control" id="ZipCode" >
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-3" for="country">Country:</label>
<div class="col-xs-3">
<select class="form-control">
<option value="0">Please choose...</option>
<option value="0">--------------------------</option>
<option value="221">United Kingdom</option>
<option value="222">United States</option>
</select>
</select>
</div>
</div>
<div class="form-group">
<div class="col-xs-offset-3 col-xs-9">
<label class="checkbox-inline">
<input name="tos" value="accepted" type="checkbox"> I agree to the <a href="#">Terms and Conditions</a>.
</label>
</div>
</div>
<br>
<div class="form-group">
<div class="col-xs-offset-3 col-xs-9">
<input name="submit" type="submit" value="Register" class="btn btn-primary" >
<input type="reset" class="btn btn-default" value="Reset">
</div>
</div>
</form>
</div>
</body>
</html>
最佳答案
好吧,很明显,您有10个%s
并且仅提供了9个参数........
09-25 19:01