Avatar billede basic.smurf Nybegynder
06. maj 2003 - 17:27 Der er 6 kommentarer og
1 løsning

php - \" -tegn

Jeg brygger på en side, hvor det skal være muligt at redigere en fil "fil.php" ved at hente med file_get_contents og derefter indsætte det i et textarea og tilsidst for at blive send gennem form - POST og blive gem med oprindeligt filnavn "fil.php". Jeg har fået første del til at fungere fint, men når jeg skal gemme filensindhold (med alle korrekte tegn) vil den ikke gengive " og '?? det vil sige uden \ fordi eksperten.dk også laver "ged" i det. jeg har prøvet med chr() (mener det er 34, 39 og 92 http://www.asciitable.com/)
MEN uden helt... hvad gør jeg??

Scriptet:

    if (empty($_GET['file'])) {
        if (empty($_POST['filedata'])) {

            echo ("<h1>Console</h1><br>Rediger en fil i kataloget<br><br>");
            $dir = path//           
if (is_dir($dir)) {
                if ($dh = opendir($dir)) {
                    while (($file = readdir($dh)) !== false) {
                        print "<a href='index.php?mode=console&file=$file'>$file</a> <br>\n";
                    }
                closedir($dh);
                }
            } else {
                echo "fejl i katalog-string";
            }
        } else {
            $data = $_POST['filedata'];
            $data = ereg_replace ("</text---area>", "</textarea>", $data);

            $filenavn = $_POST['filenavn'];
        //    $ting = chr(92) . chr(34);
        //    $ting2 = chr(92) . chr(39);
        //    $replace = chr(34);
        //    $datating = ereg_replace ($ting, $replace, $data);

        //    $datating = ereg_replace ($ting2, $replace, $datating);

            if (!copy($filenavn, $filenavn.'.bak')) {
                print ("failed to copy $filenavn...<br>\n");
            }
            $fconsole = fopen ("$filenavn", "w");
            fwrite($fconsole, $data);
            fclose($fconsole);
            header("Location: index.php?mode=console");
        }
    } else {
        $file = $_GET['file'];
        $filecontent = file_get_contents ($file);
        $filecontent = ereg_replace ("</textarea>", "</text---area>", $filecontent);
        echo ("<h1>Console</h1>Rediger en fil i kataloget<h2>$file</h2><form method='POST' action='console.php'><textarea rows='16' name='filedata' cols='60'>" . $filecontent . "</textarea><br><br><input type='hidden' value='$file' name='filenavn'><input type='submit' value='Gem fil' name='B1'></form><h2><a href='index.php?mode=console'><-- Tilbage</a></h2>");
    }
} else {
    header("Location: index.php");
}


vh laur
Avatar billede basic.smurf Nybegynder
06. maj 2003 - 17:28 #1
Ok tegnene på eksperten er gode nok:
" og ' (fx. i strings og var mm..)

Jeg venter spændt..
Avatar billede ahv Nybegynder
06. maj 2003 - 17:31 #2
Hvis du godt kan gemme med \, hvorfor så ikke gøre dette også i udtrækket lave stripslashes?
Avatar billede basic.smurf Nybegynder
06. maj 2003 - 17:35 #3
OK... Problemet er, at når jeg gemmer mit php-indhold med echo("jddh"); osv. vil de blive gemt i filen som echo(\"jddh\"); og derved vil php-koden ikke virke... hvordan gemmer man uden \" og \' tegn??
laur
Avatar billede ahv Nybegynder
06. maj 2003 - 17:38 #4
prøv at strippe slaches inde du indsætter.

altså inden du indsætter så prøv:

$data = stripslashes($data);
Avatar billede ahv Nybegynder
06. maj 2003 - 17:46 #5
$fconsole = fopen ("$filenavn", "w");
            $data = stripslashes($data);
            fwrite($fconsole, $data);
            fclose($fconsole);
            header("Location: index.php?mode=console");
Avatar billede basic.smurf Nybegynder
06. maj 2003 - 18:20 #6
Mange tak for den hurtige hjælp..
jeg er helt oppe at køre lige nu!! jeg tror jeg brugte 3 timer i går på at fixe det; uden held..
TAk
basic.smurf
Avatar billede ahv Nybegynder
06. maj 2003 - 18:21 #7
Du er velkommen.
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