Du bist nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: DeveloperTalk. Falls dies dein erster Besuch auf dieser Seite ist, lies bitte die Hilfe durch. Dort wird dir die Bedienung dieser Seite näher erläutert. Darüber hinaus solltest du dich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutze das Registrierungsformular, um dich zu registrieren oder informiere dich ausführlich über den Registrierungsvorgang. Falls du dich bereits zu einem früheren Zeitpunkt registriert hast, kannst du dich hier anmelden.

Simon

Profi

Beiträge: 725

Registrierungsdatum: 14.06.2011

Danksagungen: 210

  • Private Nachricht senden

21

04.10.2011, 20:46

Hopla :D da ist mir ein Fehler unterlaufen.

Habe es korrigiert ;)

Erik

Profi

Beiträge: 1 274

Registrierungsdatum: 22.06.2011

Wohnort: Deutschland ;)

Danksagungen: 307

  • Private Nachricht senden

22

04.10.2011, 22:31

kk :)
Beste Webite im Internet ( ͡° ͜ʖ ͡°)
xinra.de

JuKu

Profi

  • »JuKu« ist der Autor dieses Themas

Beiträge: 574

Registrierungsdatum: 29.09.2011

Danksagungen: 48

  • Private Nachricht senden

23

05.10.2011, 15:55

Gut, dann gebe ich mal ein Statement ab ;)

Also erstmal natürlich die Bereitsgenannten MySQL Längen.
Für Passwort reicht ein CHAR(32).
Für Username reichen VARCHAR(50) locker.
Und bei Gesperrt reicht wie gesagt ein: "TINYINT(1)"

Und natürlich noch die Bereitsgenannte Benutzung von public, protected und private.

Desweiteren empfehle ich die Englische Sprache für den Code und die Datenbank zu benutzen ;)

Dann bei der login Funktion würde ich die Ausgaben aus der Klasse herausnehmen.
Stattdessen würde ich false oder true zurückgeben.

PHP-Quelltext

1
$_SESSION['eingeloggt'] == TRUE

sowas kannst du einfach abkürzen mit:

PHP-Quelltext

1
$_SESSION['eingeloggt']

Mein Kommentar: Ja, aber aus "Anfängerfreundlichkeit" habe ich das so gemacht. ;)
und das:

PHP-Quelltext

1
empty($_SESSION['id']) != TRUE

mit

PHP-Quelltext

1
!empty($_SESSION['id'])


Desweiteren wird von den PHP Entwicklern abgeraten, die Session mit unset zulöschen.

Dies geht schöner mit:

PHP-Quelltext

1
2
session_destroy();
session_start();


Mein Kommentar: Ok, danke für den Tipp! Dieser Fehler war nicht absichtlich.

PHP-Quelltext

1
isLogin() == TRUE

Kannst du auch einfach

PHP-Quelltext

1
$this->isLogin(); 
schreiben.

Desweiteren empfehle ich dir, UTF-8 zu nutzen ;)

Kommen wir zur index.php

PHP-Quelltext

1
require("user.php");

Also erstmal sollte man bei require die Klammern weglassen, da es sich nicht um eine Funktion handelt.

Mein Kommentar: Bei PHP.net habe ich doch glaube mal gelesen, das man die aus Kompatibilitätsgründen mit dazu schreiben soll.
Ich habe es auch bisher so gemacht und alle Tutorials / Dokumente die ich kenne, machen es so.
?(

Desweiteren includierst du nur eine Klasse, so dass ein

PHP-Quelltext

1
require_once 'user.php';
hier schöner wäre ;)

Mein Kommentar: Da hast du voll und ganz Recht. :D

Dass einige Punkte möglicherweise aus Gründen der Anfängerfreundlichkeit sind, habe ich hier nicht berücksichtigt, denn ich weiß nicht genau, was nun davon Anfängerfreundlich gemeint und was unbeabsichtigt ist ;)

Ansonsten denke ich, dass es für Anfänger rellativ hilfreich sein könnte.

Simon;)

Edit:
@Niklas:
Es müsste

PHP-Quelltext

1
if(mysql_num_rows($query) >= 1)
heißen ;)
Wenn euch mein Beitrag weitergeholfen hat, drückt auf "Bedanken"!
Danke! :D

Erik

Profi

Beiträge: 1 274

Registrierungsdatum: 22.06.2011

Wohnort: Deutschland ;)

Danksagungen: 307

  • Private Nachricht senden

24

05.10.2011, 15:57

Du musst auch was schreiben :D
Beste Webite im Internet ( ͡° ͜ʖ ͡°)
xinra.de

JuKu

Profi

  • »JuKu« ist der Autor dieses Themas

Beiträge: 574

Registrierungsdatum: 29.09.2011

Danksagungen: 48

  • Private Nachricht senden

25

05.10.2011, 16:08

Habe ich doch. :D Das blau geschriebene. ;)
Wenn euch mein Beitrag weitergeholfen hat, drückt auf "Bedanken"!
Danke! :D

Simon

Profi

Beiträge: 725

Registrierungsdatum: 14.06.2011

Danksagungen: 210

  • Private Nachricht senden

26

05.10.2011, 16:20

Jop, er hat es in Blau in das Zitat geschrieben.
(Du kannst Zitate auch "außeinander pflücken" ;))

Und bzgl. der Klammersetzung:
Ich orientiere mich immer sehr am Pear Standard.
Hier der Punkt:
http://pear.php.net/manual/de/standards.including.php

Und falls es dich Interessiert:
http://pear.php.net/manual/de/standards.php

Hier noch die anderen Standards ;)

JuKu

Profi

  • »JuKu« ist der Autor dieses Themas

Beiträge: 574

Registrierungsdatum: 29.09.2011

Danksagungen: 48

  • Private Nachricht senden

27

05.10.2011, 17:59

Danke, ich schau es mir mal an!
Wenn euch mein Beitrag weitergeholfen hat, drückt auf "Bedanken"!
Danke! :D

Erik

Profi

Beiträge: 1 274

Registrierungsdatum: 22.06.2011

Wohnort: Deutschland ;)

Danksagungen: 307

  • Private Nachricht senden

28

05.10.2011, 20:27

Oh sorry, hab ich net gesehen, weils im Zitat war :D
Beste Webite im Internet ( ͡° ͜ʖ ͡°)
xinra.de

Tharian

Schüler

Beiträge: 100

Registrierungsdatum: 16.02.2012

Danksagungen: 13

  • Private Nachricht senden

29

12.07.2012, 10:56

Es wäre evtl auch ratsam, den Anfängern hier einmal zu sagen, dass dieses Loginskript nicht "sicher" ist. Über so genannte MySQL-injections kann man sich beispielsweise unberechtigt in einen Account einloggen.

vlt mag jemand noch anfügen, wie man so etwas verhindert; bspw. über htmlentities oder dergleichen.
Oder eine Kurzeinweisung in PDO mit bindParam()
Plattform für Browsergames von Hobbyentwicklern

Tharian.de

Erik

Profi

Beiträge: 1 274

Registrierungsdatum: 22.06.2011

Wohnort: Deutschland ;)

Danksagungen: 307

  • Private Nachricht senden

30

12.07.2012, 12:21

das kommt ja net von PDO sondern von prepared statements...
Beste Webite im Internet ( ͡° ͜ʖ ͡°)
xinra.de

Simon

Profi

Beiträge: 725

Registrierungsdatum: 14.06.2011

Danksagungen: 210

  • Private Nachricht senden

31

12.07.2012, 14:53

Es wäre evtl auch ratsam, den Anfängern hier einmal zu sagen, dass dieses Loginskript nicht "sicher" ist. Über so genannte MySQL-injections kann man sich beispielsweise unberechtigt in einen Account einloggen.

Wo genau siehst du eine SQL Injection? O.o
Ich habe hier keine gefunden gehabt auf die schnelle?

Tharian

Schüler

Beiträge: 100

Registrierungsdatum: 16.02.2012

Danksagungen: 13

  • Private Nachricht senden

32

12.07.2012, 15:30

Man kann auch keine sehen!
Aber über ein derartiges Skript ist es MÖGLICH!
Plattform für Browsergames von Hobbyentwicklern

Tharian.de

iweb-md

Anfänger

Beiträge: 44

Registrierungsdatum: 29.04.2012

Wohnort: Magdeburg

Beruf: Schüler

Danksagungen: 3

  • Private Nachricht senden

33

12.07.2012, 15:45

danke Leute!
http://webjoker.hostingsociety.com/index.html

bitte täglich einmal besuchen!

Erik

Profi

Beiträge: 1 274

Registrierungsdatum: 22.06.2011

Wohnort: Deutschland ;)

Danksagungen: 307

  • Private Nachricht senden

34

12.07.2012, 16:14

hmm hier wird aber mysql_real_escape_string benutzt O.o
Beste Webite im Internet ( ͡° ͜ʖ ͡°)
xinra.de

Tharian

Schüler

Beiträge: 100

Registrierungsdatum: 16.02.2012

Danksagungen: 13

  • Private Nachricht senden

35

12.07.2012, 16:26

Ohh... dann hab ich das übersehen.
Funktioniert das auch, wenn ich als Benutzer 523725 heißen möchte?
Plattform für Browsergames von Hobbyentwicklern

Tharian.de

Simon

Profi

Beiträge: 725

Registrierungsdatum: 14.06.2011

Danksagungen: 210

  • Private Nachricht senden

36

12.07.2012, 17:06

Ja auch dann funktioniert real_escape_string, solange er es im SQL Request weiterhin mit quotes verpackt.
Das funktioniert sogar, wenn du """"""" heißen möchtest :D

Tharian

Schüler

Beiträge: 100

Registrierungsdatum: 16.02.2012

Danksagungen: 13

  • Private Nachricht senden

37

12.07.2012, 17:22

Okay...
hab mich mit reals_escape nur oberflächlich beschäftigt, weil ich dann auf PDO umgestiegen bin. Dachte nur, dass das mit Zahlen nicht geht.
Plattform für Browsergames von Hobbyentwicklern

Tharian.de

Simon

Profi

Beiträge: 725

Registrierungsdatum: 14.06.2011

Danksagungen: 210

  • Private Nachricht senden

38

12.07.2012, 17:25

Ja, weil man normalerweise Zahlen nicht mit Anführungszeichen umschließt :D
Da aber davon ausgegangen wird, dass der Username ein String ist, funktioniert das hier 1a :D

Tharian

Schüler

Beiträge: 100

Registrierungsdatum: 16.02.2012

Danksagungen: 13

  • Private Nachricht senden

39

12.07.2012, 17:38

DAnn hab ich nix jesacht^^
Plattform für Browsergames von Hobbyentwicklern

Tharian.de

JuKu

Profi

  • »JuKu« ist der Autor dieses Themas

Beiträge: 574

Registrierungsdatum: 29.09.2011

Danksagungen: 48

  • Private Nachricht senden

40

13.07.2012, 17:32

Mann oh Mann... ist der Thread alt! :D
Also ist das Script jetzt sicher oder nicht? ;)
Wenn euch mein Beitrag weitergeholfen hat, drückt auf "Bedanken"!
Danke! :D