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 05-04-2005, 13:30
oeno
 Newbie
Links : Onlinestatus : oeno ist offline
Registriert seit: Jan 2004
Ort: Germany
Beiträge: 37
oeno ist zur Zeit noch ein unbeschriebenes Blatt
oeno eine Nachricht über AIM schicken
Standard index.php und dbase_add_record

Hallo Forumianer,

ich hocke an ner Kopfnuss und komm nicht weiter.

Folgendes Problem:
Ich habe als Startseite der Domain ne index.php. in dieser werden
verschiedene Daten des Aufrufs in ner dBase Datenbank gelogt:

User-IP, Hostname des Zugangsproviders, wenn Cookie gesetzt auch
der Name des Clients etc..

Es wird auch ne Flash Animation eingebunden und abgespielt und der
Stylesheet aufgerufen.

Öffne ich die Seite mit IE oder Firefox läuft alles wie gewollt, kein Thema.
Bei Netscape Navigator (Version 6) sieht die Sache anders aus. Die Seite bricht
an der Stelle, wo die Daten per 'dbase_add_record' gespeichert werden
ab. Ohne Fehlermeldung ohne alles. Ich ahb da schon Stunden dran
gebastelt, ohne Erfolg.
Meine Lösung war nun, den User_Agent abzufragen und bei
Netscape keine Speicherung vorzunehmen, dann läufts
seltsamerweise, ist aber nicht so die Musterlösung, da ich
die Daten ja für meine Statistik brauche.

Hier der Codeabschnitt, der den Fehler verursacht:
PHP-Code:
// Datenbank öffnen
 
$DBFPfad="conections.dbf";
 
$Agent=$_SERVER['HTTP_USER_AGENT'];
 
$Adr=$_SERVER['REMOTE_ADDR'];
 
$Hostgethostbyaddr($Adr);
 
$Port$_SERVER['REMOTE_PORT'];
 
$sidsession_id();
 
$Datum=date("d.m.Y");
 
$datum=explode(".",$Datum);
 if (
$_SESSION['login']!=){
    if (
is_readable($DBFPfad)) { // Abfrage ob Datenbank angelegt ist
       
if (!isset($_SESSION["reg"])){
       
$_SESSION["reg"]=1;
       
$Base dbase_open ($DBFPfad,2);
       
$num = (dbase_numrecords ($Base)) + 1;
       if (!
stristr($Agent,'Netscape')){
          
dbase_add_record ($Base, array($num,$Adr,
          
$Host,$Port,$sid,$datum[0].'.'.$datum[1].'.'.$datum[2],
          
$datum[2] ,$datum[1] ,$datum[0] ,date("l"),
          
date("H:i:s"),date("H") ,$Agent." ~ ".$name2));
       }
       
dbase_close ($Base);
       }
    }
    else {
         
$_SESSION["reg"]=1;
         
$def = array(array("ID","C",15),array("IP","C",16),
          array(
"Client DNS","C",60),   
           array(
"Port","C",8),array("Session","C",25),
             array(
"Date","C",11),array("Year","C",5), 
             array(
"Month","C",3),array("Day","C",3),
             array(
"WeekDay","C",8),array("Time","C",11),
             array(
"Hour","C",3),array("Client","C",100));
         if (!
dbase_create($DBFPfad,$def)){
            print 
"Error!";
         }
         else {
            echo 
"Datenbank angelegt<BR>";
         }
         
$Base dbase_open ($DBFPfad,2);
         
$num = (dbase_numrecords ($Base)) + 1;
         echo 
$num."</H6></TR>"// Anzahl Datensätze in Head anzeigen
         
dbase_add_record ($Base, array($num,$Adr,
                     
$Host,$Port,$sid,
                     
date("d.m.Y") ,date("Y") ,
                     
date("m") ,date("d") ,
                     
date("l") ,date("H:i:s"),
                     
date("H") ,$Agent.' ~ '.$name2));
         
dbase_close ($Base);
    }

Die nachfolgenden Seitendaten kommen, wenn ich die
Netscapesperre rausnehme in dem Browser nicht an (¿?)
warum auch immer. der Quelltext hört an der dbase_add_record einfach auf.

Habt Ihr ne Idee wie das kommen mag?

Geändert von oeno (05-04-2005 um 13:34 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 05-04-2005, 13:34
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard Re: index.php und dbase_add_record

ich würde mal annehmen, dass da beim netscape irgendwas im user agent steht, welches deine query ungültig macht.

werden die eingefügten daten überhaupt irgendwo escaped/unschädlich gemacht?
kontrollausgabe UA in so einem falle, wo es "ohne fehler" abbricht?
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #3 (permalink)  
Alt 05-04-2005, 13:36
oeno
 Newbie
Links : Onlinestatus : oeno ist offline
Registriert seit: Jan 2004
Ort: Germany
Beiträge: 37
oeno ist zur Zeit noch ein unbeschriebenes Blatt
oeno eine Nachricht über AIM schicken
Standard

Danke für die schnelle Antwort.

Ich hab schon per echo die erzeigten Daten anzeigen lassen,
hatte keine Auswirkungen auf den Programmablauf.

EDIT:
die Ausgabe des Agents ergibt:
Mozilla/5.0 (Windows; U; Windows NT 5.1; de-DE; rv:0.9.4.1) Gecko/20020508 Netscape6/6.2.3


Geändert von oeno (05-04-2005 um 13:39 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 05-04-2005, 15:13
Schnoop
 PHP Senior
Links : Onlinestatus : Schnoop ist offline
Registriert seit: Apr 2003
Beiträge: 1.049
Schnoop ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ist es möglich das dein DB Feld wo du die Browserkennung einträgst zu kurz ist?
Mit Zitat antworten
  #5 (permalink)  
Alt 05-04-2005, 19:07
oeno
 Newbie
Links : Onlinestatus : oeno ist offline
Registriert seit: Jan 2004
Ort: Germany
Beiträge: 37
oeno ist zur Zeit noch ein unbeschriebenes Blatt
oeno eine Nachricht über AIM schicken
Standard

Das wär natürlich möglich. Als Größenangebe hab ich 60 Zeichen vorgegeben ... mal prüfen:

123456789012345678901234567890123456789012345678901234567890
Mozilla/5.0 (Windows; U; Windows NT 5.1; de-DE; rv:0.9.4.1) Gecko/20020508 Netscape6/6.2.3

ok, der String ist zu lang. Das Verwirrende ist dann aber, das da schon
ebenso lange Strings rein kamen, die dann einfach nach den 60 Zeichen
abgeschnitten wurden. Warum hier nicht? Und warum keine Fehlermeldung?
Mit Zitat antworten
  #6 (permalink)  
Alt 05-04-2005, 19:09
Schnoop
 PHP Senior
Links : Onlinestatus : Schnoop ist offline
Registriert seit: Apr 2003
Beiträge: 1.049
Schnoop ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich weiss ja nicht wie die anderen Browserkennungen aussschauen, aber vielleicht killt der die Query auf Grund des ; oder des /
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

Projektmanagement Damals und Heute
Projektmanagement Damals und HeuteWerfen Sie einen Blick auf das, was sich verändert hat, und entdecken Sie, wo die Zukunft dieses Gebietes hinsteuert.

18.01.2021 | Berni

Arbeitsmanagement-Tools
Arbeitsmanagement-ToolsWarum jedes Team Arbeitsmanagement-Tools benötigt. Man schätzt, dass 25% eines durchschnittlichen Mitarbeiter-Tages durch ineffiziente Arbeit vergeudet werden.

11.12.2020 | Berni


 

Aktuelle PHP Scripte

Formmailer Bootstrap 4

Mit dem Formmailer kann man sich eMails über seine Seite zukommen lassen.

08.07.2021 arne-home | Kategorie: PHP/ Formular
Fehlerseite Bootstrap 4

Bei Aufruf einer nicht existierenden Seite, teilen Sie Besuchern mit einer eigenen Fehlerseite mit, dass die gewünschte Seite nicht gefunden wurde. Die eigene Fehlerseite sollte dasselbe Design wie die Website haben. Zudem sollte ein Link zur Startseite a

04.07.2021 arne-home | Kategorie: PHP/ Counter
Upload Bootstrap 4

Mit dem PHP - Uploadscript kann man schnell und einfach Bilder und Dateien auf den Webserver hochladen.

04.07.2021 arne-home | Kategorie: PHP/ File
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:38 Uhr.