mboost-dp1

Vandfarvemaskinen


Gå til bund
Gravatar #1 - Anders Fedеr
11. jun. 2010 17:07
Jeg er arbejder på en maskine der erstatter ord på en webside efter eget valg med ordet 'Vandfarve'. Prøv den selv her.

Men som du måske kan se er der en masse problemer i den genererede side. Bl.a. ser danske tegn mærkelige ud, og stylesheets indlæses tilsyneladende ikke korrekt.

Er der nogle vakse hoveder derude der kan foreslå nogle hurtige løsninger på disse og andre problemer der opleves? Her er maskinens sindrige kildekode:
<?php
if(strlen($_GET['url'])==0) {
?>
<html>
<body>
<form>
1. <a href="http://www.google.dk/search?hl=da&q=bøssesex+site:ekstrabladet.dk">Find</a> nyhed.<br>
2. Indtast adressen på nyheden her: <input name="url"><br>
3. Indtast ordet du ønsker at erstatte her: <input name="word"><br>
4. Klik <input type="submit" value="her"> og vent på din nyhed kommer frem.<br>
5. Kopier adressen fra adressefeltet.<br>
</form>
</body>
</html>
<?php
} else {
$url_data = file_get_contents($_GET['url']);
echo(str_replace($_GET['word'], '<a href="http://newz.dk/~vandfarve">Vandfarve</a>', $url_data));
}
?>
Gravatar #2 - LinguaIgnota
11. jun. 2010 17:08
Jeg elsker den, søde Anders. Sikke et dejligt initiativ.
Gravatar #3 - TheAvatar
11. jun. 2010 17:43
#1
Ikke længe dit site fik lov at leve, før det blev midlertidigt spærret af din webhost:
http://www.000webhost.com/admin-review
Gravatar #4 - Anders Fedеr
11. jun. 2010 17:52
#3 Ja. 'Malicious content' min bare...
Gravatar #5 - Anders Fedеr
11. jun. 2010 17:58
Så skulle den være oppe og køre igen.
Gravatar #6 - gnаrfsan
11. jun. 2010 21:12
Jeg fandt dette interview med Vandfarve ved hjælp af maskinen:
Vandfarve græd ud hos Reimer Bo
PETER ASTRUP - Søndag den 16. maj 2010, 21:35

Nyhedsvært Reimer Bo Christensen har arbejdet intenst i ni måneder på at få landet et interview med Vandfarve. Og søndag aften kunne nationen så sluge aftenkaffen til lyden af storsvindlerens lyse røst for første gang, siden han landede på dansk jord, da han tonede frem i programmet »Vandfarve: Kan man stole på en løgner?«. Et interview præget af mange grådkvalte forklaringer.


- Jeg gjorde det ikke for egen vindings skyld, lagde Vandfarve for, til trods for han faktisk svindlede for 860 mio. kr.

For en lille del af de penge købte Vandfarve luksuslejligheder, store yachter til mange millioner, Rolex-ure i dyre domme og leasede dyre luksusbiler, hvor han snød med registreringsafgiften.

Hvorfor, Vandfarve?

Reimer Bo Christensen fulgte op på svaret med spørgsmålet:

Hvorfor gjorde du det så?

Og Vandfarve fortsatte i samme rille.

- Jeg har aldrig følt, at jeg var god nok som barn - at jeg var velkommen. Så jeg har været drevet af og ville have anerkendelse. Det har fulgt mig hele livet, sagde han og fortsatte:

Dårligt selvværd
Ifølge Vandfarve var det således hans eget dårlige selvværd, der lagde grunden til det svindelnummer, hvis lige aldrig er set i Danmark.

Jeg gætter på at det har noget med rejsen at gøre...
Gravatar #7 - arne_v
12. jun. 2010 02:24
#tråd

Hm.

Er det her Arto eller Newz.dk ??

Det eneste sjove ved koden i #0 er vel sikkerheds buggen !?!?
Gravatar #8 - Ronson ⅍
12. jun. 2010 03:09
Gravatar #9 - Anders Fedеr
12. jun. 2010 03:47
arne_v (7) skrev:
Det eneste sjove ved koden i #0 er vel sikkerheds buggen !?!?

Sjove? Der er ikke noget sjovt ved koden. #1 er et oprigtigt spørgsmål.

Eksempel på side med mange fejl: http://vandfarve.comze.com/?url=http://ekstrablade...
Gravatar #10 - squad2nd
12. jun. 2010 04:08
#7

Er det her Arto eller Newz.dk ??


Det er faktisk ingen af delene. Jeg fik at vide på en kontant måde engang at Newz.dk faktisk staves med små bogstaver, altså newz.dk.

Når det er sagt... så lad de små lømler more sig.
LinguaIgnota er den værste - en vaskeægte slyngel, så det drejer sig om at holde hovedet koldt, så man ikke selv ender for en af hans practical jokes.

Gravatar #11 - Geekalot
12. jun. 2010 08:52
ffs troede det her var arto !
Gravatar #12 - jagd156
12. jun. 2010 09:48
Problemet er vel at ting som stylesheets bliver linket lokalt til.
fx på newz:
<link rel="stylesheet" href="/css/jquery/ui.all.css" type="text/css" media="screen, projection" />
<link rel="stylesheet" href="/z4/css/jquery.rating.css" type="text/css" media="screen, projection" />
<link rel="stylesheet" href="/css/newz-dk/newz-dk/style.929.css" type="text/css" media="screen" />

derfor leder den efter stylesheetet på http://vandfarve.comze.com/css/jquery/ui.all.css
Gravatar #13 - Windcape
12. jun. 2010 10:09
Anders Feder (9) skrev:
Sjove? Der er ikke noget sjovt ved koden. #1 er et oprigtigt spørgsmål.
Jeg er nu ellers enig med arne_v, det er en rigtig sjov sikkerhedsbug!

Bare synd du ikke hostede det på et webhotel med konfigurationsfiler osv. med passwords i, det havde været meget sjovere!
Gravatar #14 - reefermadness  
12. jun. 2010 10:32
#13 - wow selv jeg fangede den bug der..

Måske det ville være en idé at sikre dig at file get contents kun bliver brugt gennem http?
Gravatar #15 - arne_v
12. jun. 2010 13:13
squad2nd (10) skrev:
Jeg fik at vide på en kontant måde engang at Newz.dk faktisk staves med små bogstaver, altså newz.dk.


Jeg henholder mig til RFC 1035 !


Note that while upper and lower case letters are allowed in domain
names, no significance is attached to the case. That is, two names with
the same spelling but different case are to be treated as if identical.
Gravatar #16 - Anders Fedеr
12. jun. 2010 13:32
jagd156 (12) skrev:
Problemet er vel at ting som stylesheets bliver linket lokalt til.

Ja, så hvad vil en fiks løsning på det være?
Gravatar #17 - reefermadness  
12. jun. 2010 13:37
#16 At finde referencer som src=" og href=" der ikke starter med http:// og indsætte adressen ?
Gravatar #18 - Anders Fedеr
12. jun. 2010 13:47
#17 Men hvordan? Jeg kunne gøre noget selv og sætte mig ind i regex eller lign. Men mit håb var at der var nogen der var så rutineret at de kunne gøre 'in a heartbeat'.
Gravatar #19 - T-Hawk
12. jun. 2010 13:54
Man kan også indsætte et <base href="" /> i <head> sektionen, så vil browsere selv indsætte href værdien i alle lokale referencer
Gravatar #20 - Windcape
12. jun. 2010 14:01
#19

Hvilket er en fint hack. Men man skal også sikre sig at man server samme content-type og content-encoding.

En rigtig proxy er lidt mere kompleks at skrive.
Gravatar #21 - Anders Fedеr
12. jun. 2010 14:24
Windcape (20) skrev:
Hvilket er en fint hack. Men man skal også sikre sig at man server samme content-type og content-encoding.

Det vil jeg tillade mig at se stort på fordi projektet er så useriøst :) Men hvordan kan man hurtigt indsætte et nyt element i <head> som #19 foreslår? Man må kunne lave en regular expression der finder "<head" og så indsætter noget efter det efterfølgende ">" ...?
Gravatar #22 - Windcape
12. jun. 2010 14:42
#21

Du burde ikke se stort på content-encoding, da det vil gøre at æøå måske ikke vises korrekt !

an må kunne lave en regular expression der finder "<head" og så indsætter noget efter det efterfølgende ">" ...?


substring($html,"<head>","<head><base href=\"...\"/>")

why regex? ;)
Gravatar #23 - gnаrfsan
12. jun. 2010 15:23
hvad med bare at teste om URL'en starter med http?
/^http:\/\// ?
Og simpelthen bare begrænse det til den protokol.


Og hvorfor sidder jeg her og snakker om sikkerhed mens i snakker om at relinke....
Gravatar #24 - Anders Fedеr
12. jun. 2010 16:25
Windcape (22) skrev:
Du burde ikke se stort på content-encoding, da det vil gøre at æøå måske ikke vises korrekt !

True.
Windcape (22) skrev:
substring($html,"<head>","<head><base href=\"...\"/>")

why regex? ;)

Hmm. Tænkte at <head> kunne have attributes. Men det er nok ualmindeligt. Men hvordan fisker jeg så det rette domæne at sætte ind i base ud?
gnarfsan (23) skrev:
hvad med bare at teste om URL'en starter med http?
/^http:\/\// ?
Og simpelthen bare begrænse det til den protokol.

Lyder rigtigt.
Gravatar #25 - Anders Fedеr
12. jun. 2010 16:28
Så har jeg rettet koden til:
<?php
if(substr($_GET['url'],0,7)!="http://") {
?>
<html>
<body>
<form>
1. <a href="http://www.google.dk/search?hl=da&q=bøssesex+site:ekstrabladet.dk">Find</a> nyhed.<br>
2. Indtast adressen på nyheden her: <input name="url"><br>
3. Indtast ordet du ønsker at erstatte her: <input name="word"><br>
4. Klik <input type="submit" value="her"> og vent på din nyhed kommer frem.<br>
5. Kopier adressen fra adressefeltet.<br>
</form>
</body>
</html>
<?php
} else {
$page = file_get_contents($_GET['url']);
$page = str_replace("<head>", "<head>\n<base href='http://www.ekstrabladet.dk'/>", $page);
$page = str_replace($_GET['word'], '<a href="http://newz.dk/~vandfarve">Vandfarve</a>', $page);
echo($page);
}
?>

Indtil videre er ekstrabladet.dk hardcodet ind som 'base', hvilket skal fikses, men eller hjalp det gevaldigt: http://www.tinyurl.dk/18513
Gravatar #26 - Ronson ⅍
12. jun. 2010 16:55
This be sad

edit: gider du lade være med at spytte dine arrays ud? Så kan man jo lissåm ikke bruge siden, nå!
Gravatar #27 - Anders Fedеr
12. jun. 2010 17:00
#26 Den slags gør man ikke grin med! Men ellers godt lavet :D
Gravatar #28 - Anders Fedеr
12. jun. 2010 17:03
Windcape (22) skrev:
Du burde ikke se stort på content-encoding, da det vil gøre at æøå måske ikke vises korrekt !

Dette er fikset nu.
Gravatar #29 - Ronson ⅍
12. jun. 2010 17:05
Den burde ikke smide links med, hvis der ændres tekst i en <title>
Gravatar #30 - gnаrfsan
12. jun. 2010 17:05
Det ville fungere bedre, hvis du ikke havde et link med, til vandfarves profil.
Gravatar #31 - Anders Fedеr
12. jun. 2010 17:13
gnarfsan (30) skrev:
Det ville fungere bedre, hvis du ikke havde et link med, til vandfarves profil.

Okay, det er fjernet.
Gravatar #32 - gnаrfsan
12. jun. 2010 17:23
Anders Feder (31) skrev:
Okay, det er fjernet.

Det hjalp på wikipedia ihvertfald :-)
Men der er en periodisk fejl i toppen...
Gravatar #33 - Anders Fedеr
12. jun. 2010 17:35
Her tilføjet mulighed for at erstatte et ord mere. Serveren hoster muligvis fordi den kaldes rekursivt.
Gravatar #34 - Ronson ⅍
12. jun. 2010 17:46
Men.. EB favicon og EB links.. nu kunne jeg ikke se alle de analbilleder i artiklen!
Gravatar #35 - Anders Fedеr
12. jun. 2010 17:49
Ronson (34) skrev:
Men.. EB favicon og EB links.. nu kunne jeg ikke se alle de analbilleder i artiklen!

Dette skulle gerne være løst nu. Koden for en god ordens skyld:

<?php
if(substr($url=$_GET['url'],0,7)!="http://") {
?>
<html>
<body>
<form>
1. <a href="http://www.google.dk/search?hl=da&q=bøssesex+site:ekstrabladet.dk">Find</a> nyhed.<br>
2. Indtast adressen på nyheden her: <input name="url"><br>
3. Indtast op til 2 ord du ønsker at erstatte her: <input name="word1"> og <input name="word2"><br>
4. Klik <input type="submit" value="her"> og vent på at din nyhed kommer frem.<br>
5. Kopier adressen fra adressefeltet.<br>
</form>
</body>
</html>
<?php
} else {
$parts = parse_url($url);
$headers = get_headers($url,1);
header("Content-Type: ".$headers['Content-Type']);
header("Content-Encoding: ".$headers['Content-Encoding']);
$page = file_get_contents($url);
$page = str_replace("<head>", "<head>\n<base href='".$parts['scheme'].'://'.$parts['host']."'/>", $page);
$page = str_replace($_GET['word'], "Vandfarve", $page); //deprecated
$page = str_replace($_GET['word1'], "Vandfarve", $page);
$page = str_replace($_GET['word2'], "Vandfarve", $page);
echo($page);
}
?>

Opleves der andre problemer?
Gravatar #36 - Daniel-Dane
12. jun. 2010 18:00
Lav dog en array, hvor hvert element separeres af mellemrum (+ citationtegnsunderstøttelse).

str_getcsv (hvis din PHP er gammel: http://php.net/manual/en/function.explode.php#9402...

http://vandfarve.comze.com/?url=http%3A%2F%2Fwww.w...
Gravatar #37 - Anders Fedеr
12. jun. 2010 18:03
Daniel-Dane (36) skrev:
Lav dog en array, hvor hvert element separeres af mellemrum (+ citationtegnsunderstøttelse).

Er det ikke bedre at separere med komma så?
Gravatar #38 - Daniel-Dane
12. jun. 2010 18:05
Anders Feder (37) skrev:
Er det ikke bedre at separere med komma så?
Do dat. It's more csv anyway.
Gravatar #39 - Anders Fedеr
12. jun. 2010 18:13
<?php
if(substr($url=$_GET['url'],0,7)!="http://") {
?>
<html>
<body>
<form>
1. <a href="http://www.google.dk/search?hl=da&q=bøssesex+site:ekstrabladet.dk">Find</a> nyhed.<br>
2. Indtast adressen på nyheden her: <input name="url"><br>
3. Indtast de ord du ønsker at erstatte her, adskilt med komma: <input name="words"><br>
4. Klik <input type="submit" value="her"> og vent på at din nyhed kommer frem.<br>
5. Kopier adressen fra adressefeltet.<br>
</form>
</body>
</html>
<?php
} else {
$parts = parse_url($url);
$headers = get_headers($url,1);
header("Content-Type: ".$headers['Content-Type']);
header("Content-Encoding: ".$headers['Content-Encoding']);
$page = file_get_contents($url);
$page = str_replace("<head>", "<head>\n<base href='".$parts['scheme'].'://'.$parts['host']."'/>", $page);
$page = str_replace($_GET['word'], "Vandfarve", $page); //deprecated
$page = str_replace(explode(",",$_GET['words']), "Vandfarve", $page);
echo($page);
}
?>
Gravatar #40 - Daniel-Dane
12. jun. 2010 18:37
Så mangler du bare i stedet at bruge en simpel regex, som kun erstatter tekst i/mellem (?) tags.

Noget a la "<(.+)?>^(.*)?$<(.+)?>" (måske skal < og > escapes). Lidt pseudo-pcre, da det er noget tid siden, jeg har brugt det.

Jeg mener faktisk, at der er et eksempel på regex-siden. http://www.regular-expressions.info/examples.html

<([A-Z][A-Z0-9]*)\b[^>]*>(.*?)</\1> will match the opening and closing pair of any HTML tag. Be sure to turn off case sensitivity. The key in this solution is the use of the backreference \1 in the regex. Anything between the tags is captured into the second backreference.
Gravatar #41 - Anders Fedеr
12. jun. 2010 18:38
Daniel-Dane (40) skrev:
Så mangler du bare i stedet at bruge en simpel regex, som kun erstatter tekst i/mellem (?) tags.

Ja. Nogen forslag?
Gravatar #42 - Anders Fedеr
12. jun. 2010 18:40
Hvordan kan det egentlig være at Google ikke indekserer links til maskinen? Det burde være muligt at søge på 'vandfarve' og 'dunket igennem' og få den rigtige historie om hvad det er han går og laver...
Gravatar #43 - Anders Fedеr
12. jun. 2010 20:13
Daniel-Dane (40) skrev:
Så mangler du bare i stedet at bruge en simpel regex, som kun erstatter tekst i/mellem (?) tags.

Vil lige vente med dette da det jo egentlig er fint nok at den erstatter tekst i title osv. Men hvis den nu skal være rigtig fræk, så skal den også ændre links så udgående links fra en vandfarviseret side også indlæses via maskinen! Nogen forslag hertil?
Gravatar #44 - Slettet Bruger [2039209187]
12. jun. 2010 22:53
Your website is up and running!

Website vandfarve.comze.com has been successfully installed on server.
Please delete file "default.php" from public_html folder and upload your website by using FTP or web based File Manager.

- Your account information can be found on http://members.000webhost.com/
- If you need help, please check our forums and and FAQ List.
- Please review our Terms Of Service to see what is not allowed to upload.
If you are going to violate our TOS, please read this text until it's not too late!
Do not waste your time with 000webhost.com, if you are going to upload any illegal website here! All content is manually reviewed by humans, so if we will detect anything illegal, your account will be terminated. So don't waste your time in promoting your scams, hacking websites, or anything else malicious - your account will be terminated in 5 minutes after we will receive first abuse report or anything abusive will be detected by our staff. We also report all illegal activity to the local and international authorities.
Below you can see your current files in public_html folder.

FileSize
Gravatar #45 - Anders Fedеr
12. jun. 2010 22:57
#44 Du valgte så simpelthen at tilgå maskinen i de 10 sekunder jeg var ved at omdøbe index.php. Prøv evt. igen.
Gravatar #46 - Anders Fedеr
12. jun. 2010 23:07
Vigtig ny feature: ord med små bogstaver bliver til 'vandfarve', ord med stor begyndelsesbogstav bliver til 'Vandfarve'.
Gravatar #47 - reefermadness  
13. jun. 2010 00:06
hvad med uppercase ord :-) ?
Gravatar #48 - Anders Fedеr
13. jun. 2010 02:19
reefermadness (47) skrev:
hvad med uppercase ord :-) ?

Fixed.
Gravatar #49 - reefermadness  
13. jun. 2010 09:58
Hvad med leet casing (vAnDfArVe) :D ?
Gravatar #50 - Slettet Bruger [2039209187]
13. jun. 2010 11:23
reefermadness (49) skrev:
Hvad med leet casing (vAnDfArVe) :D ?


V4ndf4rv3 vel ?
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login