Wie ich die logins speichern?
Hi,
ich bin am überlegen alle Logins zu speichern. Wie mache ich das ?
Bin PHP-Anfänger, deshalb ratlos :-))
Mein Gedanke war:
Code:
CREATE TABLE IF NOT EXISTS `vms_logins` (
`nickname` varchar(255) NOT NULL,
`klammid` int(7) NOT NULL,
`ip` varchar(15) NOT NULL,
`datum` varchar(10) NOT NULL,
`zeit` varchar(8) NOT NULL,
`browser` varchar(255) NOT NULL,
KEY `nickname` (`nickname`),
KEY `klammid` (`klammid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
dann wollte ich es mit folgendem code reinspeichern:
(in Textdatei klappt das mit den "Strings")
Code:
db_query("INSERT INTO ".$db_prefix."_logins (nickname,klammid,ip,datum,zeit,browser) VALUES (".$_POST['nickname'].", ".$login_check['uid'].", ".$ip.", ".date("d.m.Y", time()).", ".date("H:i:s", time()).", '".$useragent."')");
wenn ich es so mache bleibt die Tabelle leer.
Vermutlich klar, aber warum nur ?
Hiiiiilllffeee :-)
AW: Wie kann ich das machen ?
Zitat:
Zitat von
Zockervogel
Hi,
ich bin am überlegen alle Logins zu speichern. Wie mache ich das ?
Bin PHP-Anfänger, deshalb ratlos :-))
Mein Gedanke war:
Code:
CREATE TABLE IF NOT EXISTS `vms_logins` (
`nickname` varchar(255) NOT NULL,
`klammid` int(7) NOT NULL,
`ip` varchar(15) NOT NULL,
`datum` varchar(10) NOT NULL,
`zeit` varchar(8) NOT NULL,
`browser` varchar(255) NOT NULL,
KEY `nickname` (`nickname`),
KEY `klammid` (`klammid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
dann wollte ich es mit folgendem code reinspeichern:
(in Textdatei klappt das mit den "Strings")
Code:
db_query("INSERT INTO ".$db_prefix."_logins (nickname,klammid,ip,datum,zeit,browser) VALUES (".$_POST['nickname'].", ".$login_check['uid'].", ".$ip.", ".date("d.m.Y", time()).", ".date("H:i:s", time()).", '".$useragent."')");
wenn ich es so mache bleibt die Tabelle leer.
Vermutlich klar, aber warum nur ?
Hiiiiilllffeee :-)
So wirds was
PHP-Code:
db_query("INSERT INTO ".$db_prefix."_logins (nickname,klammid,ip,datum,zeit,browser) VALUES ('".$_POST['nickname']."', '".$login_check['uid']."', '".$ip."', '".time()."', '".time()."', '".$useragent."');
datum und zeit getrennt in der DB zu hinterlegen bringt da nicht viel Sinn da die funktion time() Datum und Zeit enthält beim Auslesen der DB kann man dann date("d.m.Y, H:i:s", $vms_logins['zeit']) abrufen.
AW: Wie ich die logins speichern?
Womit wir die nächste Möglichkeit hätten die Seite zu übernehmen...
Code:
CREATE TABLE IF NOT EXISTS `vms_logins` (
`nickname` varchar(255) NOT NULL,
`klammid` int(1) NOT NULL,
`ip` varchar(15) NOT NULL,
`datum` datetime NOT NULL,
`browser` varchar(255) NOT NULL,
KEY `nickname` (`nickname`),
KEY `klammid` (`klammid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
PHP-Code:
db_query("INSERT INTO ".$db_prefix."_logins (nickname,klammid,ip,datum,browser) VALUES ('".mysql_real_escape_string($_POST['nickname'])."', '".abs($login_check['uid'])."', '".ip2long($ip)."', NOW() , '".base64_encode($useragent)."'");
Beim Auslesen: musst du bei der ausgabe des browsers dann den browser agend decoden:
PHP-Code:
$var['browser'] = base64_decode($var['browser']);
AW: Wie ich die logins speichern?
Zitat:
Zitat von
Lokutos
Womit wir die nächste Möglichkeit hätten die Seite zu übernehmen...
Code:
CREATE TABLE IF NOT EXISTS `vms_logins` (
`nickname` varchar(255) NOT NULL,
`klammid` int(1) NOT NULL,
`ip` varchar(15) NOT NULL,
`datum` datetime NOT NULL,
`browser` varchar(255) NOT NULL,
KEY `nickname` (`nickname`),
KEY `klammid` (`klammid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
PHP-Code:
db_query("INSERT INTO ".$db_prefix."_logins (nickname,klammid,ip,datum,browser) VALUES ('".mysql_real_escape_string($_POST['nickname'])."', '".abs($login_check['uid'])."', '".ip2long($ip)."', NOW() , '".base64_encode($useragent)."'");
Beim Auslesen: musst du bei der ausgabe des browsers dann den browser agend decoden:
PHP-Code:
$var['browser'] = base64_decode($var['browser']);
Da gebe ich Dir Recht allerdings würde ich prüfen ob der User in der DB vms_logins steht und gegebenfalls überschreiben oder per cronlauf auf eine bestimmte Anzahl der einträge begrenzen (zeitlich zb. max.7 Tage) weil es unmengen an Daten in der DB gespeichert werden.
wenn man möchte kann man den cron so machen das:
-> Login eintrag in die DB
-> Cron prüft was Älter als zb. 7Tage her ist
-> Speicherung in user.Monat.txt Datei
AW: Wie ich die logins speichern?
Zitat:
Zitat von
Lokutos
Womit wir die nächste Möglichkeit hätten die Seite zu übernehmen...
warum kann man damit die Seite übernehmen ?
Was ist das für eine Schwachstelle ?
AW: Wie ich die logins speichern?
@Lokutos
Leider funktioniert das mit Deinem Code auch nicht.
Irgendwo werde ich wohl einen entscheidenen Denkfehler haben ?
AW: Wie ich die logins speichern?
Zitat:
Zitat von
Zockervogel
@Lokutos
Leider funktioniert das mit Deinem Code auch nicht.
Irgendwo werde ich wohl einen entscheidenen Denkfehler haben ?
ne nur n kleinen php fehler...
db_query("INSERT INTO ".$db_prefix."_logins (nickname,klammid,ip,datum,browser) VALUES ('".mysql_real_escape_string($_POST['nickname'])."', '".abs($login_check['uid'])."', '".ip2long($ip)."', NOW() , '".base64_encode($useragent)."')");
AW: Wie ich die logins speichern?
juhuuuhhh,
jetzt wird "was" geschrieben. Zwar noch nicht ganz das was ich möchte, aber das wird nun ne Kleinigkeit.
bleibt jetzt nur noch meine Frage, warum kann man damit eine Seite übernehmen ?
AW: Wie ich die logins speichern?
da wurden Post daten ohne überprüfung an die datenbank gesendet...
somit könnte ich ohne probleme die klammdaten auslesen oder das adminpasswort ändern/auslesen ...
http://de.wikipedia.org/wiki/SQL-Injection