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 03-10-2007, 23:42
dark alex
 Newbie
Links : Onlinestatus : dark alex ist offline
Registriert seit: Oct 2007
Beiträge: 5
dark alex ist zur Zeit noch ein unbeschriebenes Blatt
Standard [PHP5] Funktion innerhalb des Skripts umbenennen?

Hi!

Ich bin Entwickler von dem Browsergame Krieg der Galaxien ( http://www.k-d-g.net ).

Ich stehe nun vor de rProblematik, das sich anfangs nicht genug an logs gedacht habe.

Mein Problem:
Ich möchte alle MySQL-Abfragen, ausser SELECTs loggen.
Dazu müsste ich nun aber die Funktion mysql_query umbenennen, und eine neue mysql_query schreiben, die loggt und dann abfrage startet.

Ich habe eine Funktion kdglog(), die mir einen gegebenen String in eine Datei schreibt.
Nun habe ich diesen Versuch erfolgreich durchgeführt (nach installation von dem PECL Paket apd):
PHP-Code:
rename_function('mysql_query''mysql_unlogged_query');
function 
mysql_logged_query($query$log=true$line=0$file=0) {
    if (
$file == 0$file $_GLOBALS['file'];
    
$split explode(' '$query2);
    if (
$split[0] == 'SELECT' || $split[0] == 'Select' || $split[0] == 'select') return mysql_unlogged_query($query);
    
kdglog($query.' || Line: '.$line$file'./logfiles/');
    
//meldung($query." @ ".$line." in ".$file);
    
return mysql_unlogged_query($query);
}
rename_function('mysql_logged_query''mysql_query'); 
Leider benennt rename_function() die funktion Systemweit um. Ich benötige diese veränderte Funktion jedoch nur innerhalb des skripts, wo sie umbenannt wird.
Das problem: Systemweite Änderungen beeinflussen ein ganzes Netzwerk an Internetseiten (GlobalGamePort)

Welche Möglichkeiten habe ich dies umzusetzen, oder ist das nicht möglich?
Mit Zitat antworten
  #2 (permalink)  
Alt 03-10-2007, 23:50
tontechniker
 PHP Senior
Links : Onlinestatus : tontechniker ist offline
Registriert seit: Jul 2005
Beiträge: 1.972
tontechniker ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Völlig falscher Ansatz - du solltest direkt auf den MySQL-Server gehen.
__________________
Die Regeln | rtfm | register_globals | strings | SQL-Injections | []
Mit Zitat antworten
  #3 (permalink)  
Alt 03-10-2007, 23:54
dark alex
 Newbie
Links : Onlinestatus : dark alex ist offline
Registriert seit: Oct 2007
Beiträge: 5
dark alex ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Erstmal danke für die antwort.

Problem: Auf dem server sind die datenbanekn, deren zugriffe geloggt werden sollen etwa 3% von allen.

Auf dem server gehen pro sekunde 10-50 MySQL-Abfragen durch.
Das macht ne riiiiesen log ;-)

deshalb will cih auch nur die loggen, die wichtig sind. und das sin die abfragen, ausser select, die von KDG selbst erzeugt werden.
Mit Zitat antworten
  #4 (permalink)  
Alt 04-10-2007, 00:11
Slava
 PHP Senior
Links : Onlinestatus : Slava ist offline
Registriert seit: Nov 2002
Ort: Köln->Karlsruhe
Beiträge: 1.589
Slava befindet sich auf einem aufstrebenden Ast
Standard

Hi Alex!
ich habe kein Antwort auf deine Frage, da ich mit umbenennen von Funktionen keine Erfahrung habe.
Ist es nicht einfacher 3% von deinen mysql_query Aufrufe einfach durch eine neue funktion zu ersetzen, die zbs mysql_logged_query heist?
__________________
Slava
bituniverse.com
Mit Zitat antworten
  #5 (permalink)  
Alt 04-10-2007, 00:17
dark alex
 Newbie
Links : Onlinestatus : dark alex ist offline
Registriert seit: Oct 2007
Beiträge: 5
dark alex ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Da haste was falsch verstanden:

dieser Mysqlserver hat ca 130 DBs. davon gehören 3% zu KDG.
KDDG macht pro sekunde ca 5 Querys an die DBs. Der rest ist unwichtig für uns.
Von diesen 5 Querys müssten auch nur 2-3 geloggt werden.

Also sagen wir ca 90% der Logfile wäre Datenmüll.

Deshalb meine individuelle log.

Problem: Das ändern des funktionsaufruf würde ca eine woche lang dauern.

~ 400 Dateien zu durchwühlen
Mit Zitat antworten
  #6 (permalink)  
Alt 04-10-2007, 00:31
3DMax
 PHP Senior
Links : Onlinestatus : 3DMax ist offline
Registriert seit: Jan 2004
Beiträge: 1.916
3DMax ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von dark alex
Problem: Das ändern des funktionsaufruf würde ca eine woche lang dauern.

~ 400 Dateien zu durchwühlen
suchen und ersetzen in dateien dauert nicht so lange.
Mit Zitat antworten
  #7 (permalink)  
Alt 04-10-2007, 00:41
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Selbst das Schreiben eines Scripts dafür dauert nur 2 Minuten.
PHP-Code:
<?php
foreach(glob('/srv/www/htdocs/kdg/*.php') as $filename) {
    
$file file_get_contents($filename);
    
$file preg_replace('/mysql_query\s*\(/U''mysql_logged_query('$file);
    
file_put_contents($filename$file);
}
?>
EDIT:
Forum frißt Backslashes!
Mit Zitat antworten
  #8 (permalink)  
Alt 05-10-2007, 06:44
dark alex
 Newbie
Links : Onlinestatus : dark alex ist offline
Registriert seit: Oct 2007
Beiträge: 5
dark alex ist zur Zeit noch ein unbeschriebenes Blatt
Cool

Jo! Danke!

Ich hab mir was gebastelt, was mir in jede datei oben rein die funktionsdatei includiert.

Somit kann ich dann alles ersetzen.
Mit Zitat antworten
  #9 (permalink)  
Alt 05-10-2007, 09:19
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Ich sag mal, scheiß Applicationsdesign. Hättet ihr eine Klasse für die Kapselung der Funktionen verwendet, wäre das jetzt wahrscheinlich lange kein so großes Problem! Aber das ist ein anderes Thema
Mit Zitat antworten
  #10 (permalink)  
Alt 05-10-2007, 12:24
dark alex
 Newbie
Links : Onlinestatus : dark alex ist offline
Registriert seit: Oct 2007
Beiträge: 5
dark alex ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Naja an die Problematik hat anfangs keiner gedacht.

Leider.
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

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

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:08 Uhr.