[PHP MySQL] IP logger Problem

06/25/2013 20:19 SuperOwnBash#1
dieses script funktioniert einwandfrei bis ich die Variable für aktuelle zeit und datum mit schicken will


mein datum/zeit Feld hat den Typ Date was muss ich nur ändern?
habe es oft umgeschrieben aber nichts hilft :<


PHP Code:
<?php
    $db_locator 
"host";  
    
$db_username "username"
    
$db_password "password"
    
$db_name "DB_name";  

    
$browser htmlspecialchars($_SERVER['HTTP_USER_AGENT']);
    
$country htmlspecialchars($_SERVER['HTTP_ACCEPT_LANGUAGE']);
    
$referer htmlspecialchars($_SERVER['HTTP_REFERER']);

    
$ip_block_minutes 1440//die vorhande IP wird nach 24h nochmal eingetragen, falls sie trotzdem vorhanden ist, 1440minuten=24h

    
@mysql_connect($db_locator$db_username$db_password); 
    @
mysql_select_db($db_name); 
    
$timestamp date(U); 
    
$dar date("Y-m-d"time());  
    
$ipsen $_SERVER['REMOTE_ADDR'];

    
$cs "xxxx";
    
$ipcut substr($ipsen0, -4) . $cs;  // die letzten 4 zeichen werden durch xxxx von der IP ersetzt

    
$max_timestamp_ip date(U) - ($ip_block_minutes 60);  //ein einfaches system um die IP nicht doppelt einzutragen


    
$check mysql_query("SELECT * FROM visitor_counter WHERE ip='$ipcut' AND timestamp >= '$max_timestamp_ip'");  //diese werden auf existenz geprüft

    
if(mysql_num_rows($check) != 1) { //existiert es?
    
mysql_query("INSERT INTO visitor_counter SET datum/zeit='$dar', ip='$ipcut', timestamp='$timestamp', browser='$browser', country='$country', referer='$referer'"); //und genau hier kakt es ab wegen dem datum und zeit wird dann gar nichts eingetragen, normal funkt es ohne '$dar'

    
}
    
$counter mysql_num_rows(mysql_query("SELECT timestamp FROM visitor_counter")); 
    
?>
06/25/2013 21:21 tolio#2
nimm interger als typ und speicher die zeit als unixtimestamp
06/25/2013 21:40 SuperOwnBash#3
Quote:
Originally Posted by tolio View Post
nimm interger als typ und speicher die zeit als unixtimestamp
danke, hab das grad versucht: also type auf integer und den Timestamp mitschicken, jedoch passiert da nichts
sry wenn ich keine eindeutige fehlerbeschreibung liefern kann

kann es sein das ich den timestamp davor schon formatieren muss?
06/26/2013 11:48 Muddy Waters#4
Was genau möchtest du denn an einer reinen Zahl (im Gegensatz zu deren String Repräsentation) formatieren?

Du solltest zunächst mal sicherstellen, dass die Spalten in deiner Tabelle in der DB passend formatiert sind, d.h. INT(10) und UNSIGNED. Danach solltest du dich darum kümmern, dass du dort auch nur reine Zahlenwerte einträgst und dass jene in deinen Queries nicht in Hochkommata stehen, wie in deinem Codebeispiel (das sind schließlich keine Strings).