mboost-dp1
Vandfarvemaskinen
- Forside
- ⟨
- Forum
- ⟨
- Programmering
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:
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));
}
?>
#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
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
Jeg fandt dette interview med Vandfarve ved hjælp af maskinen:
Jeg gætter på at det har noget med rejsen at gøre...
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...
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...
#7
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.
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.
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
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
Jeg er nu ellers enig med arne_v, det er en rigtig sjov sikkerhedsbug!Anders Feder (9) skrev:Sjove? Der er ikke noget sjovt ved koden. #1 er et oprigtigt spørgsmål.
Bare synd du ikke hostede det på et webhotel med konfigurationsfiler osv. med passwords i, det havde været meget sjovere!
#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?
Måske det ville være en idé at sikre dig at file get contents kun bliver brugt gennem http?
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.
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?
#16 At finde referencer som src=" og href=" der ikke starter med http:// og indsætte adressen ?
#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'.
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 ">" ...?
#21
Du burde ikke se stort på content-encoding, da det vil gøre at æøå måske ikke vises korrekt !
substring($html,"<head>","<head><base href=\"...\"/>")
why regex? ;)
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? ;)
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.
Så har jeg rettet koden til:
Indtil videre er ekstrabladet.dk hardcodet ind som 'base', hvilket skal fikses, men eller hjalp det gevaldigt: http://www.tinyurl.dk/18513
<?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
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å!
edit: gider du lade være med at spytte dine arrays ud? Så kan man jo lissåm ikke bruge siden, nå!
#26 Den slags gør man ikke grin med! Men ellers godt lavet :D
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.
gnarfsan (30) skrev:Det ville fungere bedre, hvis du ikke havde et link med, til vandfarves profil.
Okay, det er fjernet.
Her tilføjet mulighed for at erstatte et ord mere. Serveren hoster muligvis fordi den kaldes rekursivt.
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?
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...
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...
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å?
<?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);
}
?>
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
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.
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?
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...
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?
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
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
#44 Du valgte så simpelthen at tilgå maskinen i de 10 sekunder jeg var ved at omdøbe index.php. Prøv evt. igen.
Vigtig ny feature: ord med små bogstaver bliver til 'vandfarve', ord med stor begyndelsesbogstav bliver til 'Vandfarve'.
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.