• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

schreibt statt " \"

Status
Für weitere Antworten geschlossen.

clemo

Neues Mitglied
hi
ich habe mir eine wiki geschrieben
so wird der text in die TXT datei geschrieben!
PHP:
$dateiname = "./includes/site/WIKI_topics/" . $_GET['wiki'] . '/' . $_GET['name'] . '.txt';
 $handler = fOpen($dateiname, "a+");
 fWrite($handler, $_GET['text']); 
 fClose($handler);
   echo "Wiki erstellt <a href=\"?site=wiki&topic=" . $_GET['name'] . "\">weiter</a>";
 chmod ("./includes/site/WIKI_topics/" . $_GET['wiki'] . "/" . $_GET['name'] . '.txt' , 0777);


was mach ich falsch? denn wenn ich ein " ein \" reingeschrieben wird!?


lg
clemo
 
denn wenn ich ein " ein \" reingeschrieben wird!?
Ich verstehe nicht, was Du da schreibst. Ich würde Dir dringend empfehlen in Deinen Beiträgen die Vorschaufunktion zu nutzen und nochmal zu lesen, was da steht. Manchmal sind Deine Beiträge einfach nicht verständlich.

Gruß thuemmy
 
naja das problem is ganz einfach
ich schreibe ein PHP code in das formular und der im ersten Beitrag gepostet hat in eine txt datei

ich schreib z.b.
<?php
basename(".\ordner\file.txt");
?>


das mini-script ist jedoch
<?php
basename(\".\ordner\file.txt\");
?>

also vor jedem " ein \ = \"
 
Es gibt einen Funktion, die sucht und ersetzt.
PHP:
str_replace("Suchen", "Ersetzen", $variable)
. Also in deinem Beispiel
PHP:
str_replace("\"","\\"",$text)
 
sorry ganz checken tu ich's noch immer nicht


PHP:
echo str_replace("\"","\\"","<pre>" . htmlentities(file_get_contents("./includes/site/WIKI_topics/" . $_GET['wiki'] . "/" . $_GET['topic'] . ".txt")) . "</pre>", 133, "<br />\n") ;


was ist da falsch ich kann den fehler nicht finden

lg
clemo
 
Vielleicht musst du doch noch ein \ einbauen (eins um das \ zu escapen, eins um \ darzustellen und noch eins um das " zu escapen
Versuchs mal so
PHP:
echo str_replace("\"","\\\"","<pre>" . htmlentities(file_get_contents("./includes/site/WIKI_topics/" . $_GET['wiki'] . "/" . $_GET['topic'] . ".txt")) . "</pre>", 133, "<br />n") ;
 
atal error: Only variables can be passed by reference in C:\xampp\htdocs\includes\site\wiki.php on line 71


ich kappier nicht was falsch ist!

hab jetzt den code genommen den
Lenchen mir geposted hat
 
PHP: basename - Manual
basename - Returns filename component of path.
Willheißen: Du bekommst den Dateinamen OHNE Pfad!

PHP: Strings - Manual

Schau dir das mal an... Hier sind Escaped characters aufgelistet. Da du in deinem Pfad "\file.txt" hast, wird das \f darin als excape charakter interpretiert.

basename(".\ordner\file.txt") = .\ordner ile.txt
basename("./ordner/file.txt") = file.txt

Die Löstung deines Problems ist ganz einfach:
Schreib in Pfaden grundsätzlich Slash (/) und kein Backslash (\). Es seitden du willst ganz bewusst einen escape charakter benutzen.
 
Zuletzt bearbeitet:
PHP: basename - Manual
basename - Returns filename component of path.
Willheißen: Du bekommst den Dateinamen OHNE Pfad!

PHP: Strings - Manual

Schau dir das mal an... Hier sind Escaped characters aufgelistet. Da du in deinem Pfad "\file.txt" hast, wird das \f darin als excape charakter interpretiert.

basename(".\ordner\file.txt") = .\ordner ile.txt
basename("./ordner/file.txt") = file.txt

Die Löstung deines Problems ist ganz einfach:
Schreib in Pfaden grundsätzlich Slash (/) und kein Backslash (\). Es seitden du willst ganz bewusst einen escape charakter benutzen.


was?
ich hab im pfard nur / und keine \ !!
 
ich schreib z.b.
<?php
basename(".\ordner\file.txt");
?>


das mini-script ist jedoch
<?php
basename(\".\ordner\file.txt\");
?>

also vor jedem " ein \ = \"
Ich hab deinen "Backslash-Pfad" mal rot gemacht...

sorry ich komm nicht mit ich schreibe / für pfarde!!

wenn ich ins formular aber z.b.
echo "hi";
hineinschreibe dann wir in die .txt datei
echo \"hi\";
gespechert!!

Nun würd mich interessieren, wie man mit echo etwas in eine Datei schreibt. Ich kenne das eher mit PHP: fwrite - Manual

Du solltest mal lernen deine Probleme richtig zu beschreiben, dann bekommst du vielleicht auch schneller eine Lösung und nicht 5 falsche Lösungen von Usern, die deine Problembeschreibung falsch verstanden haben.
 
Zuletzt bearbeitet:
Ich hab deinen "Backslash-Pfad" mal rot gemacht...



Nun würd mich interessieren, wie man mit echo etwas in eine Datei schreibt. Ich kenne das eher mit PHP: fwrite - Manual

Du solltest mal lernen deine Probleme richtig zu beschreiben, dann bekommst du vielleicht auch schneller eine Lösung und nicht 5 falsche Lösungen von Usern, die deine Problembeschreibung falsch verstanden haben.




ok ja das war ein beispiel wo ich mich vertan habe aber das hat ja nichts mit dem zu tun


ich schreib ja ins formular irgendwie ein " und angezeigt wird an der stelle ein \" und\" steht auch in der txt datei drinnen obwohl ich ein " reinschreib
 
gerne

eig. hab ichs schon (erster beitrag!)aber ok

PHP:
//erstellen der TXT datei

$file = "./includes/site/WIKI_topics/" . $_GET['wiki'] . '/' . $_GET['name'] . '.txt';

if(is_file($file)){
  echo "thema existiert schon";
}else{
 $dateiname = "./includes/site/WIKI_topics/" . $_GET['wiki'] . '/' . $_GET['name'] . '.txt';
 $handler = fOpen($dateiname, "a+");
 fWrite($handler, $_GET['text']); 
 fClose($handler);
   echo "Wiki erstellt <a href=\"?site=wiki&topic=" . $_GET['name'] . "\">weiter</a>";
 chmod ("./includes/site/WIKI_topics/" . $_GET['wiki'] . "/" . $_GET['name'] . '.txt' , 0777);
}
 
$_GET, $_POST usw. werden mit addslashes() escaped, damit der unbedarfte Benutzer wenigstens ein wenig vor SQL Injections usw. geschützt ist. Das ganze nennt sich Magic Quotes (siehe oben) und kann nicht während der Laufzeit verändert werden. Lösungen dafür gibt auch der oberer Link.
 
Status
Für weitere Antworten geschlossen.

Neueste Beiträge

Zurück
Oben