Antworten auf deine Fragen:
Neues Thema erstellen

php umlaute in .txt Datei schreiben und lesen

campman

Nicht mehr ganz neu hier

Hallöchen

ich hab gar keinen Plan von PHP :lol: mach sonst nur Flash

nun brauch ich für ein Flash Gästebuch doch ein wenig PHP :motz:

Die PHP Dateien dafür habe ich, glaub ich zumindest, hier im Forum gefunden.
Alles funktioniert super bis auf die Umlaute welche zwar korrekt in die txt Datei geschrieben werden aber leider beim auslesen der Datei als kryptische Symbole angezeigt werden :motz:

SUFU benutzt aber ich kann damit nicht wirklich etwas anfangen

so evtl kann ja jemand helfen :)

guestbook.php

PHP:
<?
include("settings.php");
// Zähler für das Gästebuch - Anfang /////////////////////////////////////////////////////////////////
$dateinameb = "count_guestbook.txt";
$dateib = fopen($dateinameb, "r");
$wertb = fgets($dateib, 255);
parse_str($wertb);
fclose($dateib);
$zahlguestbook=$zahlguestbook+1;
$dateib = fopen($dateinameb, "w");
fputs($dateib, "zahlguestbook=$zahlguestbook");
fclose($dateib);
// Zähler für das Gästebuch - Ende ////////////////////////////////////////////////////////////////////

// Gästebuch lesen und schreiben - Anfang ////////////////////////////////////////////////////////
$gname  = $_POST["name"];
$gmail  = $_POST["mail"];
$gcomment = $_POST["comment"];
$gwebsite  = $_POST["website"];
$datestamp = date("d.m.Y - H:i");
$dateiname  = "guestbook.txt";

$datei = fopen($dateiname, "r");
$wert = fgets($datei, 100000);
fclose($datei);
$neu_inhalt = "<font color=\"$topiccolor\">Nr.: $zahlguestbook   vom: $datestamp</font><br><font color=\"$textcolor\">Name:</font><font color=\"$inputtextcolor\"> $gname</font><br><font color=\"$textcolor\">mail:</font><font color=\"$inputtextcolor\"><a href=\"mailto:$gmail\">$gmail</a></font><br><font color=\"$textcolor\">website:</font><font color=\"$inputtextcolor\"><a href=\"$gwebsite\" target=\"_blank\">$gwebsite</a></font><br><font color=\"$textcolor\">message:</font><font color=\"$inputtextcolor\"> $gcomment</font><br><font>--------------------------------------------------------------------------------------</font><br> $wert";
$datei = fopen($dateiname, "w");
fputs($datei, $neu_inhalt);
fclose($datei);
 
$signal=1;
echo "signal=$signal";
// Gästebuch lesen und schreiben - Ende////////////////////////////////////////////////////////

// Mail an Webmaster                            ////////////////////////////////////////////////////////
$MailTo  ="deine@email.de";
$MailFrom ="absender@deine_domaine.de";
$mailinhalt = "<font color=\"$topiccolor\">Nr.: $zahlguestbook   vom: $datestamp</font><br><font color=\"$textcolor\">Name:</font><font color=\"$inputtextcolor\"> $gname</font><br><font color=\"$textcolor\">mail:</font><font color=\"$inputtextcolor\"><a href=\"mailto:$gmail\">$gmail</a></font><br><font color=\"$textcolor\">website:</font><font color=\"$inputtextcolor\"><a href=\"$gwebsite\" target=\"_blank\">$gwebsite</a></font><br><font color=\"$textcolor\">message:</font><font color=\"$inputtextcolor\"> $gcomment</font><br><font>--------------------------------------------------------------------------------------</font>";
 
mail("$MailTo","Gästebuch  //  Eintrag Nr.: $zahlguestbook","$mailinhalt", 
"From: $MailFrom
Content-Type: text/html");

?>



auslesen.php

PHP:
<?
$dateiname  = "guestbook.txt";

$datei = fopen($dateiname, "r");
$wert = fgets($datei, 100000);
fclose($datei);

print "&main=$wert";
?>

_greetz
 

qazwsx

Nicht mehr ganz neu hier

AW: php umlaute in .txt Datei schreiben und lesen

Einfach die HTML Codes benutzen, z.B. für ä &auml;

ä &auml;
Ä &Auml;
ö &ouml;
Ö &Ouml;
ü &uuml;
Ü &Uuml;
ß &szlig;
 
Zuletzt bearbeitet:

Tiburon

Nicht mehr ganz neu hier

AW: php umlaute in .txt Datei schreiben und lesen

Wie meinst du wohni schreiben? Anstatt eines ä schriebst du einfach &auml;
Häuser --> H&auml;user
 

Dennis__

Grafik / Web

AW: php umlaute in .txt Datei schreiben und lesen

Versuche mal den String, den du beim Einlesen der Textdatei erhälst, durch eine Ersetzfunktion (str_replace) laufen zulassen, bevor du ihn ausgibst. Dadurch kannst du alle Umlaute, die kryptisch in dem String vorkommen durch die richtigen ersetzen:

$str = str_replace('#', 'ü', $str);



Also könnte das ungefähr so aussehen:

<?
$dateiname
= "guestbook.txt";

$datei = fopen($dateiname, "r");
$wert = fgets($datei, 100000);
fclose($datei);

$wert = str_replace('+', 'ä',
$wert);
$wert = str_replace('*', 'ö', $wert);
$wert = str_replace('#', 'ü', $wert);

print
"&main=$wert";
?>


(Die Zeichen +,*,# stimmen natürlich nicht, sollen das ganze nur veranschaulichen)

Du must als ersten Übergabeparameter der Funktion, das Zeichen übergeben, das durch das Zeichen ersetzt werden soll, das als zweiter Übergabeparameter angegeben ist. Der letzte Übergabeparameter ist der String.
 
Zuletzt bearbeitet:

netbandit

Aktives Mitglied

AW: php umlaute in .txt Datei schreiben und lesen

Entweder, guestbook.php:

PHP:
<?
include("settings.php");
// Zähler für das Gästebuch - Anfang /////////////////////////////////////////////////////////////////
$dateinameb = "count_guestbook.txt";
$dateib = fopen($dateinameb, "r");
$wertb = fgets($dateib, 255);
parse_str($wertb);
fclose($dateib);
$zahlguestbook=$zahlguestbook+1;
$dateib = fopen($dateinameb, "w");
fputs($dateib, "zahlguestbook=$zahlguestbook");
fclose($dateib);
// Zähler für das Gästebuch - Ende ////////////////////////////////////////////////////////////////////

// Gästebuch lesen und schreiben - Anfang ////////////////////////////////////////////////////////
$gname  = htmlentities($_POST["name"]);
$gmail  = $_POST["mail"];
$gcomment = htmlentities($_POST["comment"]);
$gwebsite  = $_POST["website"];
$datestamp = date("d.m.Y - H:i");
$dateiname  = "guestbook.txt";

$datei = fopen($dateiname, "r");
$wert = fgets($datei, 100000);
fclose($datei);
$neu_inhalt = "<font color=\"$topiccolor\">Nr.: $zahlguestbook   vom: $datestamp</font><br><font color=\"$textcolor\">Name:</font><font color=\"$inputtextcolor\"> $gname</font><br><font color=\"$textcolor\">mail:</font><font color=\"$inputtextcolor\"><a href=\"mailto:$gmail\">$gmail</a></font><br><font color=\"$textcolor\">website:</font><font color=\"$inputtextcolor\"><a href=\"$gwebsite\" target=\"_blank\">$gwebsite</a></font><br><font color=\"$textcolor\">message:</font><font color=\"$inputtextcolor\"> $gcomment</font><br><font>--------------------------------------------------------------------------------------</font><br> $wert";
$datei = fopen($dateiname, "w");
fputs($datei, $neu_inhalt);
fclose($datei);

$signal=1;
echo "signal=$signal";
// Gästebuch lesen und schreiben - Ende////////////////////////////////////////////////////////

// Mail an Webmaster                            ////////////////////////////////////////////////////////
$MailTo  ="deine@email.de";
$MailFrom ="absender@deine_domaine.de";
$mailinhalt = "<font color=\"$topiccolor\">Nr.: $zahlguestbook   vom: $datestamp</font><br><font color=\"$textcolor\">Name:</font><font color=\"$inputtextcolor\"> $gname</font><br><font color=\"$textcolor\">mail:</font><font color=\"$inputtextcolor\"><a href=\"mailto:$gmail\">$gmail</a></font><br><font color=\"$textcolor\">website:</font><font color=\"$inputtextcolor\"><a href=\"$gwebsite\" target=\"_blank\">$gwebsite</a></font><br><font color=\"$textcolor\">message:</font><font color=\"$inputtextcolor\"> $gcomment</font><br><font>--------------------------------------------------------------------------------------</font>";

mail("$MailTo","Gästebuch  //  Eintrag Nr.: $zahlguestbook","$mailinhalt",
"From: $MailFrom
Content-Type: text/html");

?>
Oder sofern es nicht klappt, auslesen.php:
PHP:
 <?
$dateiname  = "guestbook.txt";

$datei = fopen($dateiname, "r");
$wert = fgets($datei, 100000);
$wert = utf8_encode($wert);
fclose($datei);

print "&main=$wert";
?>
 
Zuletzt bearbeitet:

exo

Aktives Mitglied

AW: php umlaute in .txt Datei schreiben und lesen

oder einfach die Datei mal als UTF8 Formatiert abspeichern ;) Hat bei mir schon oft geholfen wo ich probleme hatte mit den Umlauten. Einfach mal in den Editor deines Vertrauens reinschauen neue Datei aufmachen und beim ersten Abspeichern mal nachschauen ob du irgendwo die Formatierung abspeichern kannst und dort utf8 auswählen kannst
 

ypsiw

Noch nicht viel geschrieben

AW: php umlaute in .txt Datei schreiben und lesen

Netbandit hat es schon richtig in das Programm geschrieben, aber ich würde es zur besseren Übersicht einzeln noch einmal zeigen wollen.

Die Angaben von dem User können mit Hilfe der php-Funktion
htmlentities() umgewandelt werden.
In deinem Fall muss es für den eingetragenen Text so aussehen:

PHP:
$gcomment = htmlentities($_POST["comment"]);

Eine andere Möglichkeit ist, den Text aus der Textdatei in ein Format umzuwandeln, was keine kryptischen Symbole
enthält, z.B.
PHP:
$wert = utf8_encode($wert);

Die Lösung von Dennis__ ist natürlich auch möglich, allerdings aus meiner Sicht nicht so elegant.

Gruß,
Yvonne Weber
 

Dennis__

Grafik / Web

AW: php umlaute in .txt Datei schreiben und lesen

Jap, ich hatte nicht an ein Problem mit der Codierung gedacht. War eine spontane Idee. Aber utf_encode ist wirklich die elegantere Lösung.
 

campman

Nicht mehr ganz neu hier

AW: php umlaute in .txt Datei schreiben und lesen

danke euch allen werde das ausprobieren :)

nur heut keine zeit mehr :motz:

greetz
 

campman

Nicht mehr ganz neu hier

AW: php umlaute in .txt Datei schreiben und lesen

Entweder, guestbook.php:

PHP:
<?
include("settings.php");
// Zähler für das Gästebuch - Anfang /////////////////////////////////////////////////////////////////
$dateinameb = "count_guestbook.txt";
$dateib = fopen($dateinameb, "r");
$wertb = fgets($dateib, 255);
parse_str($wertb);
fclose($dateib);
$zahlguestbook=$zahlguestbook+1;
$dateib = fopen($dateinameb, "w");
fputs($dateib, "zahlguestbook=$zahlguestbook");
fclose($dateib);
// Zähler für das Gästebuch - Ende ////////////////////////////////////////////////////////////////////
 
// Gästebuch lesen und schreiben - Anfang ////////////////////////////////////////////////////////
$gname  = htmlentities($_POST["name"]);
$gmail  = $_POST["mail"];
$gcomment = htmlentities($_POST["comment"]);
$gwebsite  = $_POST["website"];
$datestamp = date("d.m.Y - H:i");
$dateiname  = "guestbook.txt";
 
$datei = fopen($dateiname, "r");
$wert = fgets($datei, 100000);
fclose($datei);
$neu_inhalt = "<font color=\"$topiccolor\">Nr.: $zahlguestbook   vom: $datestamp</font><br><font color=\"$textcolor\">Name:</font><font color=\"$inputtextcolor\"> $gname</font><br><font color=\"$textcolor\">mail:</font><font color=\"$inputtextcolor\"><a href=\"mailto:$gmail\">$gmail</a></font><br><font color=\"$textcolor\">website:</font><font color=\"$inputtextcolor\"><a href=\"$gwebsite\" target=\"_blank\">$gwebsite</a></font><br><font color=\"$textcolor\">message:</font><font color=\"$inputtextcolor\"> $gcomment</font><br><font>--------------------------------------------------------------------------------------</font><br> $wert";
$datei = fopen($dateiname, "w");
fputs($datei, $neu_inhalt);
fclose($datei);
 
$signal=1;
echo "signal=$signal";
// Gästebuch lesen und schreiben - Ende////////////////////////////////////////////////////////
 
// Mail an Webmaster                            ////////////////////////////////////////////////////////
$MailTo  ="deine@email.de";
$MailFrom ="absender@deine_domaine.de";
$mailinhalt = "<font color=\"$topiccolor\">Nr.: $zahlguestbook   vom: $datestamp</font><br><font color=\"$textcolor\">Name:</font><font color=\"$inputtextcolor\"> $gname</font><br><font color=\"$textcolor\">mail:</font><font color=\"$inputtextcolor\"><a href=\"mailto:$gmail\">$gmail</a></font><br><font color=\"$textcolor\">website:</font><font color=\"$inputtextcolor\"><a href=\"$gwebsite\" target=\"_blank\">$gwebsite</a></font><br><font color=\"$textcolor\">message:</font><font color=\"$inputtextcolor\"> $gcomment</font><br><font>--------------------------------------------------------------------------------------</font>";
 
mail("$MailTo","Gästebuch  //  Eintrag Nr.: $zahlguestbook","$mailinhalt",
"From: $MailFrom
Content-Type: text/html");
 
?>
Oder sofern es nicht klappt, auslesen.php:
PHP:
 <?
$dateiname  = "guestbook.txt";
 
$datei = fopen($dateiname, "r");
$wert = fgets($datei, 100000);
$wert = utf8_encode($wert);
fclose($datei);
 
print "&main=$wert";
?>

hallöchen, ich muss hier nochmal ran :lol:

also mit guestbook.php ändert sich nichts.
mit der neuen Version von auslesen.php gehts auf Anhieb super ---> ABER:
wenn ich das Gb gelesen hab und klick weiter auf der Seite rum um irgendwann später wieder auf das gb zu klicken dann ist wieder alles kryptisch:'(
mach ich den Browser zu und rufe die seite neu auf dann ist wieder alles OK bis ich zum zweiten mal auf gb klick.

jemand einen hilfreichen tip ?? bitte !!:lol:
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben