/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
DB - Textarea, linjerned problem.. HJÆLP!
Fra : Ralle


Dato : 07-11-06 19:44

Hejsa..

Jeg har gjordt sådan så man kan skrive noget text i et text area,
og så ligge det ind i DB, så kan man hente text'en igen i
textarea'et, og man kan jo godt lave 2 linjer ned i et text area,
fx.

dette er 2 linjer længere nede.

Men så når man gemmer det, og opdaterer, så er der ikk de 2
linjer ned, der er intet. hjælp!

filerne der er brugt kan i se her: video.enzolim.dk/20/phps/

(der kommer ingen fejl meddelelse!)

Ralle

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Sophus Nørgaard (07-11-2006)
Kommentar
Fra : Sophus Nørgaard


Dato : 07-11-06 19:57

Ralle skrev:
> Hejsa..
>
> Jeg har gjordt sådan så man kan skrive noget text i et text area,
> og så ligge det ind i DB, så kan man hente text'en igen i
> textarea'et, og man kan jo godt lave 2 linjer ned i et text area,
>
> Men så når man gemmer det, og opdaterer, så er der ikk de 2
> linjer ned, der er intet. hjælp!

str_replace("\n", "<br />", $variabel_du_har_textarea_dataene_i);

Og når du trækker dataene ud igen:

str_replace("&lt;br /&gt;", "<br />", $variabel_du_har_textarea_dataene_i);

Så skulle den lave de ønskede mellemrum :)

Derudover bør du nok køre det du vil sætte ind i databasen igennem
mysql_real_escape_string() for at undgå SQL injection.

--
Sophus Nørgaard
SophusFJERNnDETTE@gmail.com

Martin (08-11-2006)
Kommentar
Fra : Martin


Dato : 08-11-06 08:41

Sophus Nørgaard wrote:
> Ralle skrev:
>
>> Hejsa..
>>
>> Jeg har gjordt sådan så man kan skrive noget text i et text area,
>> og så ligge det ind i DB, så kan man hente text'en igen i
>> textarea'et, og man kan jo godt lave 2 linjer ned i et text area,
>>
>> Men så når man gemmer det, og opdaterer, så er der ikk de 2
>> linjer ned, der er intet. hjælp!
>
>
> str_replace("\n", "<br />", $variabel_du_har_textarea_dataene_i);

Mon ikke det ville være meget nemmere at bruge:
echo nl2br($variabel_du_har_textarea_dataene_i);

>
> Og når du trækker dataene ud igen:
>
> str_replace("&lt;br /&gt;", "<br />", $variabel_du_har_textarea_dataene_i);

function br2nl($text) {
return preg_replace('/<br\\\\s*?\\/??>/i', "\\n", $text);
}

echo br2nl($variabel_du_har_textarea_dataene_i);


>
> Så skulle den lave de ønskede mellemrum :)
>
> Derudover bør du nok køre det du vil sætte ind i databasen igennem
> mysql_real_escape_string() for at undgå SQL injection.
>

Jesper Brunholm (08-11-2006)
Kommentar
Fra : Jesper Brunholm


Dato : 08-11-06 11:20

Martin skrev:
>> Og når du trækker dataene ud igen:
>>
>> str_replace("&lt;br /&gt;", "<br />",
>> $variabel_du_har_textarea_dataene_i);
>
> function br2nl($text) {
> return preg_replace('/<br\\\\s*?\\/??>/i', "\\n", $text);
> }

Hvorfor vil du hellere køre preg_replace end str_replace, det er da bare
tungere, eller du har måske en ekstra pointe med udtrykket?

mvh

Jesper Brunholm

Martin (08-11-2006)
Kommentar
Fra : Martin


Dato : 08-11-06 12:53

Jesper Brunholm wrote:
> Martin skrev:
>
>>> Og når du trækker dataene ud igen:
>>>
>>> str_replace("&lt;br /&gt;", "<br />",
>>> $variabel_du_har_textarea_dataene_i);
>>
>>
>> function br2nl($text) {
>> return preg_replace('/<br\\\\s*?\\/??>/i', "\\n", $text);
>> }
>
>
> Hvorfor vil du hellere køre preg_replace end str_replace, det er da bare
> tungere, eller du har måske en ekstra pointe med udtrykket?

JA da, der er altid en dybere mening. :)

str_replace("&lt;br /&gt;","<br />",$var);

ændrer jo KUN <br /> men hvad nu med <br> <br/> <br /> fx ? :)


Desuden så er preg_replace altså heller ikke specielt langsomt -
selvfølgelig hvis vi kommer over et par mega byte tekst - men hvem har
også så meget tekst på samme side?

Selvfølgelig kan det jo være at det skal bruges noget database, meeen så
burde man nok overveje at bruge databasens eget preg system (som MySQL,
PostgreSQL, MSSQL osv. har)

>
> mvh
>
> Jesper Brunholm

Ralle (08-11-2006)
Kommentar
Fra : Ralle


Dato : 08-11-06 20:50

Det virker ikk helt som det skal! det med textarea'et virker, men når jeg skal
vise det som text (i senews.php) så er siden blank..

senews.php:

<?

require("config.php");


// Åbn databasen
aabn_forbindelse_og_vaelgdb();

function br2nl($text) {
return preg_replace('/<br\\\\s*?\\/??>/i', "\\n", $text);
}

$site_query = 'SELECT sitename FROM newstabel';

$site = sql_spoerg_og_faa_svar($site_query);

$sitename = $site[0][sitename];

$text = ''.$sitename.'';

echo br2nl($text);

?>

Nogle der kan hjælpe med At finde fejlen??

Ralle - ;D

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Martin Mouritzen (08-11-2006)
Kommentar
Fra : Martin Mouritzen


Dato : 08-11-06 21:43

On 08 Nov 2006 19:50:05 GMT, Ralle <ralle_rass@hotmail.com> wrote:

>$sitename = $site[0][sitename];

Det er pænere og mere korrekt at skrive $site[0]["sitename"];

>$text = ''.$sitename.'';

Det her behøver du altså ikke.

>Nogle der kan hjælpe med At finde fejlen??

Det er ret svært at gennemskue noget i din kode, når du bruger
funktioner som du ikke skriver her.

Men, du skal lære at debugge, prøv at udskriv variabler løbende, så du
kan se hvad de indeholder.

f.eks.

print "Test: ".$site[0]["sitename"];

eller

print_r($site);

lige efter du har lavet din database-forespørgsel, og se om dit array
overhovedet indeholder noget.

--
Med venlig hilsen,
Martin Mouritzen.
http://www.siteloom.dk

Ralle (09-11-2006)
Kommentar
Fra : Ralle


Dato : 09-11-06 17:39

> >$sitename = $site[0][sitename];
>
> Det er pænere og mere korrekt at skrive $site[0]["sitename"];
>
> >$text = ''.$sitename.'';
>
> Det her behøver du altså ikke.
>
> >Nogle der kan hjælpe med At finde fejlen??
>
> Det er ret svært at gennemskue noget i din kode, når du bruger
> funktioner som du ikke skriver her.
>
> Men, du skal lære at debugge, prøv at udskriv variabler løbende, så du
> kan se hvad de indeholder.
>
> f.eks.
>
> print "Test: ".$site[0]["sitename"];
>
> eller
>
> print_r($site);
>
> lige efter du har lavet din database-forespørgsel, og se om dit array
> overhovedet indeholder noget.
>

print_r($site); giver: Array ( [0] => Array ( [sitename] => Test TEST! )
[1] => Array ( [sitename] => Test ) )

og

print "Test: ".$site[0]["sitename"]; gav: Test: Test TEST!

hvor det skulle have givet:
Test: Test

TEST!

altså med mellemrum.. og mine funktioner er: config.php ->

<?php
/*
* Titel : MySQL abstraktion
* Version : $Id: config.php
*/

$table = "newstabel";

function aabn_forbindelse_og_vaelgdb() {
$server = "db_host";
$bruger = "db_brugernavn";
$kodeord = "db_passowrd";
$database = "db_database";

if (!mysql_connect("$server","$bruger","$kodeord")) {
udskriv_fejl("Counldt Connect To The MySQL.");
}

if(!mysql_select_db("$database")) {
udskriv_fejl("Couldent Select a Database: $database");
}
}


function sql_spoerg_og_faa_svar($query) {
$resultat = mysql_query($query);

if(!$resultat) {
udskriv_fejl("Couldnt done: <em>$query</em>");
}

while($raekke = mysql_fetch_assoc($resultat)) {
$resultat_array[] = $raekke;
}

return $resultat_array;
}

function sql_spoerg($query) {
$resultat = mysql_query($query);

if(!$resultat) {
udskriv_fejl("coldent done: <em>$query</em>");
}
}

function luk_forbindelse() {
if(!mysql_close()) {
udskriv_fejl("couldnt close the connection to MySQL!");
}
}

function udskriv_fejl($fejl) {
echo "<p>$fejl";

if ($mysql_fejl = mysql_error()) {
echo "<br>The Fail Is: <em>$mysql_fejl</em>";
}

exit;
}


?>

kan i finde nogle fejl??

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Martin Mouritzen (09-11-2006)
Kommentar
Fra : Martin Mouritzen


Dato : 09-11-06 19:14

On 09 Nov 2006 16:39:03 GMT, Ralle <ralle_rass@hotmail.com> wrote:

>print "Test: ".$site[0]["sitename"]; gav: Test: Test TEST!
>
>hvor det skulle have givet:
>Test: Test
>
>TEST!
>
>altså med mellemrum.<snip>

Så bruger du funktionerne forkert, i stedet for at bruge din br2nl,
skal du bruge nl2br() funktionen, som laver linieskift om til <br>
tegn, lige nu gør du det omvendte.

prøv at sæt nedenstående linie ind:

print nl2br($site[0]["sitename"]);

--
Med venlig hilsen,
Martin Mouritzen.
http://www.siteloom.dk

Ralle (10-11-2006)
Kommentar
Fra : Ralle


Dato : 10-11-06 19:19

tusind tak!

Nu kan jeg begynde at prøve at lave mit eget content management
aktige system.. ;D

alot of work + alot of quiestions = Good job!

Tak endnu engang!

:D

Ralle

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jesper H (07-11-2006)
Kommentar
Fra : Jesper H


Dato : 07-11-06 22:49


Ralle skrev:
> Hejsa..
>
> Jeg har gjordt sådan så man kan skrive noget text i et text area,
> og så ligge det ind i DB, så kan man hente text'en igen i
> textarea'et, og man kan jo godt lave 2 linjer ned i et text area,
> fx.
>
> dette er 2 linjer længere nede.
>
> Men så når man gemmer det, og opdaterer, så er der ikk de 2
> linjer ned, der er intet. hjælp!
>
> filerne der er brugt kan i se her: video.enzolim.dk/20/phps/
>
> (der kommer ingen fejl meddelelse!)
>
> Ralle
>
> --
> Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
> - Pædagogiske tutorials på dansk
> - Kom godt i gang med koderne
> KLIK HER! => http://www.html.dk/tutorials

Alm. HTML viser ikke linieskift ( \n ), men bruger <br />. Du kan
sådan set nøjes med at bruger nl2br() funktionen på outputtet fra
din database, når du skal vise det.
http://dk.php.net/nl2br

Overvej også at kigge på
http://dk.php.net/get_magic_quotes_gpc
mht. sikkerhed (SQL-et-eller-andet)

Mvh Jesper
--
http://fdf.dk/landsdel1/
http://www.123hjemmeside.dk/galleri-tili/


Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste