kostenloser Webspace werbefrei: lima-city


Gästebucheinträge sortieren

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    mk-server-kk

    mk-server-kk hat kostenlosen Webspace.

    Hallo allerseites.
    Ich hätte da so ein Problemchen.
    Die Sache ist die, dass ich ein Gästebuch erstellt habe, aber jetzt 2 Sachen nicht so sind wie ich es mir vorgestellt habe. Könntet ihr mir vielleicht helfen???
    1. Problem: Der neuste Eintrag steht nicht ganz oben sondern ganz unten.
    2. Problem: Die Schrift gefällt mir nicht sonderlich.

    Hier der Syntax vom GB.:
    <?
    if(isset($neuer_Eintrag))
    {
    if($Passwort=="")
    {
    if($name=="")
    {echo"<span class='Headline'>Geben sie bitte ihren Namen an.<br></span>";}
    else{
    if($neuer_Eintrag=="")
    {echo"<span class='Headline'>Kein Eintrag vorhanden.<br></span>";}
    else{
      $datum=date("j M Y H:i");
      $nl=chr(13).chr(10);
      $name=$name." schrieb am ".$datum." Uhr:";
      $date = "$name".$nl."$neuer_Eintrag".$nl;
      $file = fopen("Gaestebuch.txt","a");
      if ($file)
      {
       flock($file,2);
       $date=$date.$nl;
       fputs($file,$date);
       flock($file,3);
       fclose($file);
      }
      else echo "<span class='Headline'>Fehlernr. 40367<br></span>";
      echo "<span class='Headline'>Ihr Eintrag wurde gesendet.<br></span>";
    }
    }
    }
    else
    {echo"<span class='Headline'>Passwort falsch<br></span>";}
    }
    
    $dateiname="Gaestebuch.txt";
    $datei=fopen ($dateiname, "r");
    $text=fread ($datei, filesize ($dateiname));
    fclose ($datei);
    
    echo"<textarea name='Geastebuch' cols='90' rows='40' class='GaestebuchTextfeld' readonly>";
    echo $text;
    echo"</textarea><br><br>";
    ?>
    
    
    <form action="Gaestebuch.php" method="post">
    <span class="Headline">Ihr Eintrag</span><br>
    <textarea name="neuer_Eintrag" cols="60" rows="5" class="GaestebuchTextfeld">
    </textarea><br><br>
    <span class="Headline">Dein Name:</span>
    <input type="text" name="name" size="24" maxlength="24" class="GaestebuchTextfeld">
    <br><br>
    <input type="submit" name="Senden" value="Let´s Go!" class="ButtonGaestebuch">
    <br>
    <br>
    </div>
    </form>
    </font>
    </b>



    Und zum Schluss noch eine Frage eine Frage: Ist es sehr umständlich Smilies hinzuzufügen??
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hi,

    also dein GB wird in eine Datei geschrieben, warum schreibst du dann den neusten Beitrag nich an den Anfang der Datei?
    Nächste möglichkeit wäre das du per schleife deine Datei ausließt und Zeile für Zeile in ein Array speicherst und danach das Array mit rsort() umgekehrt sortierst.

    Smileys sind eig. ganz einfach, du schreibst ein Array

    $smileys = array(
    ":)"=>"img01",
    ":("=>"img02
    );


    Dann kannst du sie Ausgeben, ca so

    foreach($smileys as $s)
    	echo "<img src="bilder/".$s.".gif"/> ";


    Wenn du jetzt deinen TExt parst, bevor du ihn ausgibst, ca. so:

    $neuer_Eintrag = "Hallo :)";
    foreach($smileys as $c=>$s)
    	$neuer_Eintrag = str_replace($c, "<img src=\"bilder/".$s.".gif\"/>".".gif",$neuer_Eintrag);


    Dann werden alle Smileycodes aus dem Array in die GIF-Namen bzw. IMG-Tags geändert.

    Der Code zum ausprobieren:

    <?php
    
    $smileys = array(
    ":)"=>"img01",
    ":("=>"img02"
    );
    
    foreach($smileys as $s)
    	echo "<img src=\"bilder/".$s.".gif\"/>";
    	
    $neuer_Eintrag = "Hallo :)";
    echo $neuer_Eintrag;
    echo "<h2>Smileys Umwandeln</h2>";
    foreach($smileys as $c=>$s)
    	$neuer_Eintrag = str_replace($c, "<img src=\"bilder/".$s.".gif\"/>".".gif",$neuer_Eintrag);
    	
    echo $neuer_Eintrag;
    
    ?>


    Grüsse
    Color
  4. Autor dieses Themas

    mk-server-kk

    mk-server-kk hat kostenlosen Webspace.

    color schrieb:
    Nächste möglichkeit wäre das du per schleife deine Datei ausließt und Zeile für Zeile in ein Array speicherst und danach das Array mit rsort() umgekehrt sortierst.

    aha und wie geht das mit den arrays genau könntest du das in den quelltext vom Gästebuch schreiben?

  5. N'abend

    ich hab eig versucht diese Arbeit zu ignorieren :o) aber iwie hats net sein sollen. Ich habe hier den Code für dich.

    <?
    if(isset($neuer_Eintrag))
    {
    	if($Passwort=="")
    	{
    		if($name=="")
    			echo"<span class='Headline'>Geben sie bitte ihren Namen an.<br></span>";
    		else
    		{
    			if($neuer_Eintrag=="")
    				echo"<span class='Headline'>Kein Eintrag vorhanden.<br></span>";
    			else
    			{
    				$datum=date("j M Y H:i");
    				$nl=chr(13).chr(10);
    				$name=$name." schrieb am ".$datum." Uhr:";
    				$date = "$name".$nl."$neuer_Eintrag".$nl;
    				$file = fopen("Gaestebuch.txt","a");
    				if ($file)
    				{
    					flock($file,2);
    					$date=$date.$nl;
    					fputs($file,$date);
    					flock($file,3);
    					fclose($file);
    				}
    				else echo "<span class='Headline'>Fehlernr. 40367<br></span>";
    					echo "<span class='Headline'>Ihr Eintrag wurde gesendet.<br></span>";
    			}
    		}
    	}
    	else
    		echo"<span class='Headline'>Passwort falsch<br></span>";
    }
    
    $dateiname="Gaestebuch.txt";
    $datei=fopen ($dateiname, "r");
    $lines = array();
    //$text=fread ($datei, filesize ($dateiname));
    while(!feof($datei)) 
    { 
    	$text = fgets($datei);
    	array_push($lines,$text); 
    }
    fclose ($datei);
    rsort($lines);
    
    echo"<textarea name='Geastebuch' cols='90' rows='40' class='GaestebuchTextfeld' readonly>";
    foreach($lines as $l)
    {
    	echo $l."\n";
    }
    echo"</textarea><br><br>";
    ?>
    
    
    <form action="Gaestebuch.php" method="post">
    	<span class="Headline">Ihr Eintrag</span><br>
    	<textarea name="neuer_Eintrag" cols="60" rows="5" class="GaestebuchTextfeld">
    	</textarea><br><br>
    	<span class="Headline">Dein Name:</span>
    	<input type="text" name="name" size="24" maxlength="24" class="GaestebuchTextfeld">
    	<br><br>
    	<input type="submit" name="Senden" value="Let´s Go!" class="ButtonGaestebuch">
    	<br>
    	<br>
    	</div>
    </form>
    </font>
    </b>


    Ich habe jetzt diesen Teil hier verändert:

    $dateiname="Gaestebuch.txt";
    $datei=fopen ($dateiname, "r");
    $lines = array();
    //$text=fread ($datei, filesize ($dateiname));
    while(!feof($datei)) 
    { 
    	$text = fgets($datei);
    	array_push($lines,$text); 
    }
    fclose ($datei);
    rsort($lines);
    
    echo"<textarea name='Geastebuch' cols='90' rows='40' class='GaestebuchTextfeld' readonly>";
    foreach($lines as $l)
    {
    	echo $l."\n";
    }
    echo"</textarea><br><br>";


    Ich speicher alle Lines einzeln in ein Array, danach nutz ich rsort() um die die Reihenfolge zu ändern. mit einer Foreach-Schleife geb ich dann einfach die Arrayeinträge aus.

    Mit folgendem Code kannst du schauen was in deinem Array gespeichert ist und die Daten nutzen:

    echo "<pre>";
    print_r($lines);
    echo"</pre>";


    das PRE-Tag verwende ich damit das Array schön zu sehen ist.

    wenn die Schrift net ok is, benutz CSS, verwende Arial, Verdana oder sowas was die meisten haben.


    Ich hoffe es hilft dir weiter. ( Bei mir Funktionierts ^^)

    Grüsse
    Color
  6. Autor dieses Themas

    mk-server-kk

    mk-server-kk hat kostenlosen Webspace.

    Danke!
    Aber jetzt taucht immernoch ein Problem auf!:
    Die Kopfzeile eines Eintrags dh. Name Datum usw. wird nicht mit sortiert!
  7. Hi,

    Hast du mir einen link dazu und einen Eintrag aus deiner Gaestebuch.txt?

    Dann kann ich mal schauen ob das auch sortierbar ist.

    Grüsse
    Color
  8. Autor dieses Themas

    mk-server-kk

    mk-server-kk hat kostenlosen Webspace.

    Das Problem habe ich gerade selber gelöst! Danke für alles!

    :closed:
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!