Demo

Probiere ClanSphere aus und teste daran herum. Demo


Antworten: 19
Seite [1]
Rouven89


Going for pro




Beiträge: 539
# Thema - 17.02.2012 um 23:00 Uhr
hey bin gerade dabei mich in den aufbau von sql reinzufuchsen - habe allerdings noch ein paar verständnisfragen - ich will die ip--adresse von einem benutzer einlesen und speichern und dann wieder ausgeben aber wieso funktioniert das so nicht - irgendwo ist ein fehler beim ein oder auslesen aber ich weiß nicht wo bzw warum (habe schon im wiki geguckt) wäre schön wenn einer mir das erklären könnte

 
1.
2.
3.
4.
5.
6.
1. / 2. / ... 
 
$ip 
getenv ("REMOTE_ADDR");
cs_sql_insert(__FILE__'zensiert', array('zensiert_ip'),array($ip));
$zensiert_data cs_sql_select(__FILE__'zensiert''zensiert_ip'0,0);
echo 
$zensiert_data;

ausgabe ist nur "Array"

achja - tabelle (cs_zensiert) und spalte (zensiert_ip - primärschlüssel) ist erstellt unter phpmyadmin


------------------
http://sc-wiesens.de/

Der Sport Club "13 Eichen" Wiesens

Zuletzt editiert von Rouven89 am 17.02.2012 um 23:16 Uhr (1x Editiert)
Inaktiv
Tress13


Highlander




Herkunft: Lüdenscheid
Beiträge: 3048
# Antwort: 1 - 17.02.2012 um 23:22 Uhr
Kenne mich zwar nicht mit dem ganzen sql-Zeugs aus,
aber die IP darf/wird doch nicht gespeichert.
Hängt das vlt damit irgendwie zusammen ?


------------------


www.iv-gaming.de | www.iv-artwork.de

Inaktiv
|
Rouven89
Thread-Ersteller


Going for pro




Beiträge: 539
# Antwort: 2 - 17.02.2012 um 23:28 Uhr
hey habe mein problem gerade schon selbst gelöst - ich glaube das klappt jetzt alles soweit mit dem speichern und auslesen nur die ausgabe ist leider nur die erste ziffer der ip adresse

 
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
1. / 2. / ... 
 
$ip 
getenv ("REMOTE_ADDR");
cs_sql_insert(__FILE__'zensiert', array('zensiert_ip'),array($ip));
$zensiert_data cs_sql_select(__FILE__'zensiert''zensiert_ip'0);
//$count = count($zensiert_data);
//for($run=0; $run<$count; $run++) {
//$print = cs_secure($zensiert_data[$run]['zensiert_ip']);
$print cs_secure($zensiert_data['zensiert_ip']);
echo 
$print;

//}

das ausgeklammerte nicht beachten (da will ich später die ganzen werte mit auslesen)

könnte es daran liegen das ich die spalte mit INT initialisiert habe und ne ip adresse als string gespeichert werden sollte?


ich denk mal schon das die gespeichert werden darf - will das erstmal nur testen - später will ich das so machen wenn ne neue anmerkung erstellt wird und der user noch nicht auf der page war die einen anderen hintergrund hat und sobald die ip-adresse gespeichert ist und er nochmal auf die hp kommt soll die anmerkung-box ganz normal wieder angezeigt werden.


------------------
http://sc-wiesens.de/

Der Sport Club "13 Eichen" Wiesens

Zuletzt editiert von Rouven89 am 17.02.2012 um 23:31 Uhr (1x Editiert)
Inaktiv
|
Miraculix


Going for pro




Herkunft: Füssen
Beiträge: 429
# Antwort: 3 - 17.02.2012 um 23:33 Uhr
könnte es daran liegen das ich die spalte mit INT initialisiert habe und ne ip adresse als string gespeichert werden sollte?
Ja. Kommen ja Punkte in der Adresse vor

edit: IPs speichern bringt insofern nix da sie bei dem grössten Teil täglich wechselt


------------------
greeetz Miraculix

Band-Page -> www.muddleheaded-scum.de

Zuletzt editiert von Miraculix am 17.02.2012 um 23:35 Uhr (1x Editiert)
Inaktiv
|
Koffein


Going for pro




Beiträge: 536
# Antwort: 4 - 17.02.2012 um 23:35 Uhr
Hallo Rouven
du kannst zur Abfrage der IP die interne Methode von CS nutzen
 
1.
1. / 2. / ... 
 $ip cs_getip()

Die IP solltest du am besten per varchar speichern.

@Tress
Das Counter-Modul von Clansphere speichert die IPs doch auch ab, wenn du die IPs auf deiner Homepage veröffentlichst musst du jedoch die letzten zwei Stellen zensieren. Oder wie war das?


Inaktiv
|
Rouven89
Thread-Ersteller


Going for pro




Beiträge: 539
# Antwort: 5 - 17.02.2012 um 23:44 Uhr
ah okay top - ausgabe stimmt jetzt soweit speichetr auch alles 1a ab ;D siehst du zufällig wieso meine for-schleife nicht funktioniert? so gibt er mir nämlich nichts aus

 
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
1. / 2. / ... 
 

$ip 
cs_getip();
cs_sql_insert(__FILE__'zensiert', array('zensiert_ip'),array($ip));
$zensiert_data cs_sql_select(__FILE__'zensiert''zensiert_ip'0);
$count count($zensiert_data);
for(
$run=0$run<$count$run++) {
$print cs_secure($zensiert_data[$run]['zensiert_ip']);
echo 
$print;
}



@miraculix - ja habe ich mir auch schon gedacht - aber will es erstmal damit testen damit ich mit der materie bisschenvertrauter werde, sprich einlesen,auslesen - werte verarbeiten usw
und zum INT hätte ich mir eig auch selbst denken können ;D


------------------
http://sc-wiesens.de/

Der Sport Club "13 Eichen" Wiesens

Zuletzt editiert von Rouven89 am 18.02.2012 um 09:36 Uhr (8x Editiert)
Inaktiv
|
Koffein


Going for pro




Beiträge: 536
# Antwort: 6 - 18.02.2012 um 00:32 Uhr
Bitteschön
 
1.
2.
3.
4.
5.
6.
7.
8.
1. / 2. / ... 
<?php 
$ip 
cs_getip();
cs_sql_insert(__FILE__'zensiert', array('zensiert_ip'),array($ip));
$zensiert_data cs_sql_select(__FILE__,'zensiert','zensiert_ip','','',0,0);
for(
$run 0$run<count($zensiert_data); $run++) {
$print cs_secure($zensiert_data[$run]['test_ip']);
echo 
$print .'   '
}


Das in Zeile sieben hab ich nur eingefügt damit man Lücken zwischen den einzelnen IPs hat.
Kann dir nur diese Seite hier empfehlen: http://csphere.eu/api/
Schalla hat mich darauf hingewiesen, ist echt nützlich


Zuletzt editiert von Koffein am 18.02.2012 um 00:38 Uhr (3x Editiert)
Inaktiv
|
Rouven89
Thread-Ersteller


Going for pro




Beiträge: 539
# Antwort: 7 - 18.02.2012 um 09:43 Uhr
ah super danke geht alles musste nurnoch test_ip ändern - hier du sag mal wieso muss man hier
 
1.
2.
1. / 2. / ... 
 $zensiert_data cs_sql_select(__FILE__,'zensiert','zensiert_ip','','',0,0);


hinter dem 'zensiert_ip', noch 2 weite '' und zwei nullen angeben? okay die eine null ist dafür da das er ab null alles ausgibt oder? und die andere?

nur zum verständnis - copy&paste bringt ja nicht soviel ;D

besten dank auch für den link


------------------
http://sc-wiesens.de/

Der Sport Club "13 Eichen" Wiesens

Inaktiv
|
Fr33z3m4n ClanSphere Team


Medal of Honor




Herkunft: Hamm
Beiträge: 11094
# Antwort: 8 - 18.02.2012 um 09:52 Uhr
http://csphere.eu/api/
Dann links auf cs_sq_select gehen, dann siehste die einzelnen Parameter.
cs_sql_select ( $cs_file, $sql_table, $sql_select, [ $sql_where = 0], [ $sql_order = 0], [ $first = 0], [ $max = 1], [ $cache = 0])


------------------
mfg
Patrick "Fr33z3m4n" Jaskulski

Antoine de Saint-Exupéry: Wenn Du ein Schiff bauen willst, so trommle nicht Männer zusammen, um Holz zu beschaffen, Aufgaben zu verteilen, sondern lehre die Männer die Sehnsucht nach dem endlosen weiten Meer.

Inaktiv
|
Rouven89
Thread-Ersteller


Going for pro




Beiträge: 539
# Antwort: 9 - 18.02.2012 um 10:27 Uhr
ah okay - danke - aber fehlt dann eig nicht noch ein parameter? weil wir hier ja nur 4 übergeben

$zensiert_data = cs_sql_select(__FILE__,'zensiert','zensiert_ip','' ,'',0,0);

und in der api sind 5 parameter "optional" - müsste das dann nicht soo aussehn?

$zensiert_data = cs_sql_select(__FILE__,'zensiert','zensiert_ip','' ,'',0,0,'');

oder brauch man den letzten nicht berücksichtigen wenn man den nicht brauch


------------------
http://sc-wiesens.de/

Der Sport Club "13 Eichen" Wiesens

Inaktiv
|
Fr33z3m4n ClanSphere Team


Medal of Honor




Herkunft: Hamm
Beiträge: 11094
# Antwort: 10 - 18.02.2012 um 11:05 Uhr
Die Parameter in den eckigen Klammern sind Optional. Wenn die nicht übergeben wird, wird der Default-Parameter (welcher hinter dem = steht) genutzt.


------------------
mfg
Patrick "Fr33z3m4n" Jaskulski

Antoine de Saint-Exupéry: Wenn Du ein Schiff bauen willst, so trommle nicht Männer zusammen, um Holz zu beschaffen, Aufgaben zu verteilen, sondern lehre die Männer die Sehnsucht nach dem endlosen weiten Meer.

Inaktiv
|
Rouven89
Thread-Ersteller


Going for pro




Beiträge: 539
# Antwort: 11 - 18.02.2012 um 11:37 Uhr
ja genau - aber ich könnte doch jetzt nicht die ersten beiden '' weglassen und nur die '0','0' hinschreiben weil er sonst
cs_sql_select ( $cs_file, $sql_table, $sql_select, [ $sql_where = 0], [ $sql_order = 0], [ $first = 0], [ $max = 1], [ $cache = 0]) die beiden fettmarkierten 0 setzen würde - er soll ja eig $first und $max auf null setzen oder sehe ich das falsch?

alles was danach kommt kann weglassen werden


------------------
http://sc-wiesens.de/

Der Sport Club "13 Eichen" Wiesens

Inaktiv
|
Fr33z3m4n ClanSphere Team


Medal of Honor




Herkunft: Hamm
Beiträge: 11094
# Antwort: 12 - 18.02.2012 um 12:13 Uhr
nene du musst die Reihenfolge schon einhalten. Wenn du einen Parameter in der Kette nicht setzen willst/musst, trägst du einfach eine 0 oder den Standardwert ein.

Da First aber bereits 0 als Standard hat, brauchst du nur Max auf 0 setzen.

 
1.
1. / 2. / ... 
 cs_sql_select(__FILE__,'table','*',0,0,0,0);


------------------
mfg
Patrick "Fr33z3m4n" Jaskulski

Antoine de Saint-Exupéry: Wenn Du ein Schiff bauen willst, so trommle nicht Männer zusammen, um Holz zu beschaffen, Aufgaben zu verteilen, sondern lehre die Männer die Sehnsucht nach dem endlosen weiten Meer.

Inaktiv
|
Rouven89
Thread-Ersteller


Going for pro




Beiträge: 539
# Antwort: 13 - 18.02.2012 um 12:28 Uhr
achso okay alles klar! ich verstehe ;D - jetzt mal ne andere frage - gibt es von clansphere schon eine funktion mit der man auch die mac-adresse eines pc's auslesen kann? weil sich die ip adresse ja täglich ändert.
habe im bei google nachgelesen das es eig nicht möglich ist sondern nur wenn man im gleichen netzwerk ist weil man sonst automatisch die ip des routers fischt und nicht mehr die mac adresse - aber kann ja sein das es doch irgendwie möglich ist, da ich gerne den benutzer eindeutig identifizieren will mit dem neuen modul

habe mir das so gedacht:
wenn eine neue anmerkung geschrieben wird - löscht er alle gespeicherten mac-adressen aus der datenbank und wenn der benutzer dann wieder auf die seite kommt soll die anmerkung-box anders angezeigt werden, zb mit einem popup und beim nächsten mal wird die box wieder ganz normal angezeigt (weil die mac-adresse ja schon vorhanden ist) und das ganze spiel wieder von vorne wenn eine neue anmerkung geschrieben wird.. also das umsetzen ist ja kein problem nur dazu muss ich wissen wie man die mac-adresse auslesen kann bzw wie man sonst einen besucher eindeutig identifizieren kann


------------------
http://sc-wiesens.de/

Der Sport Club "13 Eichen" Wiesens

Inaktiv
|
Deaktiviert

Supporter
Supporter



Beiträge: 1287
# Antwort: 14 - 18.02.2012 um 12:35 Uhr
Ein kleines Zitat:
RcRaCk2k schrieb:
Mal kleines Wissen in die verschiedenen IP-Communications-Layers:

Layer1 = Adressen-Schicht
Dort befindet sich die SOURCE-MAC-Address und die DESTINATION-MAC-Address

Wissenwertes:
Wenn das Paket herein kommt, dann ist die SOURCE-MAC-Address die MAC-Adresse, des nächsten Routers. Also wenn du zuhause z.B. eine NAT für den Internetzugang zum Internet verwendest, und einen HOME-PC als Server nutzt, dann ist die SOURCE-MAC-Adresses dies des NAT-Routers!

Während das Paket über mehrere Routenabschnitte gelangt, ändert sich immer die SOURCE und die DESTINATION-MAC-Address.

Layer2 = IP-Layer
Dort befindet sich die SOURCE-IP-Address und die DESTINATION-IP-Address. Darüber hinaus erhält man Informationen über das Protokoll. z.B. ab es sich um ein TCP, UDP, ICMP oder IP Paket handelt. Zudem erhält man auch die Versionsnummer des Protokolls. Bei TCP ist das z.B. 4. Man erhält darüber auch die Informationen über Time-To-Live des Paketes.

Layer3 = Protokoll-Header
Hier steht geschrieben, ob es sich um eine Verbindungsanfrage (request), oder eine Kommunikation (established) bzw. einen Verbindungsabbruch (close) handelt.
Zudem stehen hier die SOURCE-PORT und DESTINATION-PORT geschrieben.

Damit das jetzt klar ist
Die MAC-Adresse eines PC's aus dem INTERNET kann NIEMALS ausgelesen werden. Die MAC-Adresse im selben Subnet (Rechner welche direkt ohne Router) erreichbar sind, können per MAC-Address identifiziert werden)

Quelle: http://www.php.de/php-fortgeschrittene/12003-erledigt-mac-adresse-auslesen.html

Somit sollte denke ich klar sein, dass das nicht möglich ist. Das ist eine ganze andere Ebene des Internets.


Inaktiv
|
Fr33z3m4n ClanSphere Team


Medal of Honor




Herkunft: Hamm
Beiträge: 11094
# Antwort: 15 - 18.02.2012 um 13:09 Uhr
@Rouven
Du kannst einen Benutzer nicht eindeutig anhand der IP-Adresse ermitteln. Es ist nur über die UserID möglich, ggf. Session mit cookie. Aber auch Session kann zerstört werden.

Das heißt, du musst anders an dein Vorgehen herangehen. Wie Schalle schongeschrieben hat, ist die Mac-Adresse nicht zu ermitteln, bzw. zu erkenne. Das wäre ja noch schöner, wenn das möglich wäre, da dieses dann wie ein offenes Scheunentor für Angreifer wäre.

@Schalla. Der letzte Satz stimmt so nicht ganz. Wenn du die IP des Rechners hast, kannst du auch die MAC Adresse in einem Netzwerk ermitteln, auch wenn ein Router dazwischen steckt.


------------------
mfg
Patrick "Fr33z3m4n" Jaskulski

Antoine de Saint-Exupéry: Wenn Du ein Schiff bauen willst, so trommle nicht Männer zusammen, um Holz zu beschaffen, Aufgaben zu verteilen, sondern lehre die Männer die Sehnsucht nach dem endlosen weiten Meer.

Inaktiv
|
Rouven89
Thread-Ersteller


Going for pro




Beiträge: 539
# Antwort: 16 - 18.02.2012 um 13:20 Uhr
ah okay - besten dank euch beiden - ich schau und hör mich nochmal weiter um wie ich das am besten realisieren kann - zum thema session und cookies

besten dank!


------------------
http://sc-wiesens.de/

Der Sport Club "13 Eichen" Wiesens

Inaktiv
|
Deaktiviert

Supporter
Supporter



Beiträge: 1287
# Antwort: 17 - 18.02.2012 um 13:22 Uhr
Echt? Das wäre mir neu, dass das geht. Da i.d.R. so Requests vom Router geblockt werden. Mit Sicherheitslücken evtl., aber auch ohne?

Und du kannst einen User leider nicht permanent bannen, es geht im Internet nicht. Du kommst dazu leider nicht an Sachen dran, die Offline-Programme können (HWId u.Ä.). Du kannst ihn quasi nur für interval XY bannen.


Inaktiv
|
Fr33z3m4n ClanSphere Team


Medal of Honor




Herkunft: Hamm
Beiträge: 11094
# Antwort: 18 - 18.02.2012 um 13:23 Uhr
Aber wie gesagt, denk daran. Sofern du den Browser schließt, und die Seite danach wieder besuchst, hast du eine andere Session. Somit ist die Session ansich, nur temporär, solange er sich auf der Seite befindet, von Vorteil.

Cookies können dagegen länger gespeichert werden. Diese können jedoch auch wiederum vom Benutzer gelöscht werden, oder gar die Speicherung von Cookies kann vom Browser deaktiviert werden.

Daher gilt die 100% Aussage, eindeutige Identifizierung ist nur über die csp_user_id möglich.

@Schalla. richitg, sofern der Router das blockt, geht das nicht. Aber die StandardRouter, im Handel etc. blockieren diese Funktion im Netzwerk nicht. Wieso auch ?! Vorausgesetzt, gleiches Subnetz. Deswegen sagte ich, die Aussage stimmt teilweise nicht ;D


------------------
mfg
Patrick "Fr33z3m4n" Jaskulski

Antoine de Saint-Exupéry: Wenn Du ein Schiff bauen willst, so trommle nicht Männer zusammen, um Holz zu beschaffen, Aufgaben zu verteilen, sondern lehre die Männer die Sehnsucht nach dem endlosen weiten Meer.

Zuletzt editiert von Fr33z3m4n ClanSphere Team am 18.02.2012 um 13:26 Uhr (1x Editiert)
Inaktiv
|
Rouven89
Thread-Ersteller


Going for pro




Beiträge: 539
# Antwort: 19 - 18.02.2012 um 20:21 Uhr
soo habe das jetzt mit einem cookie gelöst - ich weiß zwar nicht ob das so die effizienteste methode ist aber es klappt erstmal - bin wie folgt vorgegangen:

ich lasse in der edit.php vom anmerkung-modul beim speichern eine zufallszahl mitabspeichern die gebe ich in der view.php wieder aus und speicher die gleich im cookie:
 
1.
2.
1. / 2. / ... 
 $cookievalue $cs_anmerkung['anmerkung_random'];
setcookie("scwiesens",$cookievalue,time()+(3600*24+365));


und dann überprüfe ich ob der benutzer den cookie schon hat
 
1.
2.
3.
4.
5.
1. / 2. / ... 
 if($_COOKIE["scwiesens"] != $cookievalue){
        
$cs_view_anmerkung['anmerkung']['bg'] = 'warnung_rot';
        }else{   . . .  .



jetzt wird die anmerkung-box immer rot angezeigt (layout wird noch verfeinert) wenn der benutzer das erstemal auf der page war und somit den cookie noch nicht gespeichert hat oder wenn die anmerkung bearbeitet wurde und eine neue zufallszahl generiert wurde (da der benutzer dann wieder einen neuen cookie bekommt)

nun meine frage zur effizienz - kann man das so machen oder sollte man die cookies auch wieder löschen bevor man einen neuen übergibt oder wird der cookie automatisch gelöscht sobald er nicht mehr in verwendung ist?

edit: habe bei der variante einen fehler entdeckt - unzwar wird die box immer bei den rot angezeigt die generell cookies blockieren - mir fällt auch gerade nichts ein wie man das umgehen kann - oder gibt es eine methode mit der man rausfinden kann ob man cookies blockiert?

hier kann man das sehen (oben die rote box) www.sc-wiesens.de


------------------
http://sc-wiesens.de/

Der Sport Club "13 Eichen" Wiesens

Zuletzt editiert von Rouven89 am 19.02.2012 um 01:35 Uhr (5x Editiert)
Inaktiv
|
Antworten: 19
Seite [1]


Sie müssen sich registrieren, um zu antworten.