-
18.01.12 17:21 #46
Der Fehler besagt, dass die Variable $db gar nicht definiert wurde und somit ein Benutzen als Objekt unmöglich ist!
Ich habe nicht deinen Code / des Tutorials zur Hand. Kannst du vielleicht einen Link geben oder ich suche kurz unter den Tutorials?
//Edit Leider ist beim Video-Tutorial der Code nicht als Text mitgeliefert. Also am einfachsten wäre es, wenn du einfach deinen Code posten würdest.mfg ComFreek
Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
[PHP] Überprüfen, ob Website erreichbar • Sicherheit in PHP-Codes schaffen • Google Chrome-Extension für tutorials.de • json_compress()
-
18.01.12 17:26 #47
- Registriert seit
- Jul 2005
- Beiträge
- 7
Die registration_logic:
Danke schon mal für die Mühe!PHP-Code:<?php
if(!isset($_POST['submit'])) return;
// Übeprüfen ob Daten vollständig eingegeben sind
if (!isset($_POST['username'])||!isset($_POST['pass'])||!isset($_POST['email'])||!isset($_POST['fullname'])||
empty($_POST['username'])||empty($_POST['pass'])||empty($_POST['email'])||empty($_POST['fullname'])) {
$error_msg = "Das Formular wurde nicht vollständig ausgefüllt.";
return;
}
// Passwörter überprüfen
if($_POST['pass'] [0] !== $_POST['pass'] [1])
{
$error_msg = "Die Passwörter stimmen nicht überein.";
return;
}
// Hash-Code generieren und Benutzername prüfen
$_POST['pass'] = hash('sha256', $_POST['pass'] [0].$salt);
if(strlen ($_POST['username']) > 50)
{
$error_msg = "Der Benutzername ist zu lang.";
return;
}
// Leerzeichen entfernen
$_POST['username'] = trim($_POST['username']);
if(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL))
{
$error_msg = "Die E-Mail Adresse ist ungültig";
return;
}
$sql = 'INSERT INTO
users
(full_name, users_name, password, email)
VALUES
(?, ?, ?, ?)';
$stmt = $db->prepare($sql);
$stmt->bind_param('ssss', $_POST['fullname'], $_POST['username'], $_POST['pass'], $_POST['email']);
if(!$stmt->execute())
{
$error_msg = "Es ist ein Fehler aufgetreten";
return;
}
$stmt->close();
$success_msg = "Das Benutzerkonto wurde erfolgreich angelegt";
$error_msg = "Das Benutzerkonto wurde erfolgreich angelegt";
?>
-
18.01.12 17:30 #48
Du erstellst auch nirgends im Code ein neues PDO-Objekt.
Beispiel für MySQL:
PHP-Code:$db = new PDO("mysql:host=localhost;dbname=MyLoginDB", 'user', 'password');
mfg ComFreek
Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
[PHP] Überprüfen, ob Website erreichbar • Sicherheit in PHP-Codes schaffen • Google Chrome-Extension für tutorials.de • json_compress()
-
18.01.12 17:37 #49
- Registriert seit
- Jul 2005
- Beiträge
- 7
Hallo,
dachte es reicht die connect.php die ich eingebunden hab wie in dem Video-Tutorial:
Muss ich also so wie du geschrieben hast $db definieren?PHP-Code:<?php
$mysqlhost="localhost";
$mysqluser="x";
$mysqlpasswd="x";
$mysqldbname="x";
$mysqltable="users";
$mysqlpwd="password";
$mysqlname="users_name";
$link = @mysql_pconnect($mysqlhost, $mysqluser, $mysqlpasswd);
if ($link == FALSE) {
echo "<p><b>Keine Verbindung zur Datenbank.";
echo "Bitte versuchen Sie es später noch einmal.</b></p>\n";
exit();
}
mysql_select_db($mysqldbname);
$salt = "njegrngjen45344rgujiernguier756jeruige3453ruigeriugn";
?>
Das kam im Video leider nicht vor
-
18.01.12 17:42 #50
Wieso nutzt der Ersteller des Videotutorials (m0pad?) auf ein mal eine persistene MySQL-Verbindung und im vorherigen Skript das PDO-Layer?
Naja, du kannst ja diesen Code vorerst auskommentieren und meinen oben geposteten Code anhängen.mfg ComFreek
Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
[PHP] Überprüfen, ob Website erreichbar • Sicherheit in PHP-Codes schaffen • Google Chrome-Extension für tutorials.de • json_compress()
-
Die Verbindungsherstellung ist die PHP-MySQL-Extension, der Rest PDO.
Kann nicht gehen.
Wenn das im Video auch so ist...
Die Zeile von Comfreek macht im Grunde das Gleiche.
Zugangsdaten anpassen, einfügen.Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
-
18.01.12 17:49 #52
- Registriert seit
- Jul 2005
- Beiträge
- 7
Hab ich die Zeile nun vor $stmt = $db->prepare($sql); gesetzt, nun erhalte ich die Fehlermeldung:
Fatal error: Call to undefined method PDOStatement::bind_param() in C:\xampp\htdocs\registration_logic.php on line 47
Och man
-
18.01.12 18:09 #53
Die Funktion heißt bindParam.
Ich glaube, ich sollte mir mal das Tutorial komplett anschauen...mfg ComFreek
Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
[PHP] Überprüfen, ob Website erreichbar • Sicherheit in PHP-Codes schaffen • Google Chrome-Extension für tutorials.de • json_compress()
-
Ja das heißt, dass die Variable in der eigentlich das Datenbankobjekt instanziiert sein sollte nicht definiert ist.
Also irgendwo fehlt $db = new Mysqli(...); oder irgendein Script wird nicht richtig eingebunden.
-
18.01.12 18:32 #55
- Registriert seit
- Jul 2005
- Beiträge
- 7
Hm okay, irgendwie habe ich das in deinem Video-Tutorial leider nicht gefunden/übersehen.
Gibts auf deinem Blog das Tutorial nochmal in Schriftform?
EDIT: Hab`s schon
Hab nun BindParam korrigiert, aber gleich der nächste Fehler
Warning: PDOStatement::bindParam() expects parameter 3 to be long, string given in C:\xampp\htdocs\registration_logic.php on line 47
Warning: PDOStatement::execute() [pdostatement.execute]: SQLSTATE[HY093]: Invalid parameter number: no parameters were bound in C:\xampp\htdocs\registration_logic.php on line 49Geändert von VincentVega20 (18.01.12 um 18:37 Uhr)
-
18.01.12 18:36 #56
Sorry, es gibt auch bei MySQLi eine bind_param-Funktion! (Ich bin davon ausgegangen, dass es PDO wäre.)
Das erklärt dann auch die Config-Datei.
Versuche mal folgenden Code:
PHP-Code:
<?php
$mysqlhost="localhost";
$mysqluser="x";
$mysqlpasswd="x";
$mysqldbname="x";
$db = new MySQLi($mysqlhost, $mysqluser, $mysqlpasswd, $mysqldbname);
$salt = "njegrngjen45344rgujiernguier756jeruige3453ruigeriugn";
?>mfg ComFreek
Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
[PHP] Überprüfen, ob Website erreichbar • Sicherheit in PHP-Codes schaffen • Google Chrome-Extension für tutorials.de • json_compress()
-
18.01.12 19:10 #57
- Registriert seit
- Jul 2005
- Beiträge
- 7
Nichts funktioniert, hab den Code jetzt komplett verworfen - da ist wohl nichts mehr zu retten.
Hab nun die 3 Files von http://staticfloat.com/2011/03/01/lo...enutzerkonten/.
Leider bringt er mir selbst da den Fehler:
Fatal error: Call to a member function bind_param() on a non-object in C:\xampp\htdocs\registration_logic.php on line 50
-
-
- poste die Zeile wo das $stmt Objekt erstellt wird ($stmt = $objDB->prepare(...))!
- ist dein Aufruf von bind_param falsch...
Der Aufbau sollte, mMn, so sein:
GrußPHP-Code:$objDB = new mysqli( /* */ );
$objStmt = $objDB->prepare( 'INSERT INTO table VALUES (?, ?, ?, ?, ?)' );
$objStmt->bind_param( 'sssi', $username, $pass, $email, $ip );
$username = $objDB->real_escape_string( $_POST['username'] );
$pass = $objDB->real_escape_string( $_POST['pass'] );
$email = $objDB->real_escape_string( $_POST['email'] );
$ip = $objDB->real_escape_string( $user_ip );
$objStmt->execute();
-
Ähnliche Themen
-
Loginsystem: Problem mit Tutorial!
Von UnoDosTres im Forum PHPAntworten: 16Letzter Beitrag: 14.09.05, 16:32 -
Frage: Tutorial Loginsystem -> Cannot modify header information
Von TimExtreme im Forum PHPAntworten: 7Letzter Beitrag: 29.06.05, 20:38 -
Frage zu Tutorial "LoginSystem" > Erstellung?
Von Ingo41 im Forum Relationale DatenbanksystemeAntworten: 4Letzter Beitrag: 20.12.04, 17:59 -
Frage zum Tutorial Loginsystem
Von Tucker im Forum PHPAntworten: 4Letzter Beitrag: 21.08.04, 12:41



7Danke


Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren