Hallo,
Ich bin auf der suche nach einer PHP Dokument womit ich die Ip,s abspeichern kann die meine Seite aufgerufen haben.
Hallo,
Ich bin auf der suche nach einer PHP Dokument womit ich die Ip,s abspeichern kann die meine Seite aufgerufen haben.
insofern du cloudflare nutzt kannst du $_SERVER['HTTP_CONNECTING_IP'] nehmen und ansonsten $_SERVER['REMOTE_ADDR'] oder so ähnlich und entsprechend in ne textdatei schreiben was aber nicht zu empfehlen ist. andernfalls ist natürlich db eintragung möglich was schon besser währe. da kannst du zwischen mysql_* und pdo, mysqli und odbc (eig ja auch pdo) wählen.
DB Tabelle
CREATE TABLE `visitors` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`ip` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;
Code
<?php
function getConnection() {
try {
return new PDO('mysql:host=DBHOST;dbname=DBNAME', 'DBUSER', 'DBPASS');
} catch(PDOException $e) {
die($e->getMessage());
exit;
}
}
$query = getConnection()->prepare('INSERT INTO visitors (ip) VALUES (:ip)');
$query->execute(['ip' => $_SERVER['REMOTE_ADDR']]);
?>
Alles anzeigen
DB Tabelle
CodeCREATE TABLE `visitors` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `ip` varchar(50) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;
Code
PHP Alles anzeigen<?php function getConnection() { try { return new PDO('mysql:host=DBHOST;dbname=DBNAME', 'DBUSER', 'DBPASS'); } catch(PDOException $e) { die($e->getMessage()); exit; } } $query = getConnection()->prepare('INSERT INTO visitors (ip) VALUES (:ip)'); $query->execute(['ip' => $_SERVER['REMOTE_ADDR']]); ?>
die Webseite ist dann nicht mehr sichbar.
Serverfehler
500
Ich weis nicht wo hier der Fehler liegt, also an meinem Script nicht den ich hab es selber getestet.
EDIT:
Ich denke mal du hast nicht PHP 5.6, darum hab ich es nochmal für PHP 5.3 gemacht.
Ich weis nicht wo hier der Fehler liegt, also an meinem Script nicht den ich hab es selber getestet.
EDIT:
Ich denke mal du hast nicht PHP 5.6, darum hab ich es nochmal für PHP 5.3 gemacht.
Super Danke geht
apathy ich würde einfach ne variable anstatt ne funktion verwenden aber ok so gehts auch. Zum fehler #500: in der php.ini das pdo modul aktivieren und dann sollte es gehen wenn nicht dann sende mal nen screen
apathy ich würde einfach ne variable anstatt ne funktion verwenden aber ok so gehts auch. Zum fehler #500: in der php.ini das pdo modul aktivieren und dann sollte es gehen wenn nicht dann sende mal nen screen
[Pdo]
; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off"
; http://php.net/pdo-odbc.connection-pooling
;pdo_odbc.connection_pooling=strict
;pdo_odbc.db2_instance_name
extention aktivieren durch auskommentieren des jeweiligen moduls
Super Danke geht
Würde es auch gehen wenn die IP nur einmal abgespeichert wird.
Und nicht jedes mal wenn ich die Seite Aufrufe erneuert.
Weil sonst ist die Tabelle mit der selben IP voll.
Würde es auch gehen wenn die IP nur einmal abgespeichert wird.
Und nicht jedes mal wenn ich die Seite Aufrufe erneuert.Weil sonst ist die Tabelle mit der selben IP voll.
<?php
mysql_connect('DBHOST', 'DBUSER', 'DBPASS');
mysql_select_db('DBNAME');
$query = mysql_query('SELECT ip FROM visitors');
if(mysql_num_rows($query) > 0) {
while($r = mysql_fetch_object($query)) {
if($r->ip !== $_SERVER['REMOTE_ADDR']) {
mysql_query('INSERT INTO visitors (ip) VALUES (\'' . $_SERVER['REMOTE_ADDR'] . '\')');
}
}
} else {
mysql_query('INSERT INTO visitors (ip) VALUES (\'' . $_SERVER['REMOTE_ADDR'] . '\')');
}
?>
Alles anzeigen
PHP Alles anzeigen<?php mysql_connect('DBHOST', 'DBUSER', 'DBPASS'); mysql_select_db('DBNAME'); $query = mysql_query('SELECT ip FROM visitors'); if(mysql_num_rows($query) > 0) { while($r = mysql_fetch_object($query)) { if($r->ip !== $_SERVER['REMOTE_ADDR']) { mysql_query('INSERT INTO visitors (ip) VALUES (\'' . $_SERVER['REMOTE_ADDR'] . '\')'); } } } else { mysql_query('INSERT INTO visitors (ip) VALUES (\'' . $_SERVER['REMOTE_ADDR'] . '\')'); } ?>
Hat es schlimmer gemacht xD
Jetzt ladet die Page länger so lange bis die IP abgespeichert wird aber es hat jetzt ungefähr 20mal die selbe IP abgespeichert in der Zeit bis es zu ende geladen hat xD
Und würdest du vlt BITTE noch dazu machen das ich die Ips auch auf der Seite sehe nicht nur auf der DB
<?php
mysql_connect('DBHOST', 'DBUSER', 'DBPASS');
mysql_select_db('DBNAME');
$ips = array();
$query = mysql_query('SELECT ip FROM visitors');
while($r = mysql_fetch_object($query)) {
array_push($ips, $r->ip);
}
if(!in_array($_SERVER['REMOTE_ADDR'], $ips)) {
mysql_query('INSERT INTO visitors (ip) VALUES (\'' . $_SERVER['REMOTE_ADDR'] . '\')');
}
$query = mysql_query('SELECT ip FROM visitors');
$result = null;
while($r = mysql_fetch_object($query)) {
$result .= $r->ip . '<br>';
}
?>
<h3>Vorhandene IPs</h3>
<?php echo $result; ?>
Alles anzeigen
PHP Alles anzeigen<?php mysql_connect('DBHOST', 'DBUSER', 'DBPASS'); mysql_select_db('DBNAME'); $ips = array(); $query = mysql_query('SELECT ip FROM visitors'); while($r = mysql_fetch_object($query)) { array_push($ips, $r->ip); } if(!in_array($_SERVER['REMOTE_ADDR'], $ips)) { mysql_query('INSERT INTO visitors (ip) VALUES (\'' . $_SERVER['REMOTE_ADDR'] . '\')'); } $query = mysql_query('SELECT ip FROM visitors'); $result = null; while($r = mysql_fetch_object($query)) { $result .= $r->ip . '<br>'; } ?> <h3>Vorhandene IPs</h3> <?php echo $result; ?>
Was bist du für ein Mensch Haha
Vielen Danke alles klappt Super
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!