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>
 

basti1012

Erfahrenes Mitglied
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?
 

Sempervivum

Erfahrenes Mitglied
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.
 

Ericson

Grünschnabel
[
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
 

Neue Beiträge