Avatar billede steen-h Mester
01. august 2009 - 16:43 Der er 12 kommentarer og
1 løsning

Mellemrum linjeskift Overlib

Jeg bruger overlib til at vise en omtale.

Hvis jeg henter teksten fra databasen og der er brugt linjeskift virker det ikke.

Hvis der i database står:

Dette er en test
virke det fint

Men hvis der står:

Dette er
en test
Virker det ikke

Hvis jeg indsætter med nl2br bliver linjeskiftet selvfølgelig lavet om til <br \> men der er stadig mellemrummet  efter linjen

Dette er<br\> en test
virke det fint

Dette er<br\>
en test
Virker det ikke


Er der nogle som forstår hvad jeg mener og som kan hjælpe.
Avatar billede repox Seniormester
01. august 2009 - 17:06 #1
Jeg tror vi bliver nød til at se scriptet der ikke virker i aktion.
Avatar billede steen-h Mester
01. august 2009 - 17:21 #2
Hej er siden
http://stenbjergbryghus.dk/?p=link.php

Test linket er der brugt linjeskift
Avatar billede steen-h Mester
01. august 2009 - 18:20 #3
<a onmouseover="return overlib('<?php echo $links['omtale']?>', MOUSEOFF, CAPTION, 'Omtale af linket', CLOSETEXT, '');" onmouseout="nd();" href="<?php echo $links['url']; ?>" target="_blank"><?php echo $links['description'] ?></a>
Avatar billede steen-h Mester
01. august 2009 - 18:25 #4
Her kommer resten

function str2db($str)
{
  if (function_exists('mysql_real_escape_string'))
    return mysql_real_escape_string($str);
  else
    return mysql_escape_string($str);
}

  mysql_query("INSERT INTO ".$config['table_links']." (description, url, type, omtale) values ('".str2db($_POST['description'])."', '".str2db($_POST['url'])."', '".str2db($_POST['linkgroup'])."', '".str2db($_POST['linkbeskriv'])."')");
Avatar billede repox Seniormester
01. august 2009 - 18:29 #5
For mig ser der ud som om du har et eller andet særligt tegn med, som ikke bliver escapet - men det er svært lige at vurdere hvad det er for et tegn.
Hvor bruger du nl2br() henne?
Avatar billede steen-h Mester
01. august 2009 - 18:39 #6
nl2br har jeg prøvet istedet for str2db
Avatar billede steen-h Mester
01. august 2009 - 18:46 #7
Jeg fandt dette under java script

http://www.eksperten.dk/spm/556553

se #9
Avatar billede repox Seniormester
01. august 2009 - 19:35 #8
Prøv lige at gøre sådan her her, istedet:

<a onmouseover="return overlib('<?php echo nl2br($links['omtale'])?>', MOUSEOFF, CAPTION, 'Omtale af linket', CLOSETEXT, '');" onmouseout="nd();" href="<?php echo $links['url']; ?>" target="_blank"><?php echo $links['description'] ?></a>
Avatar billede steen-h Mester
01. august 2009 - 20:20 #9
Det hjælper ikke noget, det er ikke linjeskiftet som er problemet, det er mellemrummet i tekststrengen.
Avatar billede steen-h Mester
01. august 2009 - 20:31 #10
Dette virker:

<a onmouseover="return overlib('<?php echo 'Dette virker<br\>fint' ?>', MOUSEOFF, CAPTION, 'Omtale af linket', CLOSETEXT, '');" onmouseout="nd();" href="<?php echo $links['url']; ?>" target="_blank"><?php echo $links['description'] ?></a>

Det gør dette ikke:

<a onmouseover="return overlib('<?php echo 'Dette virker<br\>
ikke' ?>', MOUSEOFF, CAPTION, 'Omtale af linket', CLOSETEXT, '');" onmouseout="nd();" href="<?php echo $links['url']; ?>" target="_blank"><?php echo $links['description'] ?></a>

Teksten som ikke udskrives er delt over 2 linjer.
Avatar billede repox Seniormester
01. august 2009 - 20:54 #11
Jeg tror dine linieskift er NLCR istedet for NL alene. nl2br() udskifter kun NL med <br />

Du må prøve noget ala

function my_nl2br($string)
{
    $nlcr = array("\n", "\r");
    $repl = array("<br />", "");

    $string = str_replace($nlcr, $repl, $string);
    return $string;
}


og så bruge den istedet for nl2br().
Avatar billede steen-h Mester
01. august 2009 - 21:09 #12
Det virker perfekt.

Mange tak for hjælpen repox, læg et svar.
Avatar billede repox Seniormester
01. august 2009 - 21:11 #13
Det fik du her.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester