tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
JA
ANTWORTEN
17
ZUGRIFFE
961
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    -GS-Master -GS-Master ist offline Mitglied Platin
    Registriert seit
    Sep 2005
    Beiträge
    705
    Naja hallo wieder mal.
    Ich bin zurzeit mit einem Gästebuch beschäftigt und hab da nun ein kleines Problem.
    Die Einträge werden aus dem Textfile rausgelesen und das klappt ja wunderbar. Nur hab ich ein kleines Problem wie gesagt. Wenn jetzt einer einen Eintrag schreibt und eben einen absatz oder so macht, dann ist das bei meinem Script kein Absatz sondern das ganze ist dann gleich als neuer Eintrag und besetzt gleich eines meiner Templates.

    Die Daten stehen in einem Textfile und jeder Eintrag in einer Eigenen Zeile. Die Verschieden Sachen wie Name, Datum, Beitrag etc. sind durch |-| Getrennt.

    Um nun zu meiner Frage zu kommen. Wie kann ich den Zeilenumbruch oder Absatz den jemand in seinem Eintrag macht so umwandeln, dass er dann beim auslesen so entsteht und eben nicht gleich ein eigenes Template wieder braucht?
     

  2. #2
    Registriert seit
    Apr 2006
    Ort
    Freiburg
    Beiträge
    290
    Blog-Einträge
    2
    Hi,

    wandel doch den Zeilenumbruch("\n") in ein Spezial-Zeichen um. Zbs.: "@[U]" oder sowas.
    Und später beim Auslesen erstetzt du das wieder durch ein Zeilenumbruch

    MArc
     
    Kryn.cms - einfach anders.

    "When you're talking about webserver, as it is, with no rules, well then, baby you'd better block every tiny hole of your server!" - MArc (inspired by Bruce L.)

  3. #3
    Registriert seit
    Oct 2005
    Beiträge
    277
    Hi,
    versuche es mal so:
    PHP-Code:
    $eintragen str_replace("\n","<br>",htmlentities(stripslashes($_POST['eintrag']))); 
    und das schreibst du nun in die Textdatei.
    schiese
    Geändert von schiese (22.07.06 um 12:06 Uhr)
     

  4. #4
    franz007 franz007 ist offline Mitglied Platin
    Registriert seit
    Sep 2004
    Beiträge
    600
    Am besten lässt du ihn gleich per nl2br() durch ein <br /> ersetzen.
     

  5. #5
    -GS-Master -GS-Master ist offline Mitglied Platin
    Registriert seit
    Sep 2005
    Beiträge
    705
    Danke schon mal werde es versuchen
    Geändert von -GS-Master (22.07.06 um 12:11 Uhr)
     

  6. #6
    -GS-Master -GS-Master ist offline Mitglied Platin
    Registriert seit
    Sep 2005
    Beiträge
    705
    Sehr schoen, das würde funktionieren, nur leider hab ich das Problem, daser mir das ganze nicht so in die Textdatei schreibt

    test<br />test<br />test
    Wie das ganze ja
    eigentlich sein sollte sondern,

    test<br />
    test<br />
    test
    und somit wird das ganze wieder unbrauchbar, weil er mir das ganze dann wieder so wie zufor auf die Templates aufteilt. Könnt ihr mir sagen, wie ich das ganze wenn es so in ein formular eingegeben wird

    test
    test
    test
    dann dennoch in einer Zeile in eine Textdatei geschrieben wird ?
     

  7. #7
    Registriert seit
    Oct 2005
    Beiträge
    277
    Hi,
    ich weiß zwar nicht, wie du es versuchst, aber bei mir funktioniert folgendes:
    PHP-Code:
    $eintragen $_POST['eintragen'];
    $rein str_replace("\n","<br />"$eintragen);


    $datei "datei.txt";
    $fp fopen($datei,"w");
    fwrite($fp,$rein);
    fclose($fp); 
    schiese
     

  8. #8
    Avatar von Dr Dau
    Dr Dau Dr Dau ist offline ich wisch hier durch
    Registriert seit
    Feb 2005
    Ort
    hinterm Mond gleich Links
    Beiträge
    6.160
    Blog-Einträge
    4
    Hallo!

    PHP-Code:
    $rein str_replace("\r\n","<br />"$eintragen); 
    Gruss Dr Dau
     
    Schri-Schra-Schrödi *g*
    mehrspaltiges/zeiliges Seitenlayout mit DIV's und CSS
    Dinge, die mit Tabellen besser klappen als mit CSS
    Ausgabe von Datum/Zeit unabhängig von der Server Zeitzone [php]
    Meine Links zum Thema Linux (Last update: 29.10.2011)
    Kein Busen ist so flach wie das Niveau dieser Party!
    ----
    Alte Weisheit: wer uns in den Arsch kriecht wird beschissen!
    ----
    Ich habe 3 Kinder und kein Geld!
    Warum kann ich nicht keine Kinder haben und 3 Geld?! (Homer Jay Simpson)

  9. #9
    Registriert seit
    Oct 2005
    Beiträge
    277
    Ich habe nichts geschrieben
    Geändert von schiese (30.07.06 um 21:21 Uhr)
     

  10. #10
    Avatar von Dr Dau
    Dr Dau Dr Dau ist offline ich wisch hier durch
    Registriert seit
    Feb 2005
    Ort
    hinterm Mond gleich Links
    Beiträge
    6.160
    Blog-Einträge
    4
    @schiesse, hast Du Dir denn mal das Ergebins von "\n" und "\r\n" angesehen?
    Dass umwandeln mit "\n" fügt zwar ein <br /> ein, wandelt aber den tatsächlichen Zeilenumbruch in ein UNIX-Zeilenumbruch um (zu erkennen an den schwarzen Rechtecken, wenn man die Textdatei mit Notepad öffnent).
    Dass umwandeln mit "\r\n" hingegen fügt ein <br /> ein und entfernt den tatsächlichen Zeilenumbruch.

    Ein nl2br() hingegen fügt lediglich ein <br /> an das Zeilenende an..... der Zeilenumbruch selbt bleibt aber bestehen.

    Da bei ihm aber jede Zeile einen neuen Datensatz darstellt, macht sowohl der tasächliche, als auch der UNIX-Zeilenumbruch Probleme.
     
    Schri-Schra-Schrödi *g*
    mehrspaltiges/zeiliges Seitenlayout mit DIV's und CSS
    Dinge, die mit Tabellen besser klappen als mit CSS
    Ausgabe von Datum/Zeit unabhängig von der Server Zeitzone [php]
    Meine Links zum Thema Linux (Last update: 29.10.2011)
    Kein Busen ist so flach wie das Niveau dieser Party!
    ----
    Alte Weisheit: wer uns in den Arsch kriecht wird beschissen!
    ----
    Ich habe 3 Kinder und kein Geld!
    Warum kann ich nicht keine Kinder haben und 3 Geld?! (Homer Jay Simpson)

  11. #11
    Avatar von Dr Dau
    Dr Dau Dr Dau ist offline ich wisch hier durch
    Registriert seit
    Feb 2005
    Ort
    hinterm Mond gleich Links
    Beiträge
    6.160
    Blog-Einträge
    4
    Zitat Zitat von schiese
    Ich habe nichts geschrieben
    Was denn?!

    Ich lasse die Erklärung trotzdem stehen...... könnte andern ja helfen.
     
    Schri-Schra-Schrödi *g*
    mehrspaltiges/zeiliges Seitenlayout mit DIV's und CSS
    Dinge, die mit Tabellen besser klappen als mit CSS
    Ausgabe von Datum/Zeit unabhängig von der Server Zeitzone [php]
    Meine Links zum Thema Linux (Last update: 29.10.2011)
    Kein Busen ist so flach wie das Niveau dieser Party!
    ----
    Alte Weisheit: wer uns in den Arsch kriecht wird beschissen!
    ----
    Ich habe 3 Kinder und kein Geld!
    Warum kann ich nicht keine Kinder haben und 3 Geld?! (Homer Jay Simpson)

  12. #12
    -GS-Master -GS-Master ist offline Mitglied Platin
    Registriert seit
    Sep 2005
    Beiträge
    705
    Ich danke euch schon mal, nur hab ich jetzt nur noch ein kleines Problem also das alles in einer Zeile steht funktioniert jetzt nur leider schreibt er das ganze nicht so in die Text datei

    test <br />test <br />test
    sondern das wird in etwa so
    in die Textdatei geschrieben

    text<br />
    <br>tet<br />
    <br>test
    also vor dem <br /> wird ein unix Zeilenumbruch eingefügt
    mach ich das ganze das ich es so reinschreibe \r\n dann schreibt er zwei <br /> ein
    ich schreibe das ganze so in die Textdatei, sofern das euch was hilft

    PHP-Code:
    <?php
            
    include("functions.php");
            
    $text=$_POST["text"];
            
    $text=htmlentities($text);
            
    $text=replacetags($text);
            
    $text=nl2br($text);


    $today date('j-m-y, g:i a'); 
    $datei "GS/files/guestbook.master";
    $rein str_replace("\r\n","<br />"$text);  
    $fp fopen($datei,"a");
    fputs($fp,"$today|-|$name|-|$email|-|$homepage|-|$titelicon|-|$titel|-|$rein\n");
    fclose($fp);

    ?>
    Geändert von -GS-Master (31.07.06 um 06:07 Uhr)
     

  13. #13
    Registriert seit
    Oct 2005
    Beiträge
    277
    Hi,
    was ist denn replacetags() ?

    Also, bei mir funktioniert das!
    PHP-Code:
    include("functions.php");
    $text str_replace("\r\n","<br />",htmlentities(stripslashes($_POST['text'])));
    $today date('j-m-y, g:i a'); 
    $datei "GS/files/guestbook.master"
    $fp fopen($datei,"a");
    $rein $today."|-|".$name."|-|".$email."|-|".$homepage."|-|".$titelicon."|-|".$titel."|-|".$text."\r\n";
    fputs($fp,$rein);
    fclose($fp); 
    @Dau: War mit meinen Gedanken wohl woanders

    schiese
     

  14. #14
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    replacetags() duerfte das hier sein:
    PHP-Code:
    function replacetags($messagetext)
    {
        while ((
    strpos($messagetext,"[url=")>-1) && (strpos($messagetext,"[/url]")>-1))
            {
                
    $startpos=strpos($messagetext,"[url=")+5;
                
    $endpos=strpos($messagetext,"]",$startpos);
                
    $url=substr($messagetext,$startpos,$endpos-$startpos);
                
    $startpos=$endpos+1;
                
    $endpos=strpos($messagetext,"[/url]",$startpos);
                
    $urltext=substr($messagetext,$startpos,$endpos-$startpos);
                
    $codestring='[url='.$url.']'.$urltext.'[/url]';
                
    $urlstring='<a href="'.$url.'" target="_blank">'.$urltext.'</a>';
                
    $messagetext=str_replace($codestring,$urlstring,$messagetext);
            }
        while ((
    strpos($messagetext,"[color=")>-1) && (strpos($messagetext,"[/color]")>-1))
            {
                
    $startpos=strpos($messagetext,"[color=")+7;
                
    $endpos=strpos($messagetext,"]",$startpos);
                
    $color=substr($messagetext,$startpos,$endpos-$startpos);
                
    $startpos=$endpos+1;
                
    $endpos=strpos($messagetext,"[/color]",$startpos);
                
    $colortext=substr($messagetext,$startpos,$endpos-$startpos);
                
    $codestring='[color='.$color.']'.$colortext.'[/color]';
                
    $colorstring='<font color="'.$color.'">'.$colortext.'</font>';
                
    $messagetext=str_replace($codestring,$colorstring,$messagetext);
            }
        while ((
    strpos($messagetext,"[b]")>-1) && (strpos($messagetext,"[/b]")>-1))
            {
                
    $startpos=strpos($messagetext,"[b]")+3;
                
    $endpos=strpos($messagetext,"[/b]",$startpos);
                
    $text=substr($messagetext,$startpos,$endpos-$startpos);
                
    $codestring='[b]'.$text.'[/b]';
                
    $formatstring='<b>'.$text.'</b>';
                
    $messagetext=str_replace($codestring,$formatstring,$messagetext);
            }
        while ((
    strpos($messagetext,"[i]")>-1) && (strpos($messagetext,"[/i]")>-1))
            {
                
    $startpos=strpos($messagetext,"[i]")+3;
                
    $endpos=strpos($messagetext,"[/i]",$startpos);
                
    $text=substr($messagetext,$startpos,$endpos-$startpos);
                
    $codestring='[i]'.$text.'[/i]';
                
    $urlstring='<i>'.$text.'</i>';
                
    $messagetext=str_replace($codestring,$urlstring,$messagetext);
            }
        while ((
    strpos($messagetext,"[u]")>-1) && (strpos($messagetext,"[/u]")>-1))
            {
                
    $startpos=strpos($messagetext,"[u]")+3;
                
    $endpos=strpos($messagetext,"[/u]",$startpos);
                
    $text=substr($messagetext,$startpos,$endpos-$startpos);
                
    $codestring='[u]'.$text.'[/u]';
                
    $formatstring='<u>'.$text.'</u>';
                
    $messagetext=str_replace($codestring,$formatstring,$messagetext);
            }
        while ((
    strpos($messagetext,"[s]")>-1) && (strpos($messagetext,"[/s]")>-1))
            {
                
    $startpos=strpos($messagetext,"[s]")+3;
                
    $endpos=strpos($messagetext,"[/s]",$startpos);
                
    $text=substr($messagetext,$startpos,$endpos-$startpos);
                
    $codestring='[s]'.$text.'[/s]';
                
    $formatstring='<s>'.$text.'</s>';
                
    $messagetext=str_replace($codestring,$formatstring,$messagetext);
            }
        return 
    $messagetext;

     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  15. #15
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    5.806
    Blog-Einträge
    5
    Hallo,

    Zitat Zitat von Dennis Wronka
    replacetags() duerfte das hier sein:
    PHP-Code:
    function replacetags($messagetext)
    {
        
    /* sehr viel Code */

    Holy ****! Das sieht mir nach jeder Menge unnötiger Codeduplikation aus.

    @-GS-Master: nl2br() brauchst du jetzt nicht mehr. In der Form ersetzt du nur alle Zeilenumbrüche doppelt. Übrigens solltest du dir auch schon mal überlegen, was passiert wenn jemand ein |-| in seinen Namen schreibt oder spaßeshalber bei der Angabe der E-Mail-Adresse einen Zeilenumbruch eingibt…

    Grüße,
    Matthias
     
    „Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
    “For every complex problem, there is an answer that is short, simple and wrong.”
    “Pessimism is safe, but optimism is a lot faster!”


    Aktuelles Coding Quiz: #17 - Wörter kreuz und quer

Ähnliche Themen

  1. Suche jemand, der ein komplettes Auktionssystem aufbaut
    Von TT3 im Forum Stellenangebote (entgeltlich)
    Antworten: 3
    Letzter Beitrag: 25.03.10, 11:35
  2. Gästebuch
    Von El_Tomato im Forum PHP
    Antworten: 15
    Letzter Beitrag: 27.07.07, 13:20
  3. Gästebuch
    Von csfungamer im Forum PHP
    Antworten: 5
    Letzter Beitrag: 06.09.05, 20:04
  4. Erste Zeile ein Textdatenbank loeschen...
    Von majonaise im Forum PHP
    Antworten: 7
    Letzter Beitrag: 31.12.03, 07:34
  5. Antworten: 3
    Letzter Beitrag: 18.05.03, 18:37