这个问题在这里已经有答案了:
我可以在php中混合mysql api吗(4个答案)
引用-这个错误在php中是什么意思(36个答案)
两年前关门了。
很抱歉。但我在这里坐了几个小时,想找出错误。
我在macos上使用mamp,没有其他web服务器或mariadb服务器在运行。php很好(7.2.8版)。mysql端口:8889。apache端口:8888。
所以我试着设置一个简单的php注册表,但是我不能真正访问我的数据库。user、passwort、host和db都很好,但我真的找不到我的错误。请给我一个提示或解决办法两个头总比一个头好。。。
所以这里是代码(主要是德语,但它不应该阻止你。)太多了!
更新
mysql日志:justpaste.it php日志:justpaste.it
<?php
$user = 'bwdb';
$password = 'some password';
$db = 'bwdb';
$host = 'localhost';
$port = 8889;
$conn = new mysqli($host, $user, $password, $db);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Registrierung</title>
</head>
<body>
<?php
session_start();
$showFormular = true;
if(isset($_GET['register'])) {
$error = false;
$email = $_POST['email'];
$passwort = $_POST['passwort'];
$passwort2 = $_POST['passwort2'];
if(!filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo 'Bitte eine gültige E-Mail-Adresse eingeben<br>';
$error = true;
}
if(strlen($passwort) == 0) {
echo 'Bitte ein Passwort angeben<br>';
$error = true;
}
if($passwort != $passwort2) {
echo 'Die Passwörter müssen übereinstimmen<br>';
$error = true;
}
if(!$error) {
$statement = $conn->prepare("SELECT * FROM users WHERE email = :email");
$result = $statement->execute(array('email' => $email));
$user = $statement->fetch();
if($user !== false) {
echo 'Diese E-Mail-Adresse ist bereits vergeben<br>';
$error = true;
}
}
if(!$error) {
$passwort_hash = password_hash($passwort, PASSWORD_DEFAULT);
$statement = $conn->prepare("INSERT INTO users (email, passwort) VALUES (:email, :passwort)");
$result = $statement->execute(array('email' => $email, 'passwort' => $passwort_hash));
if($result) {
echo 'Du wurdest erfolgreich registriert. <a href="login.php">Zum Login</a>';
$showFormular = false;
} else {
echo 'Beim Abspeichern ist leider ein Fehler aufgetreten<br>';
}
}
}
if($showFormular) {
?>
<form action="" method="post">
E-Mail:<br>
<input type="email" size="40" maxlength="250" name="email"><br><br>
Dein Passwort:<br>
<input type="password" size="40" maxlength="250" name="passwort"><br>
Passwort wiederholen:<br>
<input type="password" size="40" maxlength="250" name="passwort2"><br><br>
<input type="submit" value="Send">
</form>
<?php
}
?>
</body>
</html>
暂无答案!
目前还没有任何答案,快来回答吧!