<br> tag anstatt ENTER
Borni2k
- cgi
hallo leute,
ich habe ein newsscrip geschrieben und mein problem ist jetzt folgendes:
wenn ich ein formular ausfülle (titel, text), ich schreibe im textfeld irgendetwas hin und drücke enter....schreibe wieder etwas drücke enter...usw. Wenn ich den text nur mit leertaste trennen dann schreib er in meine datei ganz normal in eine ZEILE, aber wenn ich enter drücke dann setzt er den jeweiligen text runter z.b.
-------------------------------------
bin der [enter]
hans und lebe in [enter]
Köln
-------------------------------------
das muss aber so aussehen:
-------------------------------------
bin der<br>hans und lebe in<br>Köln.
-------------------------------------
und so sieht meine Add prozedur aus:
-------------------------------------
sub add
{
if ($status eq 'done')
{
✓
if ($time > 0)
{
($Second,$Minute,$Hour,$Month_Day,
$Month,$Year,$Week_Day,$IsDST) = (localtime)[0,1,2,3,4,5,6,8];
if ($Year > 99)
{
$Year = $Year - 100;
if ($Year > 9)
{
$Year = "20$Year";
}
else
{
$Year = "200$Year";
}
}
else
{
$Year = "19$Year";
}
if ($time = 1)
{
$date="$Month_Day.$Months[$Month].$Year";
}
elsif ($time = 2)
{
$date="$Hour:$Minute:$Second $Months[$Month], $Month_Day $Year - ";
}
}
$line = $title."|".$date."|".$text."\n";
open(DATA,"<$data") || print "Cannot open datafile for reading";
while ($riga = <DATA>)
{
push (@news,$riga);
}
close(DATA);
@reversenews = reverse @news;
push (@reversenews, $line);
@news = reverse @reversenews;
$param{'text'} = ~ s/\n/<br>/g;
open(DATA,">$data") || print "Cannot open datafile for writing";
$i = 0;
while ($i < $display)
{
if ($i == ($display -1))
{
chomp $news[$i];
}
print DATA $news[$i];
$i += 1;
}
close(DATA);
print "Content-type: text/html\n\n";
print "$head\n";
print "<table align=center border=0>\n";
print "<tr><td align=center><font face=arial><b>News Added</b></font></td></tr>\n";
print "<tr><td height=10></td></tr>\n";
print "<tr><td><font face=arial>Database updated. Go <a href=$script>back to the menu</a>.</font></td></tr>\n";
print "</table>\n";
print "$foot\n";
}
else
{
✓
print "Content-type: text/html\n\n";
print "$head\n";
print "<table align=center border=0>\n";
print "<form action=$script method=post>\n";
print "<input type=hidden value=add name=action>\n";
print "<input type=hidden value=done name=status>\n";
print "<input type=hidden value=$password name=password>\n";
print "<tr><td align=center><font face=arial><b>Add a news:</b></font></td></tr>\n";
print "<tr><td height=10></td></tr>\n";
print "<tr><td><font face=arial>Titel:</font><br><input type=text name=title size=30></td></tr>\n";
print "<tr><td height=10></td></tr>\n";
print "<tr><td><font face=arial>Nachricht:</font><br><textarea name=text cols=30 rows=10 wrap=virtual></textarea></td></tr>\n";
print "<tr><td height=10></td></tr>\n";
print "<tr><td align=center><input type=submit value=Submit></td></tr>\n";
print "</form></table>\n";
print "$foot\n";
}
}
-------------------------------------
Ich hoffe ihr versteht mein Problem und könnt mir weiterhelfen...
Dank im Vorraus
Borni2k
P.S: habe diesen Beitrag gefunden:
http://www.teamone.de/selfhtml/sfarchiv/1999_2/t03196.htm
aber leider konnte er mir nicht helfen. Vielleicht könnt ihr das ???
hi!
sub add
{
if ($status eq 'done')
{
✓
if ($time > 0)
{
($Second,$Minute,$Hour,$Month_Day,
$Month,$Year,$Week_Day,$IsDST) = (localtime)[0,1,2,3,4,5,6,8];
Das hier:
if ($Year > 99)
{
$Year = $Year - 100;
if ($Year > 9)
{
$Year = "20$Year";
}
else
{
$Year = "200$Year";
}
}
else
{
$Year = "19$Year";
}
wegschmeißen und folgendes schreiben:
$Year += 1900;
if ($time = 1)
Wenn schon, dann:
if ($time == 1)
^--- Vergleichsoperator, keine Zuweisung!
{
$date="$Month_Day.$Months[$Month].$Year";
}
elsif ($time = 2)
dto.
elsif ($time == 2)
{
$date="$Hour:$Minute:$Second $Months[$Month], $Month_Day $Year - ";
}
}
$line = $title."|".$date."|".$text."\n";
Da fehlen "-Zeichen!
open(DATA,"<$data") || print "Cannot open datafile for reading";
open (..) or die "Can't open datefile for reading: $!";
Das hier:
while ($riga = <DATA>)
{
push (@news,$riga);
}
close(DATA);
@reversenews = reverse @news;
push (@reversenews, $line);
@news = reverse @reversenews;
löschen und schreiben:
@news = <DATA>;
unshift @news, $line;
$param{'text'} = ~ s/\n/<br>/g;
Ohne Leerzeichen:
$param{'text'} =~ s/\n/<br>/g;
open(DATA,">$data") || print "Cannot open datafile for writing";
open (..) or die "Can't open datafile for writing: $!";
$i = 0;
while ($i < $display)
{
if ($i == ($display -1))
{
chomp $news[$i];
}
print DATA $news[$i];
$i += 1;
}
close(DATA);
Hm, keine Ahnung, was dieser Block eigentlich machen soll. Ich blicke
da nicht so ganz durch. Warum schreibst du hier im Datafile rum?
[...]
Ich hoffe ihr versteht mein Problem und könnt mir weiterhelfen...
Mach erstmal die Fehler aus deinem Programm raus und versuch es dann
nochmal.
bye, Frank!
tja frank vielen dank, aber es funktioniert nicht !
ich hoffe mir kann jemand anderes dabei helfen wie gesagt brauche ich es unbedingt !
Dank im Vorraus