Avatar billede allandk Nybegynder
11. februar 2003 - 17:29 Der er 9 kommentarer og
1 løsning

hvordan hindrer jeg \\ og mellemrum x 2 ved fopen/fput?

Jeg har et udemærket åbn-txtfil-og-gem-igen-med-nyt-indhold-script, men desværre så smider den \ ind foran alle mine " og desuden lægger den en ekstra linje til, dvs. at bare 6 redigeringer resulterer i:


<p align=\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"center\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\">








Næste linje kommer hernede...








Og her kommer endnu en.

Kan man hindre det?

Jeg har prøvet med add- og stripslashes, men det ikke videre godt.

Her følger koden for en sikkerheds skyld:

<?php
global $submit;
if ($submit) {
header("Location:red.php");

$indhold = "redigerfil.php";
//$indhold = addslashes($indhold);
$skrivtil = stripslashes(fopen($indhold, "w"));
fputs($skrivtil, $nytindhold);
fclose($skrivtil);
}
?>

<html>
<head>
<title>Rediger en txt-fil</title>
</head>

<body>

<center>

<form action="red.php" method="post">

<table border="4" bordercolor="black" cellpadding="12" cellspacing="0"><tr>
    <th class="blue"><span class="big">Rediger txtfil</span></th>
    </tr>
    <tr>
        <td valign="top" align="center" nowrap>Indtast nyt indhold, og klik på "opdater"<br><br>
        <textarea name="nytindhold" cols="56" rows="16"><?php readfile("redigerfil.php"); ?></textarea><br><br>
        <input type="submit" name="submit" value="Opdater"></td>
    </tr>
    <tr>
    <th colspan="2" class="blue"><span class="small">&nbsp;</span></th>
    </tr>
</table>

</body>
</html>
Avatar billede ahv Nybegynder
11. februar 2003 - 17:34 #1
Det er denne linie der tilføjer \ foran ' og "

$indhold = addslashes($indhold);
Avatar billede allandk Nybegynder
11. februar 2003 - 17:51 #2
Men jeg prøvet - som vist ovenfor - at demarkere den. Det gør ingen forskel.
Avatar billede ahv Nybegynder
11. februar 2003 - 20:38 #3
Lokalt kan jeg heller ikke få det til at fungere, der laver den, det samme *pis* som den gør ved dig nu.

Men hvis jeg ligger det ud et andet sted, såe, så fungere det 100% ?!?
Avatar billede schaefner Juniormester
11. februar 2003 - 20:39 #4
Den her virker hos mig:
<?php
if (isset($_POST['submit'])) {
    $tekst = stripslashes($_POST['tekst']);
    $fil = "fil.txt";
    $letswrite = fopen($fil, "w");
    fwrite($letswrite, $tekst);
    fclose($letswrite);
    header("location: rediger.php");
}
?>
<html>
<head></head>

<body>

<form action="rediger.php" method="post">
<textarea name="tekst" cols="56" rows="16"><?php readfile("fil.txt"); ?></textarea><br><br>
<input type="submit" name="submit" value="Opdater"></td>
</form>

</body>
</html>
Avatar billede schaefner Juniormester
11. februar 2003 - 20:40 #5
Avatar billede alta Nybegynder
11. februar 2003 - 21:39 #6
Hmm, knaldet!

Jeg har testet din version på disneyzone og det virker perfekt. Jeg har downloadet dit eksempel ovenfor og den gemmer også uden \, men den føjer sågu stadigvæk ekstra mellemrum til...

Er det ikke mærkeligt?
Avatar billede alta Nybegynder
11. februar 2003 - 21:40 #7
Anyway, dit eksempel virker som sagt perfekt - bare ikke hos mig :-(

Smider du et svar?
Avatar billede ahv Nybegynder
11. februar 2003 - 21:46 #8
Hmm alta, det er allandk der har oprettet dette spm. og nu lyder du som om du ejer det?

Desuden har schaefner smidt et svar.
Avatar billede alta Nybegynder
11. februar 2003 - 21:50 #9
Undskyld jeg blandede mig - jeg prøvede det bare også :-)
Avatar billede allandk Nybegynder
11. februar 2003 - 21:56 #10
>> schaefner: Tak for hjælpen, det virker på min server (http://www.allan.dk/div/red/index.php)

ab:)
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