"Geiterfunktion"?
bleicher
- php
Grüße,
bin wieder mal dabei verrückt zu werden-
was ein einfaches logScript sein sollte-
<?php
if($_SESSION['sts']!="1"){
echo "####################################";
$ip=mysql_real_escape_string(htmlentities($_SERVER['REMOTE_ADDR']));
$referrer=mysql_real_escape_string(htmlentities($_SERVER['HTTP_REFERER']));
$agent=mysql_real_escape_string(htmlentities($_SERVER['HTTP_USER_AGENT']));
$adress=mysql_real_escape_string(htmlentities($_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']));
$log="INSERT INTO `log` (`ip` ,`referrer` ,`agent` ,`adress`)VALUES ('$ip', '$referrer', '$agent', '$adress');";
sql($log);
}
$_SESSION['sts']="1";
?>
der wird in den index.php includet.
macht mich nun verrückt - es kommt nämlich bei JEDEM Aufruf der Site ein neues EIntrag in die Tabelle.
die Zeile mit "###" sollte der KOntrolle dienen - die wird nicht merhfach ausgegeben, anscheinend wird das if() richtig ausgwertet - $_SESSION[] wird auch richtig gesetzt (print_r zeigt den entpsrechendne ientrag)
nur kommt bei jedem Refresh eine weitere Zeile in die datenbank ;(
habe die sql() um entsprechendes echo erweitert - DIE wird auch NICHT ausgeführt (asugabe erfolgt wirklich nur einmalig)
bin ratlos.
Hoffe auf baldige Hilfe oder gute klapsmühlenempfehlung
MFG
bleicher
Ahoi,
wenn sts nicht 1, schreibs rein.
dann setze sts auf 1.
ist das sinnig oder hab ich was falsch verstanden?
wo aber beginnt die session? hast du dir zu dem zeitpunkt im if mal ein var_dump($_SESSION) ausgegeben um zu schauen, wie das $_SESSION["sts"]aussieht?
Dank und Gruß,
Grüße,
wenn sts nicht 1, schreibs rein.
dann setze sts auf 1.
so habs vorgesehen
ist das sinnig oder hab ich was falsch verstanden?
schon richtig - die idee ist, das besucherskript jeden besucher nahc möglichkeit einmal auswertet - um unnötigviele einträge zu vermeiden
wo aber beginnt die session? hast du dir zu dem zeitpunkt im if mal ein var_dump($_SESSION) ausgegeben um zu schauen, wie das $_SESSION["sts"]aussieht?
session wird in der index.php in der 2en Zeile initialisiert - habe es mit
print_r($_SESSION);
versucht - sts wird reingeschrieben - wie gesagt - dies IF wird tatsächlich nur EINMAL ausgeführt die zeile mit ######### wird nur einmal angezeigt ;(
MFG
bleicher
Hi,
versucht - sts wird reingeschrieben - wie gesagt - dies IF wird tatsächlich nur EINMAL ausgeführt die zeile mit ######### wird nur einmal angezeigt ;(
verstehe ich nicht, denn wenn die if ausgeführt wird "muss" ja ein neuer Eintrag entstehen.
Hans
Grüße,
| versucht - sts wird reingeschrieben - wie gesagt - dies IF wird tatsächlich nur EINMAL ausgeführt die zeile mit ######### wird nur einmal angezeigt ;(
|verstehe ich nicht, denn wenn die if ausgeführt wird "muss" ja ein neuer Eintrag entstehen.
genau - beim ersten aufruf sehe ich die zeile mit ##### und ein neuer eintrag wird erstellt
nur wird er auch nach JEDEM refresh erstellt - selbst wenn die ### NICHT angezeigt werden
ich verstehe nicht was die einträge erzeugt ;( echo im sql() wird auch ordnungsgemäß nur beim ersten aufruf angezeigt.
MFG
bleicher
Hi,
ich verstehe nicht was die einträge erzeugt ;( echo im sql() wird auch ordnungsgemäß nur beim ersten aufruf angezeigt.
also beim Refresh, keine Raute? Hmmm. Normalerweise würd ich auf ein Problem bei $_SESSION['sts']!="1" tippen und mal versuchen einen definitiven String zu nutzen also zb. $_SESSION['sts']!='abcde', aber da die Raute nicht kommt, ist das schleierhaft und nicht nachvollziehbar. Oder speichert deine sql() Funktion den Query nich irgendwo zwischen um ihn später einzusetzen?
Hans
Grüße,
hab den if um else ergänzt - der wird auch angezeigt - was aber gaanz lustig ist - unter firefox tritt es nicht auf ;(
gaanz genau betrachtet wird jedes mal Operas anfrage an
locahost/favicon.ico
geloggt - ?
MFG
bleicher
Hi,
hab den if um else ergänzt - der wird auch angezeigt - was aber gaanz lustig ist - unter firefox tritt es nicht auf ;(
gaanz genau betrachtet wird jedes mal Operas anfrage an
locahost/favicon.ico
geloggt - ?
Und, hast du ein Favicon angelegt?
Wenn nein, wie sieht dein ErrorDocument für 404 aus? Kann es sein, dass da noch mal die index.php - oder ein anderes die Log-Funktion aufrufendes Script - ausgeliefert wird?
MfG ChrisB
Grüße,
Und, hast du ein Favicon angelegt?
nein
Wenn nein, wie sieht dein ErrorDocument für 404 aus? Kann es sein, dass da noch mal die index.php - oder ein anderes die Log-Funktion aufrufendes Script - ausgeliefert wird?
danke - das wars^^
MFG
bleicher
Ahoi,
dann nimm mal den mysql-code aus dem if raus. was ist dann? und zudem zum if ein "else", was dir statt rauten nichtrauten ausgibt.
Dank und Gruß,
Moinmoin.
Ich nix Ahnung von PHP, würde aber wie folgt "rangehen":
1. Kein Echo - Schreibs Dir den Debug in ein Logfile mit absoluter Pfadangabe.
2. mysql.log aktivieren und mim SQL im Script rumspielen.
Testen und das Debug wie auch das mysql.log verfolgen.
Grüße
echo $begrüßung;
$ip=mysql_real_escape_string(htmlentities($_SERVER['REMOTE_ADDR']));
mysql_real_escape_string() ist ja schon mal gut. Aber was haben die HTML-Entitys in der Datenbank verloren? Die gehören ins HTML und nur dorthin. Außerdem reicht htmlspecialchars().
echo "$verabschiedung $name";