[PHP & Functies ]In welke volgorde?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Eey,

ik heb een functie van iemand geprobeerd:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
$bericht = "$convertubbnow"; 

function UBBreplaceIMG($bericht) { 
$returnText = ""; 
$endtag = "[/img]"; 

$bericht = str_replace($endtag,$endtag ."'",$bericht); 
$bericht = explode("'",$bericht); 

foreach($bericht as $str) { 
if(eregi("([img])(http://[A-Z0-9[:punct:]/\.-]+)([/img])", $str, $parts)) { 
$link = $parts[2]; 
$info = @getimagesize($link); 

if($info) { 
$breedte = $info[0]; 
$hoogte = $info[1]; 

if($breedte < 250 && $hoogte < 250){ // Het plaatje is groot genoeg dus laat de orginele maten: 
$str = str_replace("[img]","<img border='0' src='",$str); 
$str = str_replace("[/img]","'>",$str); 
} 
else { 
if($breedte > $hoogte) { 
$width = 250; 
$height = round((250 / $breedte) * $hoogte,0); 
} 
else { 
$height = 250; 
$width = round((250 / $hoogte) * $breedte,0); 
} 

$str = str_replace("[img]","<div align="center"><a href="$link" target="_new"><img border="0" width="$width" height="$height" src="",$str); 
$str = str_replace("[/img]","" alt="Klik hier voor een vergroting"></a></div><br />",$str); 
} 
} 
} 
$returnText .= $str; 
} 
return $returnText; 
}


Dit werkt, maar er zitten meer UBB codes in het verhaal. Daar komt dan nog es bij:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
function UBBreplaceCode($bericht) {

$bericht = stripslashes($bericht);
// $bericht = htmlspecialchars($bericht); 
$bericht = str_replace("n","<br>",$bericht);

// $bericht = preg_replace("/[img](.+?)[/img]/is",'[img]"1"[/img]', $bericht);
$bericht = preg_replace("/[quote](.+?)[/quote]/is",'<blockquote><b>Quote:</b><hr>1</blockquote>', $bericht);
$bericht = preg_replace("/[i](.+?)[/i]/is",'<i>1</i>', $bericht);; 
$bericht = preg_replace("/[u](.+?)[/u]/is",'<u>1</u>', $bericht);
$bericht = preg_replace("/[b](.+?)[/b]/is",'<b>1</b>', $bericht);

$bericht = str_replace('[img]','', $bericht);
$bericht = str_replace('[/img]','', $bericht);
$bericht = str_replace('[b]','', $bericht);
$bericht = str_replace('[/b]','', $bericht);
$bericht = str_replace('[u]','', $bericht);
$bericht = str_replace('[/u]','', $bericht);
$bericht = str_replace('[i]','', $bericht);
$bericht = str_replace('[/i]','', $bericht);

// $bericht = preg_replace("/(?<!=S)(?:(https?://|ftp://|news:|telnet:)|(www.))(S+)/ixe",'"<a href="".(strlen("1") > 0 ? "1" : "http://")."23" target="_blank">123</a>"',$bericht); 
$bericht = preg_replace("/([^s]+@[^s,]+)/",'<a href="mailto:\1">\1</a>',$bericht);

//smilies
$bericht = str_replace("|:(","[img]"img/smilies/wall.gif"[/img]",$bericht); 
$bericht = str_replace(":@","[img]"img/smilies/evil.gif"[/img]",$bericht); 
$bericht = str_replace("#:)","[img]"img/smilies/master.gif"[/img]",$bericht); 
$bericht = str_replace(":?","[img]"img/smilies/ask.gif"[/img]",$bericht); 
$bericht = str_replace(":D","[img]"img/smilies/blink.gif"[/img]",$bericht); 
$bericht = str_replace(":+","[img]"img/smilies/clown.gif"[/img]",$bericht); 
$bericht = str_replace(":X","[img]"img/smilies/grrr.gif"[/img]",$bericht); 
$bericht = str_replace(":)","[img]"img/smilies/happy.gif"[/img]",$bericht); 
$bericht = str_replace(":|","[img]"img/smilies/blind.gif"[/img]",$bericht); 
$bericht = str_replace(":!","[img]"img/smilies/idea.gif"[/img]",$bericht); 
$bericht = str_replace(":r","[img]"img/smilies/kots.gif"[/img]",$bericht); 
$bericht = str_replace(":9","[img]"img/smilies/rollingtongue.gif"[/img]",$bericht); 
$bericht = str_replace(":(","[img]"img/smilies/sad.gif"[/img]",$bericht); 
$bericht = str_replace(":P","[img]"img/smilies/sidetongue.gif"[/img]",$bericht); 
$bericht = str_replace(";)","[img]"img/smilies/wink.gif"[/img]",$bericht); 

// $convertubbnow = "$bericht";

return $bericht;
}


Maar als ik deze 2 tegelijk doe, dan doet het bovenste UBBreplaceImg het niet meer, ik zie dan alleen maar tags van html. Wat moet ik doen om te zorgen dat het wel weer werkt, want ik heb al vanalles geprobeerd.. of ik ben er gewoon niet bij met me hoofd :| nja anyway, kan iemand me helpen?

BTW: deze vraag stond ook op phpfreakz, maar tot nu toe geen resultaat :(

[ Voor 27% gewijzigd door Verwijderd op 12-11-2018 08:55 ]


Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

PHP:
1
$str = str_replace("[/img]","' alt="Klik hier voor een vergroting"></a></div><br />",$str);
Komt dat hier niet door? :?

En zet error_reporting eens op E_ALL; dan had je dit zelf ook wel gevonden....

[ Voor 43% gewijzigd door Spider.007 op 27-12-2003 18:58 ]

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dat snapte ik ook al, :) mer ik weet niet hoe ik deze 2 stukken nou zo moet maken zodat het wel werkt ??

Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

wat snapte je ook al? Kun je wat duidelijker zijn? Begrijp je wat ik als fout aanduidt in de door mij gequote code?

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Spider.007 schreef op 27 december 2003 @ 18:57:
PHP:
1
$str = str_replace("[/img]","' alt="Klik hier voor een vergroting"></a></div><br />",$str);
Komt dat hier niet door? :?

En zet error_reporting eens op E_ALL; dan had je dit zelf ook wel gevonden....
Ik begrijp dat het met die 2 regels te maken heeft, als je die comment dan laat ie dus niet het goede zien.

Maar eerst doet hij dus het plaatje kijken of hij groter als 250px breed is, zo ja, dan verkleint hij hem en komt er een link bij met grotere versie in nieuw window.

Deze regel is het probleem:
PHP:
1
$bericht = htmlspecialchars($bericht);

Dan doet hij het niet meer. Dus nu is mijn vraag: wat moet ik doen zodat mensen geen HTML kunnen posten, maar dat dit scriptje het wel doet?

Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Zelfs de syntax highlighting van GoT onderstreept het probleem; maar aangezien je er tot nu toe ook niet uit bent gekomen zal ik maar gewoon posten wat er in die regel fout gaat; verander
PHP:
1
$str = str_replace("[/img]","' alt="Klik hier voor een vergroting"></a></div><br />",$str);
eens in
PHP:
1
$str = str_replace("[/img]","' alt=\"Klik hier voor een vergroting\"></a></div><br />",$str);

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
neej sorry dat klopt niet.. die stonden er al. dan heeft got ze weggehaald (kan wel door mij komen, maar orgineel staan ze er al)?

[ Voor 70% gewijzigd door Verwijderd op 27-12-2003 19:26 ]


Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Je code is nu wel heel erg bagger; kun je hem in je startpost even editen? En zonder enters ed.. posten :? Heb je trouwens dit wel eens gelezen?

edit: en kijk hier ook eens tussen; daar staat ook heel wat nuttigs in :)

[ Voor 22% gewijzigd door Spider.007 op 27-12-2003 19:34 ]

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Het is toch niet zo dat je eerst plaatjes erin gaat zetten en daarna htmlspecialchars uit gaat voeren :? :'( Het is toch niet zo raar dat je dan de html code te zien krijgt inplaats van het plaatje zelf

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ja ik heb het wel eens gelezen.. btw startpost is aangepast.
maar ik snap er nu helemaal nix meer van :|
het ligt echt aan htmlspecialchars.
maar ze moeten er wel uit, behalve als het om de [img]/[/img] tags gaat. kan dat dat je zeg maar bepaalde uitzonderingen maakt?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ik heb het geprobeerd, maar het maakt niet uit of ik die specialchars bovenaan zet, hij stript nog steeds alles :S:S

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
oke ik neem alles terug :@
ik ben echt een rund :|

maar ja, dan heb ik nog een vraag:

zoals je ziet,
PHP:
1
$bericht = preg_replace("/(?<!=S)(?:(https?://|ftp://|news:|telnet:)|(www.))(S+)/ixe",'"<a href="".(strlen("1") > 0 ? "1" : "http://")."23" target="_blank">123</a>"',$bericht);

staat deze er ook in.. dat zorgt ervoor dat alle links omgezet worden naar klikbare links.

Maar als ik dus in me plaatje [im-g]http://www.url.nl[/im-g] zet, dan zet ie dat ook om, en zit ik nog met een probleem :(:(

kan je me daar ook bij helpen?

[ Voor 28% gewijzigd door Verwijderd op 27-12-2003 19:46 ]


Acties:
  • 0 Henk 'm!

  • SuperRembo
  • Registratie: Juni 2000
  • Laatst online: 20-08 14:36
Tja, knippen en plakken van andermans code werkt niet altijd 1 2 3. Je zal toch een beetje een idee moeten hebben hoe het werkt. Het komt iig niet over alsof je weet wat je aan het doen bent. :{

| Toen / Nu


Acties:
  • 0 Henk 'm!

  • Roa
  • Registratie: December 2002
  • Laatst online: 03-07-2024

Roa

Simpel, begin $bericht = htmlspecialchars($bericht); en daarna alle andere code.

Wat je nu doet is eerst allerlei ubb-codes om laten zetten naar html, om vervolgens alle html eruit te filteren...
SuperRembo schreef op 27 december 2003 @ 20:33:
Tja, knippen en plakken van andermans code werkt niet altijd 1 2 3. Je zal toch een beetje een idee moeten hebben hoe het werkt. Het komt iig niet over alsof je weet wat je aan het doen bent. :{
edit:
idd, en als het dan niet lukt mogen wij de troep opruimen :P

[ Voor 49% gewijzigd door Roa op 27-12-2003 20:35 ]

Research is what I'm doing when I don't know what I'm doing.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ehm... ik zal maar niets zeggen. Mijn eerste vraag ben ik inmiddels uitgekomen. Nu resteerd mij de tweede vraag. Zie vorige post...
Pagina: 1