Permalänk
Medlem

Krångel med blanksteg och mySQL

Jag har stött på ett smått irriterande problem som jag hoppas att någon här kunde hjälpa till med. Det är så att jag har en sida där viss text går att uppdatera via ett vanligt formulär som sedan skickas in i en databas. Problemet jag har är att när denna text sedan tas ut ur databasen och visas så har det helt automagiskt dykt upp en radbrytning följt av 12st blanksteg i slutet på texten.

Det är inte så farligt i sig, men för att man ska veta vad man ska ändra så skickar jag ut den gammla texten i textarean i formuläret, vilket gör att detta händer om och om igen för varje gång man redigerar denna text om man inte kommer ihåg att ta bort detta (vilket långt ifrån alla som använder det hela gör). En ny radbrytning med 12 nya blanksteg läggs på den gamla med andra ord, vilket efter ett par gånger blir rätt mycket tomt utrymme med radbrytning -> 12 blanksteg om och om igen i slutet på texten. Det jag behöver är ett sätt att få bort detta.

Formuläret:

<form method='post' action='data/sidamedkod.php'> <span class='title_sub'>Titel:</span><br /> <input name='title' type='text' class='form_title' maxlength='128' value='<?php echo($irow['title']); ?>' /><br /> <span class='title_sub'>Text:</span><br /> <textarea name='text' class='form_text'><?php echo($irow['text']); ?></textarea><br /> <div class='text_right'><input type='submit' value='Spara ändringar' class='forum_form_btn' /></div> <input name='id' type='hidden' value='<?php echo($id); ?>' /> </form>

Koden för uppdateringen:

$id == mysql_real_escape_string($_POST['id']); $title == mysql_real_escape_string($_POST['title']); $text == mysql_real_escape_string($_POST['post']); mysql_query("UPDATE `" . $pref . "_text` SET title = '" . $title . "', text = '" . $text . "' WHERE `id` = '" . $id . "'");

Jag har testat att googla efter det och sökt på en del forum, men jag kommer inte på någon bra formulering så jag har inte lyckats hitta någonting, iallafall inte någonting som hjälper.

Visa signatur

Xbox Live - Firaphex
Jag har inte alltid rätt, men jag utgår från det tills jag ser bevis på annat. Citera för svar
2008-06-18, Dagen då integriteten ställdes tå mot tå med maktmissbruket och förlorade.

Permalänk
Medlem

Kan inte kommentera själva problemet på en gång, men en varför inte göra en trim($text) innan du trycker in det i databasen. Den plockar ju bort avslutande mellanslag, tabbar och enterslag i slutet och början på strängen. Det är ju sällan man bryr sig om dem där.

Finns ju rtrim() också om du bara vill bry dig om högersidan.

Länk till trim() [php.net]

//C

Permalänk
Medlem

En sund idé. Tackar
Funkar verkar det också göra, dock vore det trevligt att veta vad felet egentligen är. Så som det blev med hjälp av trim() så stackar inte blankstegen på varandra något mer, vilket läser problemet, men när texten skall uppdateras så är ändå radbrytningen och blankstegen där igen, även om de sen inte skrivs med i databasen...

Det är ju egentligen löst med trim(), jag sitter mest och stör mig på att jag itne vet vad det egentliga felet är nu.

Visa signatur

Xbox Live - Firaphex
Jag har inte alltid rätt, men jag utgår från det tills jag ser bevis på annat. Citera för svar
2008-06-18, Dagen då integriteten ställdes tå mot tå med maktmissbruket och förlorade.