Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  17 2080
Så jeg bestemte meg for en stund siden å lage ett imageboard for norden. Jeg har koded frå scratch, så det er sikkert mangen feil.

To store jeg gjerne kunne hatt litt hjelp med.

1. Flag fra IP. Akkuratt nå bruker jeg noe utrolig dårlig, som er "http://api.hostip.info/flag.php?ip=[IP]". Dette vill selvfølgeli vise IPen i kildekoden. Vet dere om noen alternativ? Jeg prøvde en del, men de fleste nettstedene som hoster flag trenger enten namn på landet eller kort namn, som vill si at jeg må igjennom flere funksjoner fra IP-en, som jeg føler blir en veldig scetchy måte å gjøre det på. Vill ha noe liknendes som det jeg bruker, bare uten å vise IPen i kildekoden.

2. I ny og ne så kommer det opp "No data from Server". Har forstått at dette kan være ett Chrome problem, men det skjer bare på mitt nettsted i min erfaring. Jeg har snakket med GoDaddy og de sier det ikke er noe på deres server-side, så jeg rekner med det må være noe gale med koden min.

http://vikingchan.org (vær forbredt på shitty spaghetti kode)
Sist endret av impedans; 20. januar 2015 kl. 22:13.
<?php getUserTitle(); ?>
MrMrtn's Avatar
Det å vise IP i kildekoden er dødfødt ja. Det du kan gjøre er å skrive en funksjon som finner ut hvilket land IPen tilhører, for så å bare lagre landet. Det er langt mer innafor enn å printe ut IPene.
nøørd
impedans's Avatar
Trådstarter
16 1
Sitat av MrMrtn Vis innlegg
Det å vise IP i kildekoden er dødfødt ja. Det du kan gjøre er å skrive en funksjon som finner ut hvilket land IPen tilhører, for så å bare lagre landet. Det er langt mer innafor enn å printe ut IPene.
Vis hele sitatet...
Tja, problemet mitt har da vært å finne en nettside med flag-bilder som har relative url-er. Jeg har helst ikke lyst å laste opp 196 bilder av flagg på min egen server og namngi de etter hvordan landenes namn kommer i databasen.
Sitat av impedans Vis innlegg
Tja, problemet mitt har da vært å finne en nettside med flag-bilder som har relative url-er. Jeg har helst ikke lyst å laste opp 196 bilder av flagg på min egen server og namngi de etter hvordan landenes namn kommer i databasen.
Vis hele sitatet...
Du har ikke lyst..? Ved å bruke eksterne tjenester så har du aldri noen garanti for at det fungerer om en uke, en måned, eller et år..?

Lag en databasetabell, med en rad pr. land. Kolonnene er da f.eks:
ID, short_name, full_name, flag_url
Eksempel rad:
1, NO, Norway, /images/flags/no.gif

Deretter lager du en funksjon på siden din, f.eks i php kunne du basert denne på $_SERVER['REMOTE_ADDR']. Denne variabelen gir deg brukerens IP, men er ikke skuddsikker. Deretter kan du velge å skrive en egen klasse/funksjon for å sjekke hvilket land IP'en tilhører, eventuelt kopiert/lastet ned en ferdig klasse/funksjon.

Et eksempel på bruken av noe slikt kan være:

$flag = new flagClass($_SERVER['REMOTE_ADDR']);

Der flagClass sjekker hvilket land ip'en hører til, slår opp landet i databasen, henter url'en til bildet og spytter det ut igjen til variabelen $flag slik at verdien dens blir /images/flags/no.gif

Edit:
http://tarjim.com.au/ip2country.sql
Det finnes en databasetabell ferdiglaget for slikt. Det du gjør er å hente brukerens IP f.eks via PHP, gjør den om til en integer, deretter slår du opp i databasen for å se hvilken range brukerens ip ligger i. Deretter kan du returnere navnet på landet.. Om du da har en mappe med flagg i på serveren, og navnet disse som f.eks "Australia.gif" så kan du enkelt ta resultatet fra felt "name" i databasen, og legge til en ".gif" bak for å vise bildet.

Det er ingen gode grunner (annet enn datatrafikk om du forventer en _sinnsyk_ mengde med trafikk) til å ikke hoste disse filene selv.
Sist endret av Opplyst; 21. januar 2015 kl. 02:12.
Å vise IP-adressen til folk er rimelig håpløst. Du bør fjerne flaggfunksjonen til du har løst dette.

Og så trenger du et porno-board
nøørd
impedans's Avatar
Trådstarter
16 1
Sitat av Opplyst Vis innlegg
Det er ingen gode grunner (annet enn datatrafikk om du forventer en _sinnsyk_ mengde med trafikk) til å ikke hoste disse filene selv.
Vis hele sitatet...
Du har helt rett, jeg har bare vert alt for lat. Takk for tipset, jeg jobber med saken nå!

Sitat av hemmeligegreier Vis innlegg
Å vise IP-adressen til folk er rimelig håpløst. Du bør fjerne flaggfunksjonen til du har løst dette.

Og så trenger du et porno-board
Vis hele sitatet...
Tja, tenkte over det men jeg tenker jeg plutseli trenger myyye strengere moderasjon med en gang det blir porno vell?

Nå skal flag funke ganske fint. "No Data Recieved" er enda ett problem..

Flagg er oppe å går. "No Data Recieved" er enda ett problem. Veldig merkerlig syns jeg.

EDIT: Problemet er ikke Chrome, prøve andre nettleserer når det skjedde igjen nå..

EDIT: Problemet er ikke Chrome, prøve andre nettleserer når det skjedde igjen nå..
Sist endret av impedans; 21. januar 2015 kl. 09:11. Grunn: Automatisk sammenslåing med etterfølgende innlegg.
Hvorfor er det et problem å vise ip i htmlen? Ser ikkf helt den, du sender altså brukeren sin egen IP til en klien han selv bruker. Om noen man ikke ønsker skal vite ipen får lest HTMLen har de trolig allerede IPen din fra før.
<?php getUserTitle(); ?>
MrMrtn's Avatar
Sitat av etse Vis innlegg
Hvorfor er det et problem å vise ip i htmlen? Ser ikkf helt den, du sender altså brukeren sin egen IP til en klien han selv bruker. Om noen man ikke ønsker skal vite ipen får lest HTMLen har de trolig allerede IPen din fra før.
Vis hele sitatet...
Du missforstår. Det er brukeren som har postet sin IP, ikke den besøkendes. Det blir som at Freak.no viser og printer ut IPen til en bruker, hver gang kan skriver en post.
nøørd
impedans's Avatar
Trådstarter
16 1
Sitat av MrMrtn Vis innlegg
Du missforstår. Det er brukeren som har postet sin IP, ikke den besøkendes. Det blir som at Freak.no viser og printer ut IPen til en bruker, hver gang kan skriver en post.
Vis hele sitatet...
Korrekt. Det var tidligere sånn at jeg registrerte IPen til den som postet, så brukte jeg den for å finne land. Jeg har fikset uten å vise IPen i HTML nå, men tiligere har den vist på hver post sitt flagg. (Jeg viste dette var midlertidig, var bare nære venner som hadde postet).
Sitat av impedans Vis innlegg
Korrekt. Det var tidligere sånn at jeg registrerte IPen til den som postet, så brukte jeg den for å finne land. Jeg har fikset uten å vise IPen i HTML nå, men tiligere har den vist på hver post sitt flagg. (Jeg viste dette var midlertidig, var bare nære venner som hadde postet).
Vis hele sitatet...
Om du ikke vil lagre ip-adressen (f.eks for å finne troll og uforskammede drittmennesker i ettertid) kan du jo enkelt løse det ved å gjøre oppslag mot en eller annen geo-tjeneste når posten submittes, og heller lagre landet i databasen din. Det sørger også for at du slipper å gjøre et oppslag for å finne ut hvilket land en ip-adresse tilhører hver gang posten vises
nøørd
impedans's Avatar
Trådstarter
16 1
Sitat av moridin Vis innlegg
Om du ikke vil lagre ip-adressen (f.eks for å finne troll og uforskammede drittmennesker i ettertid) kan du jo enkelt løse det ved å gjøre oppslag mot en eller annen geo-tjeneste når posten submittes, og heller lagre landet i databasen din. Det sørger også for at du slipper å gjøre et oppslag for å finne ut hvilket land en ip-adresse tilhører hver gang posten vises
Vis hele sitatet...
Lagrer begge deler for nå. Sånn at jeg eventuelt kan banne IP-er og likendes. Men ja jeg lagrer landet når posten submittes, sånn at jeg slipper å hente via geo-tjesten hver gang posten blir lastet inn.
Sist endret av impedans; 21. januar 2015 kl. 12:20.
sindre@puse.cat:~$
Synderen's Avatar
Du bør sanitære input, det er mulig å skrive inn JS omtrent overalt.
nøørd
impedans's Avatar
Trådstarter
16 1
Sitat av Synderen Vis innlegg
Du bør sanitære input, det er mulig å skrive inn JS omtrent overalt.
Vis hele sitatet...
Trudde jeg hadde gjort det. Hvor har du testet?
sindre@puse.cat:~$
Synderen's Avatar
Sitat av impedans Vis innlegg
Trudde jeg hadde gjort det. Hvor har du testet?
Vis hele sitatet...
Når du lager en ny post så er ikke name, subject eller options sanitært. Samme gjelder id og board parametrene når man rapporterer et innlegg.
nøørd
impedans's Avatar
Trådstarter
16 1
Sitat av Synderen Vis innlegg
Når du lager en ny post så er ikke name, subject eller options sanitært. Samme gjelder id og board parametrene når man rapporterer et innlegg.
Vis hele sitatet...
Såg det nå, trenger bare htmlentities utf-8 sant? (ellers enn escape_string) Eller noe mer?

Feks:

Kode

$something = htmlentities($db->real_escape_string($_POST['something']), ENT_QUOTES, "UTF-8");
Sist endret av impedans; 21. januar 2015 kl. 13:32.
sindre@puse.cat:~$
Synderen's Avatar
Du finner masse tips her om hvordan det bør gjøres.
<?php getUserTitle(); ?>
MrMrtn's Avatar
Sitat av impedans Vis innlegg
Såg det nå, trenger bare htmlentities utf-8 sant? (ellers enn escape_string) Eller noe mer?
Vis hele sitatet...
Open Web Application Security Project (OWASP) har laget en god guide (som du burde sette deg inn i) her; https://www.owasp.org/index.php/XSS_...on_Cheat_Sheet
nøørd
impedans's Avatar
Trådstarter
16 1
Sitat av MrMrtn Vis innlegg
Open Web Application Security Project (OWASP) har laget en god guide (som du burde sette deg inn i) her; https://www.owasp.org/index.php/XSS_...on_Cheat_Sheet
Vis hele sitatet...
Skummet igjennom, ser ut som det hovedsakelig er hva informasjon som trengs å bli "escapet", men det er bare poster brukere sender til databasen på den måten, så escaper (nå vertfall) alt. Det jeg lurer på er om jeg bare trenger dette?:

Kode

$something = htmlentities($db->real_escape_string($_POST['something']), ENT_QUOTES, "UTF-8");
Eller om det er andre funksjoner som er nødvendige. Selvfølgli prevente mysql injection i tillegg.

De som har lyst kan godt prøve nå, alt skal fra mitt synspunkt være fikset. Bare prøv å ikke ødelegge hele nettsiden

"No Data Recieved", "No Data Recieved", "No Data Recieved", "No Data Recieved", "No Data Recieved"...

Jeg klikker. Har aldri sitt eller opplevd denne feilen før. Plis si at noen vet hva som kan være gale?

Kode

Unable to load the webpage because the server sent no data.
Error code: ERR_EMPTY_RESPONSE
Sist endret av impedans; 21. januar 2015 kl. 15:11. Grunn: Automatisk sammenslåing med etterfølgende innlegg.