php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 30-03-2005, 00:09
nobody08
 Newbie
Links : Onlinestatus : nobody08 ist offline
Registriert seit: Nov 2004
Ort: Schweiz :D
Beiträge: 14
nobody08 ist zur Zeit noch ein unbeschriebenes Blatt
Standard User-log-script

Hallo zusammen,

ich melde mich wiedereinmal... weil ich ein recht langes script geschrieben habe... Es ging eine Zeit lang, da habe ich es für mich schon fast abgeschlossen, dann wollte ich noch eine Funktion mehr einbauen und es ging nicht mehr...

Könnt ihr da einmal "kurz" reinschauen, falls ihr grad lust & Zeit habt..?

Es ist wohl irgendeine Abfrage nich richtig, denn mysql_fetch_object() verursacht einen Fehler... Aber ich bin langsam am verzweifeln, weil ich den Fehler nicht finde!

Die URL:
http://web136m.dynamic-kunden.ch/nob.../userloger.php

Die Fehler die es meldet:
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /home/www/web136/html/nobody08/TESTS/userloger.php on line 41

Das Script:
PHP-Code:
<?php
/* NOCH ZU TUN:
- evt. parameter zur function anstatt [include('db_connect.php');] (z. 13)
*/

/*
 * Userloger by nobody08
 * Mar 05
 */
function userstats($db_table='userstats',$max_time='50'){
    
// connecting :)
    
include('db_connect.php');
    
$create_table=mysql_query("CREATE TABLE IF NOT EXISTS `$db_table`
 (`id` int(5) unsigned NOT NULL AUTO_INCREMENT,
 `page` varchar(50) NOT NULL, 
`ip` varchar(20) NOT NULL, `provider` varchar(100) NOT NULL, 
`timestamp` varchar(200) NOT NULL, `counter` int(3) NOT NULL 
default '0', PRIMARY KEY (`id`) , KEY `id` (`id`) ) TYPE = MYISAM ;"
);
    
// abfrage
    
$query="SELECT * FROM '$db_table'";
    
$result=mysql_query($query);
    
// settings
    
$new_ip=$_SERVER['REMOTE_ADDR'];
    
$new_provider=gethostbyaddr($_SERVER['REMOTE_ADDR']);
    
$new_timestamp=time();
    
$new_page=$_SERVER['PHP_SELF'];

    
// alte löschen
    
$max_length=time()-60*60*24*$max_time// = time() von vor $max_time Tagen
    
echo '$max_time >> '.$max_time;
    echo 
'<br>$max_length >> '.$max_length;
    echo 
'<br>'.date("[d.m.Y H:i]",$max_length);
    
$DELETE="DELETE FROM $db_table WHERE timestamp<'$max_length' AND page='$new_page'";
    
$delete=mysql_query($DELETE);
    
mysql_error();
    
    
// Alle-lösch-funktion (NUR VON DIESER SEITE)
    
$_GET['reset'];
    global 
$reset;
    if(
$reset){
        
$DELETE="DELETE FROM $db_table WHERE page = '$new_page'";
        
$delete=mysql_query($DELETE) or die("<br>Fehler bei der 'Alles-löschen-Funktion'");
    }
    
    
// user hinzufügen
    
while($row=mysql_fetch_object($result)){
        if(
$row->ip==$new_ip){
            
$new_timestamp=$row->timestamp.' '.$new_timestamp;
            
$new_counter=$row->counter;
            
$new_counter=$new_counter+1;
            
$query="UPDATE $db_table SET counter='$new_counter', timestamp='$new_timestamp' WHERE ip='$new_ip'";
            
$vorhanden='1';
        }
    }
    if(!
$vorhanden){$query="INSERT INTO $db_table (page,ip,provider,timestamp) VALUES 
('$new_page','$new_ip','$new_provider','$new_timestamp')"
;}
    
$enter=mysql_query($query);
    
mysql_error();
    
    
    
// abfrage aktualisieren
    
$query="SELECT * FROM '$db_table'";
    
$result=mysql_query($query);
    
// vorhandene auslesen & ausgeben
    
echo "<body><br><b>Einträge</b><br>\n
<table style=\"padding: 20px 2px 20px 2px; border: 1px solid #000000;\">\n<tr>\n 
<td>Datum/Zeit</td>\n <td>IP</td>\n <td>Provider</td>\n  <td>h.o.</td>\n</tr>"
;
    while(
$row=mysql_fetch_object($result)){
        
$page=$row->page;
        
$counter=$row->counter;
        
$timestamp=$row->timestamp;
        if(
$page==$new_page){ // Dass es nur Zugriffe der aktuellen Seite anzeigt
            
if($counter!=='0'){
                
$tmp_timestamp=explode(' ',$timestamp);
                for(
$i='0';$i<=$counter;$i++){
                    
$timestamp=date("[d.m.Y H:i]",$tmp_timestamp[$i]);
                    if(
$i=='0'){echo "\n<tr style=\"height: 50px; border: 1px dashed black;\">\n
  <td><div style=\"overflow: auto; width: 150px; height: 50px; border: #222222;\">$timestamp"
;}
                    else {echo 
'<br>'.$timestamp;}
                }
                
$counter=$counter++;
                echo 
"</div></td>\n  <td>$row->ip</td>\n  <td>$row->provider</td>\n  <td>$counter</td>\n</tr>";
            }
            else {
                
$timestamp=date("[d.m.Y H:i]",$row->timestamp);
                echo 
"\n<tr style=\" height: 50px; border: 1px dashed black;\">\n
  <td>$timestamp</td>\n  <td>$row->ip</td>\n  <td>$row->provider</td>\n</tr>"
;
            }
        }
    }
    echo 
"\n</table>\n";
    echo 
'<br><a href="'.$_SERVER['PHP_SELF'].'?reset=1">Alle Daten dieser Seite löschen!</a></body>';
// ENDE function userstats

// AUSFÜHRUNG
userstats();
?>
Gruss & Danke im voraus für JEDE Hilfe...
nobody08

Ach ja: In der Datei db_connect.php sollte kein Fehler sein, ich verbinde da mit dem mySQL-Server und habe hinten "die()" angehängt, wenn es dort einen Fehler hätte, ginge es also gar nicht weiter...
__________________
Nobody's perfect...!!
Mit Zitat antworten
  #2 (permalink)  
Alt 30-03-2005, 00:16
Wurzel
 Master
Links : Onlinestatus : Wurzel ist offline
Registriert seit: Jul 2002
Ort: double-u-upper-valley
Beiträge: 7.477
Wurzel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

PHP-Code:
$query="SELECT * FROM '$db_table'"
was sollen die hochkommata dort?
__________________
Kissolino.com
Mit Zitat antworten
  #3 (permalink)  
Alt 30-03-2005, 09:24
loci
 Junior Member
Links : Onlinestatus : loci ist offline
Registriert seit: Feb 2003
Ort: Saarland
Beiträge: 82
loci ist zur Zeit noch ein unbeschriebenes Blatt
Standard

selbst backticks sind bei einer sinnvollen benennung von tabellen und spalten (ohne keywords) unsinnig.
Mit Zitat antworten
  #4 (permalink)  
Alt 30-03-2005, 11:45
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

statt hier unmengen von unumgebrochenem Quelltext zu posten, würde es wohl mehr sinn machen, mal vernünftiges Debugging zu betreiben! mysql_error hilft! (Siehe auch Forumregeln!)
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #5 (permalink)  
Alt 30-03-2005, 13:41
nobody08
 Newbie
Links : Onlinestatus : nobody08 ist offline
Registriert seit: Nov 2004
Ort: Schweiz :D
Beiträge: 14
nobody08 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

also, danke euch, es war das mit den hochkommatas...
Die hatte ich erst dort reingetan, als es schon dauernd einen Fehler meldete, da dachte ich es liege an dem. Aber komischerweise geht es jetzt ohne die, aber ich mag mich nicht erinnern, dass ich seither etwas gemacht habe... (seit ich die gesetzt habe)

und @TobiaZ
Ich hatte sicher über 5 min. lang die Zeilen umgebrochen und fragte mich am schluss wirklich, warum nicht einfach die Vorschau so breit sein kann wie es dann nacher rauskommt, und warum es nicht einfach scrollbars gibt beim codefenster... bei langen Codes kann man ja das fenster unten auch begrenzen, dann ist das Problem auch weg, dass man immer zuerst runter scrollen muss um die vertikal-scrollbar zu bewegen...

Und das mit dem mysql_error() hatte nicht viel mehr geliefert (sogar gar nichts, hab ich in erinnerung) und das error_report(E_ALL) oder wie das heisst hatte ich auch schon ausprobiert (sogar als ich noch nicht daran dachte, hier zu posten kam ich hierher um diese Zeile zu hohlen, weil ich sie nicht mehr wusste ^^) aber das hat nur gemeldet, dass POST-checkbox-namen(/variablen) nicht definiert sind, also brachte es mir auch nix...
__________________
Nobody's perfect...!!
Mit Zitat antworten
  #6 (permalink)  
Alt 30-03-2005, 18:16
p_rehm
 Junior Member
Links : Onlinestatus : p_rehm ist offline
Registriert seit: Jul 2004
Beiträge: 220
p_rehm ist zur Zeit noch ein unbeschriebenes Blatt
p_rehm eine Nachricht über AIM schicken p_rehm eine Nachricht über Yahoo! schicken
Standard

mysql_error hätte sicher eine ausgabe gebracht wenn du es richtig verwendet hättest.
Mit Zitat antworten
  #7 (permalink)  
Alt 30-03-2005, 21:57
nobody08
 Newbie
Links : Onlinestatus : nobody08 ist offline
Registriert seit: Nov 2004
Ort: Schweiz :D
Beiträge: 14
nobody08 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich hatte es zuerst direkt nach der Fehlerlinie, also nach der while-schleife, wo ich auch das fetch_object drin hatte, das den Fehler gab weil $result glaub nicht gültig war. Weil aber ja die while-schlaufe gar nie durchlaufen wurde, weil die Bedingung false war kam es gar nie zum mysql_error.
ABER ich hatte dann auch $row=mysql_fetch_object($result) in eine eigene Zeile getan und danach mysql_error gehabt, aber dann kam auch nix genaueres.

UND, wenn ich mich richtig erinnere habe ich nach jeder query mysql_error gesetzt, also auch dort wo $result definiert wurde.

Gruss

Edit: ne stimmt nich ganz... habe nachgeschaut und überall ausser bei der Problem-Zeile ein mysql_error() gefunden...
__________________
Nobody's perfect...!!

Geändert von nobody08 (30-03-2005 um 21:59 Uhr)
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni


 

Aktuelle PHP Scripte

HeidiSQL - kostenloses MySQL front-end Editor für Windows ansehen HeidiSQL - kostenloses MySQL front-end Editor für Windows

HeidiSQL - ist ein Windows-Editor für die bekannt open Source Datenbank mySQL

10.12.2018 Berni | Kategorie: MYSQL/ Management
piwik Open-Source Webanalyse-Software ansehen piwik Open-Source Webanalyse-Software

piwik ist eine gute Alternative zu Google Analytics. Viele Features und ein modernes Erscheinungsbild mit aussagefähigen Statistiken in Echtzeit

10.12.2018 phpler | Kategorie: PHP/ Besucherzaehler
jQuery Mobile ansehen jQuery Mobile

Touch-Optimized Web Framework für Smartphones & Tablets

09.12.2018 phpler | Kategorie: AJAX/ Framework
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 11:20 Uhr.