php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 26.01.2012, 08:04  
Neuer Benutzer
 
Registriert seit: 26.01.2012
Beiträge: 7
PHP-Kenntnisse:
Anfänger
Jan102 befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] & Zeichen beim Speichern

Hallo,

Ich bin gerade dabei einen kleinen Online-Editor zu schreiben. Er funktioniert im Moment fehlerfrei bis auf eine kleine Sache. Sobald ich versuche eine Datei zu speichern, die ein "&" enthält, funktioniert es nicht. Ich habe schon versucht das Zeichen vor dem speichern zu ersetzen, allerdings ohne Erfolg.

PHP-Code:
$inhalt $_POST['inhalt'];
$ergebnis explode('<|!|>'$inhalt);
$file=fopen($ergebnis[1],"w+");
fclose($file);
//Leert die Datei
$handler fopen($ergebnis[1], "w+");

$ergebnis[0] = utf8_decode($ergebnis[0]);
$umlaute = array("/ä/","/ü/","/ö/","/Ä/","/Ü/","/Ö/","/ß/""/&/");
$ersetzen = array("ae","ue","oe","Ae","Ue","Oe","ss""&amp;");
$ergebnis[0] = preg_replace($umlaute$ersetzen$ergebnis[0]);
$ergebnis[0] = utf8_encode($ergebnis[0]);

fwrite($handler$ergebnis[0]);
echo 
$ergebnis[0];
fclose($handler); 
Schonmal ein Danke im Vorraus.

MfG Jan

Geändert von Jan102 (26.01.2012 um 08:13 Uhr).
Jan102 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 26.01.2012, 08:18  
Erfahrener Benutzer
 
Registriert seit: 28.05.2008
Beiträge: 2.094
PHP-Kenntnisse:
Fortgeschritten
rudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nett
Standard

PHP-Code:
$ergebnis[0] = utf8_decode($ergebnis[0]); 
$umlaute = array("/ä/","/ü/","/ö/","/Ä/","/Ü/","/Ö/","/ß/""/&/"); 
$ersetzen = array("ae","ue","oe","Ae","Ue","Oe","ss""&amp;"); 
$ergebnis[0] = preg_replace($umlaute$ersetzen$ergebnis[0]); 
$ergebnis[0] = utf8_encode($ergebnis[0]); 
Warum so kompliziert? Wenn du eh utf8 speichern willst, versteh ich nicht, wieso du die Umlaute ersetzen möchtest? Wieso validierst du keine Inhalte? Dateinamen sollten nicht ausschließlich vom post request her bestimmt werden!

Zitat:
PHP-Code:
echo $ergebnis[0].; 
In der vorletzten Zeile hast du einen syntax Fehler - Punkt vor Strichpunkt.

Dein bisheriges Script läßt sich ordentlich abkürzen:

PHP-Code:
list($content$action) = explode('<|!|>'$_POST['inhalt']);
switch(
$action) {
    case 
"foo":
        
$filename ="index.txt";
        break;
// ...
}
file_put_contents$filename$content ); // rückgabe checken, fehlerbehandung, wenn nicht gespeichert..
echo $content
Grüße
__________________
++++ Wieder einer ins Netz gegangen: Phishers Fritz zufrieden ++++
Blog
rudygotya ist offline   Mit Zitat antworten
Alt 26.01.2012, 08:30  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Ich denke so würde schon reichen
PHP-Code:
$postContent explode'<|!|>'$_POST['inhalt'] );
$fileContent htmlspecialchars$postContent[0] );

file_put_contents$fileName$fileContent ); 
Ich wüßte nicht, warum es da Probleme mit Umlauten (korrekte Zeichenkodierung vorrausgesetzt) bzw. & geben soll...
__________________
Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
Albert Einstein
Arne Drews ist offline   Mit Zitat antworten
Alt 26.01.2012, 08:37  
Neuer Benutzer
 
Registriert seit: 26.01.2012
Beiträge: 7
PHP-Kenntnisse:
Anfänger
Jan102 befindet sich auf einem aufstrebenden Ast
Standard

Ich habe gerade beide Lösungsvorschläge ausprobiert. Das Speichern klappt, aber immernoch nicht mit &- Zeichen...

Also als weitere Info: Beim Speichern wird der Inhalt eines Textfeldes per Ajax übertragen.
Jan102 ist offline   Mit Zitat antworten
Alt 26.01.2012, 08:44  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Dann gilt es für Dich per Debugging herauszufinden, wo es scheitert. Ich kann mir nicht vorstellen, daß eine txt Probleme haben sollte ein & zu speichern...
__________________
Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
Albert Einstein
Arne Drews ist offline   Mit Zitat antworten
Alt 26.01.2012, 08:48  
Erfahrener Benutzer
 
Benutzerbild von jspit
 
Registriert seit: 19.08.2011
Beiträge: 701
PHP-Kenntnisse:
Anfänger
jspit wird schon bald berühmt werden
Standard

Ich würd mir mal das komplette $_POST ausgeben lassen. Womöglich liegt das Problem auf der Clientseite (Ajax).
jspit ist offline   Mit Zitat antworten
Alt 26.01.2012, 08:49  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Daher:
Zitat:
Dann gilt es für Dich per Debugging herauszufinden, wo es scheitert.
__________________
Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
Albert Einstein
Arne Drews ist offline   Mit Zitat antworten
Alt 26.01.2012, 09:07  
Neuer Benutzer
 
Registriert seit: 26.01.2012
Beiträge: 7
PHP-Kenntnisse:
Anfänger
Jan102 befindet sich auf einem aufstrebenden Ast
Standard

Also sobald ein & enthalten ist bekomme ich folgende Fehlermeldung:

PHP-Code:
<b>Notice</b>:  Undefined offset1 in <b>C:Tempxampphtdocsloginsavefile.php</bon line <b>11</b><br />
<
br />
<
b>Warning</b>:  file_put_contents() [<a href='function.file-put-contents'>function.file-put-contents</a>]: Filename cannot be empty in <b>C:Tempxampphtdocsloginsavefile.php</bon line <b>11</b><br /> 
Könnte das vielleicht an explode() liegen?
Jan102 ist offline   Mit Zitat antworten
Alt 26.01.2012, 09:12  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Zitat:
Könnte das vielleicht an explode() liegen?
Was steht in Zeile 11 aus der Tempxampphtdocsloginsavefile.php
__________________
Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
Albert Einstein
Arne Drews ist offline   Mit Zitat antworten
Alt 26.01.2012, 09:22  
Neuer Benutzer
 
Registriert seit: 26.01.2012
Beiträge: 7
PHP-Kenntnisse:
Anfänger
Jan102 befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
 9$postContent explode'<|!|>'$_POST['inhalt'] );
10$fileContent htmlspecialchars$postContent[0] );
11file_put_contents$postContent[1], $fileContent );  
12: echo print_r(explode'<|!|>'$_POST['inhalt'] )); 
Das gibt explode zurück:

mit & im Inhalt:
PHP-Code:
Array
(
    [
0] => 
Inhalt


ohne & im Inhalt:
PHP-Code:
Array
(
    [
0] => 
Inhalt
    
[1] => testdatei.txt

Also muss es eigentlich an explode liegen.

Geändert von Jan102 (26.01.2012 um 09:29 Uhr).
Jan102 ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Mathematische Zeichen in SQL speichern puwu PHP Einsteiger 4 18.01.2012 14:03
User der Webseite wieder erkennen und Status speichern Wolf66 PHP Einsteiger 12 24.03.2011 01:15
[Erledigt] Tabelle mit Namen: #12345 in DB speichern geht nicht Double D Datenbanken 14 25.11.2010 11:25
[Erledigt] Verbotene Zeichen in Requests F234k PHP Tipps 2010 10 15.08.2010 20:16
Informationen bei Verlassen der Seite speichern Multivac JavaScript, Ajax und mehr 3 16.04.2010 18:25
[Erledigt] Auf druckbare Zeichen überprüfen vici PHP Tipps 2009 4 04.10.2009 18:38
Benutze Zeichen anzeigen! cokotech Datenbanken 3 06.06.2008 18:24
erste 7 zeichen überprüfen aircrash PHP Tipps 2008 1 28.09.2007 09:11
Mehrsprachigkeit und kyrillische Zeichen Sclot PHP Tipps 2006 8 15.11.2006 08:07
Wieviel Pixel hat ein Zeichen? Ausmessen eines DIV-Container webazubi PHP-Fortgeschrittene 4 06.07.2006 14:52
[Erledigt] Speichern unter... geht nicht!!! PHP-Fortgeschrittene 8 09.02.2006 16:55
[Erledigt] nur x zeichen zeigen PHP Tipps 2004-2 2 17.12.2004 15:10
Die 1. 15 Zeichen anzeigen imported_Lumio PHP Tipps 2004 2 23.08.2004 16:16
Formular in Mysql Datenbank speichern Anuschka Datenbanken 1 15.08.2004 02:55

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
fopen ersetzt & zeichen &amp;, php russische zeichen in fwrite() speichern, \&amp\ php zeichen, php fputs kyrillische zeichen

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:38 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum