WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 21.06.2001, 11:08   #1
renew
Inventar
 
Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552


Standard kleines PHP Prob...

Ich versuche(hab ich eigentlich schon gemacht) einen counter für meine Homepage zu schreiben. Der funktioniert auch schon, nur will ich jetzt auch noch die IP Adresse überprüfen, damit nicht immer weitergezählt wird, wenn jemand auf aktualisieren klickt.....

So weit so gut, nur häng ich beim schreiben der IP Adresse in die MySQL Datenbank. Vielleciht weiß ja jemand was ich falsch mache....

Das is jetzt nur der Teil mit der IP Adresse, weil wie gesagt der Rest funktioniert ja schon.
PHP-Code:
$link mysql_pconnect($host$user$passwd);

$query_ip "use $db";
if ( !
mysql_query($query_ip$link) )
  die(
"Die Datenbank $db existiert nicht.");

// Ermittlung der IP des letzten Users
$query_ip "select ip from count";
$res_ip mysql_query($query_ip$link);
if ( !
$res_ip )
  die(
"Die Anfrage '$query_ip' konnte nicht ausgeführt werden.");

while ( 
$data_ip mysql_fetch_array($res_ip) ) {
  list(
$key_ip$value_ip) = each($data_ip);
}

$ip_old $value_ip;

$ip getenv("HTTP_X_FORWARDED_FOR");

$result strcasecmp($ip,$ip_old);

if(
$result != 0)
{
  
$udate2 "update count set ip = $ip";
  if (!
$udate2_ok)
      die(
"Das Updaten der Datenbank IP schlug fehl");

Ich bekomm immer als "Fehlermeldung": Das Updaten der Datenbank IP schlug fehl. Hat also nicht wirklich funktioniert.

Das Feld ip in der Tabelle count ist vom Typ varchar(100). Wenn ich statt $ip eine IP Adresse händisch schreibe kann er in die DB schreiben. Auch wenn ich irgendeinen anderen Text eintrage funktioniert das schreiben in die Datenbank. Nur die Variabel $ip lässt sich nicht eintragen.

Hab auch schon überprüft ob $ip eh ein String ist, aber das ist einer.

Wissts ihr woran es noch liegen könnt?
renew ist offline   Mit Zitat antworten
Alt 21.06.2001, 13:33   #2
Sesa_Mina
Schwarzfußfrettchen
 
Registriert seit: 28.01.2001
Beiträge: 2.071


Standard

Probier mal

$udate2 = "update count set ip = ".$ip;

statt

$udate2 = "update count set ip = $ip";

vielleicht liegts ja daran
____________________________________
Wann die kan Almdudler ham... \"Es gibt nur einen Weg zur Lunge, und der muss geteert werden, damit der Krebs nicht stolpert!\"
http://www.dream.at/gizmo/bunny.gif
Image is © 2001 Merle
Sterndalsäg.. ähh... jäger
Sesa_Mina ist offline   Mit Zitat antworten
Alt 21.06.2001, 17:02   #3
renew
Inventar
 
Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552


Standard

Na an dem liegts leider auch nicht.

Das komische is: bei meinem Gästebuch(hab nicht ich geschrieben) funktioniert genau das, nur halt statt update, wird ein neuer Datensatz hinzugefügt.(insert into......)
Und dort wird die IP Adresse auch in ein Feld mit dem Typ Varchar(100) eingetragen.
renew ist offline   Mit Zitat antworten
Alt 21.06.2001, 17:32   #4
renew
Inventar
 
Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552


Standard

Hab den Fehler gefunden(endlich..)

Man darf nicht $udate2 = "update count set ip = $ip"; schreiben, sondern man muss anscheinend der DB zeigen, dass da ein String daher kommt und das ganze so schreiben:
$udate2 = "update count set ip = '$ip"';

Und das hat mich den ganzen Vormittag, und jetzt auch noch eine halbe Stunde beschäftigt...
Na wurscht, jetzt funktionierts endlich.
renew ist offline   Mit Zitat antworten
Alt 21.06.2001, 17:53   #5
Philipp
verXENt
 
Benutzerbild von Philipp
 
Registriert seit: 01.08.1999
Beiträge: 7.084

Mein Computer

Standard

Das
PHP-Code:
mysql_pconnect($host$user$passwd
ist keine so gute idee bei virtuellen Accounts und kann möglicherweise zur deaktivierung des Accounts führen. Ich würde es durch
PHP-Code:
mysql_connect($host$user$passwd
ersetzten und die Datenbank am Ende des Scripts möglichst schließen.

Eine persistente Verbindung zur MySQL Datenbank sollte man nur auf dedizierten Servern öffnen
Philipp ist offline   Mit Zitat antworten
Alt 21.06.2001, 18:54   #6
renew
Inventar
 
Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552


Standard

@phil
Die Abfrage die ich da geschrieben hab, war nicht vollständig. Das heißt, das ich die verbindung normalerweise eh zum Server wieder trenne, am Ende des Scripts.

Das was ich gepostet hab, ist nur ein Teil meines Copunter Scripts.

aber danke für den Tipp, mit dem connect - pconnect.
renew ist offline   Mit Zitat antworten
Antwort


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

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.

Gehe zu


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


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag