Sing-Up System Probleme

Ericson

Grünschnabel
Hi, ich hatte Probleme beim erstellen eines Login-Systems und meine Frage wäre warum die Variable $pbo nicht erkannt wird obwohl ich mit der Datenbank verbunden bin? Danke für jede Hilfe!

DBC.php:

<?php

$host = 'localhost';
$db = 'test';
$user = 'root';
$pass = '';


$dsn = "mysql:host=$host;dbname=$db";

/* $options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];*/
try {
$pdo = new PDO($dsn, $user, $pass);
echo "succcessss";
} catch (\PDOException $e) {
throw new \PDOException($e->getMessage(), (int)$e->getCode());
}
if ($pdo = new PDO($dsn, $user, $pass)) {
echo "connected";

/* $_POST['email'] = $email1;
$_POST['password'] = $password1 ;
$_POST['firstname'] = $firstname1;
$_POST['lastname'] = $lastname1 ;
$_POST['username'] = $username1;
$_POST['telefone'] = $telefone1 ;
$_POST['id'] = $id;
*/

$email = $_POST['email'] ;
$password =$_POST['password'] ;
$firstname =$_POST['firstname'] ;
$lastname=$_POST['lastname'] ;
$username =$_POST['username'] ;
$telefone = $_POST['telefone'] ;
$id = $_POST['id'];
echo "$email";
echo "$dsn";
$pdo = new PDO($dsn, $user, $pass);
$stmt = $pbo->prepare('INSERT INTO users(email, password, firstname, lastname, username, telefone, id) VALUES:)email, :password ,:firstname, :lastname, :username, :telefone, :id)');
$stmt->execute(['email' => $email, 'password' => $password, 'firstname' => $firstname, 'lastname' => $lastname, 'username' => $username, 'telefone' => $telefone, 'id' => $id]);


if ($stmt->execute()) {
$stmt = $pdo->query('SELECT username FROM users WHERE id = $id');
while ($row = $stmt->fetch())
{
echo $row['username'] . "\n";
}
}
else {echo "connectionfaild";}


}




test.php:

<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form method="POST" action="DBC.php">
<input type="text" name="email">
<input type="text" name="password">
<input type="text" name="firstname">
<input type="text" name="lastname">
<input type="text" name="username">
<input type="number" name="telefone">
<input type="number" name="id">
<input type="submit" name="1">
</form>
</body>
</html>
 
warum benutzt du denn 3 mal die Zeile
Code:
$pdo = new PDO($dsn, $user, $pass);
die beiden zeilen könnte man auch eine raus machen
Code:
$dsn = "mysql:host=$host;dbname=$db";
$pdo = new PDO($dsn, $user, $pass);

Was für Fehlermeldungen bekommst du den?
 
Scheint mir ein simpler Schreibfehler zu sein:

$pdo = new PDO($dsn, $user, $pass);
$stmt = $pbo->prepare('INSERT INTO users(email, password, firstname, lastname, username, telefone, id) VALUES

Erst $pdo und dann $pbo

Was Basti schreibt, trifft natürlich auch zu.
 
[
Ih habs gemachr
QUOTE="basti1012, post: 2117761, member: 282115"]
warum benutzt du denn 3 mal die Zeile
Code:
$pdo = new PDO($dsn, $user, $pass);
die beiden zeilen könnte man auch eine raus machen
Habs
Code:
$dsn = "mysql:host=$host;dbname=$db";
$pdo = new PDO($dsn, $user, $pass);

Was für Fehlermeldungen bekommst du den?n
[/QUOTE]
Scheint mir ein simpler Schreibfehler zu sein:

$pdo = new PDO($dsn, $user, $pass);
$stmt = $pbo->prepare('INSERT INTO users(email, password, firstname, lastname, username, telefone, id) VALUES

Erst $pdo und dann $pbo

Was Basti schreibt, trifft natürlich auch zu.
Ich habe diesen Fehler behoben und die while Abfrage entfernt klappt perfekt.
Werde in Zukunft auf sowas besser acht geben. Ich finds Cool, das ihr euch die Zeit nimmt. Danke
 
Zurück