ilch Forum » Ilch Clan 1.1 » Fehlersuche und Probleme » Shoutbox

Geschlossen
  1. #1
    User Pic
    MadMetzi gelöschter User
    Hat das einer hinbekommen mit dem Problem des Designs verziehens bei Eingabe eines langen Wortes in der Shoutbox.
    Bitte nicht wieder den Hinweis den man in Google gefunden hat.
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    SLJ Hall Of Fame
    Registriert seit
    18.05.2004
    Beiträge
    15.492
    Beitragswertungen
    3 Beitragspunkte
    Hierkannst das mal versuchen das habe ich auf irgend einer code Schnippfel seite gefunden:
    Wer ein Gästebuch oder ein Forum betreibt, kennt das Problem vielleicht: 
    Mühsam hat man ein schönes Layout entwickelt und dann kommt irgendein 
    User daher, gibt ein ungewöhnlich langes Wort (oftmals nur eine lange 
    Folge von "-") ein und schon ist unser schönes Layout dahin.
    Dies kann man durch die Festlegung einer maximalen Wortlänge verhindern.
    
    Der folgende Code zerlegt zunächst einmal einen Text ($text) in einzelne 
    Wörter. Jedes Wort wird anschließend überprüft, ob seine Zeichenlänge die 
    maximale Länge ($maxChar) überschreitet. Wenn das der Fall ist, wird in 
    diesem Wort an der Stelle $maxChar der Inhalt der Variablen $substitute 
    (hier: <br>) eingefügt. Der gesamte neue Text steht zum Schluss in der 
    Variablen $newText zur weiteren Verarbeitung (z.B. speichern in der Datenbank) zur Verfügung.
    Hier nun der Quellcode:
    
    $maxChar=50;
    $substitute="<br>";
    $newText="";
    $woerter = explode ( " ", $text);
    foreach($woerter as $value){
    if(strlen($value)>$maxChar){
    $newText.=chunk_split ( $value, $maxChar, $substitute);
    }else {
    $newText.=$value." ";
    }
    }


    mfg
    SLJ


    Zuletzt geändert von SLJ am 06.08.2005 - 17:14
    externer Link
    Ilch 1.0.4 PHP 7.0 und PDO Fähig na klar lächeln
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    MadMetzi gelöschter User
    Ach SLJ zwinker
    das haste doch schon immer und immer wieder gepostet. Das meinte ich mit "über Google" gefunden. zwinker
    Wo soll der Kram den hin?
    Ich hab nicht so den Schimmer wo die Ausgabe ist in der Shoutbox.php.
    <?php 
    #   Copyright by Manuel
    #   Support www.ilch.de
    
    
    defined ('main') or die ( 'no direct access' ); 
    
    if ( isset ( $_GET['delete']) ) { 
      if ( $_SESSION['authright'] == -5 ) { 
          db_query("DELETE FROM prefix_shoutbox WHERE id = ".$_GET['delete']); 
            $_GET['archiv'] = 1; 
        } 
    } 
    if ( empty($_GET['archiv']) ) { 
    
      if ( $_SESSION['authright'] <= -1 ) { 
        $shoutbox_VALUE_name = $_SESSION['authname']; 
      } else { 
        $shoutbox_VALUE_name = 'Nickname'; 
      } 
      if ( !empty($_POST['shoutbox_submit']) ) { 
        $_SESSION['shoutbox_shouted'] = TRUE; 
            $shoutbox_nickname = escape($_POST['shoutbox_nickname'],'string'); 
          $shoutbox_textarea = escape($_POST['shoutbox_textarea'],'textarea'); 
            $shoutbox_textarea = str_replace('[b]','',$shoutbox_textarea); 
            $shoutbox_textarea = str_replace('[/b]','',$shoutbox_textarea); 
            $shoutbox_textarea = str_replace('[i]','',$shoutbox_textarea);  
     		$shoutbox_textarea = str_replace('[/i]','',$shoutbox_textarea);
    		$shoutbox_textarea = str_replace('[u]','',$shoutbox_textarea);
    		$shoutbox_textarea = str_replace('[/u]','',$shoutbox_textarea);
    		$shoutbox_textarea = str_replace('[img]','',$shoutbox_textarea);
    		$shoutbox_textarea = str_replace('[img]','',$shoutbox_textarea);
    		$shoutbox_textarea = str_replace('[code]','',$shoutbox_textarea);
    		$shoutbox_textarea = str_replace('
    ','',$shoutbox_textarea);
    $shoutbox_textarea = strip_tags($shoutbox_textarea);
    if ( !empty($shoutbox_nickname) AND !empty($shoutbox_textarea) ) {
    db_query('INSERT INTO `prefix_shoutbox` VALUES ( "" , "'.$shoutbox_nickname.'" , "'.$shoutbox_textarea.'" ) ' );
    }
    }
    echo '<form action="index.php" method="POST">';
    echo '<input type="text" size="15" name="shoutbox_nickname" value="'.$shoutbox_VALUE_name.'" onFocus="if (value == \''.$shoutbox_VALUE_name.'\') {value = \'\'}" onBlur="if (value == \'\') {value = \''.$shoutbox_VALUE_name.'\'}" maxlength="50">';
    echo '<br /><textarea cols="30" rows="3" name="shoutbox_textarea"></textarea><br />';
    echo '<input type="submit" value="Senden" name="shoutbox_submit">';
    echo '</form><table width="100%" align="center" class="border" cellpadding="2" cellspacing="1" border="0">';
    $erg = db_query('SELECT * FROM `prefix_shoutbox` ORDER BY id DESC LIMIT 4');
    $class = 'Cnorm';
    while ($row = db_fetch_object($erg) ) {
    $class = ( $class == 'Cmite' ? 'Cnorm' : 'Cmite' );
    echo '<tr class="'.$class.'"><td><b>'.$row->nickname.':</b>&nbsp;'.bbcode($row->textarea).'</td></tr>';
    }

    echo '</table><a class="box" href="?m=boxes/shoutbox&amp;archiv=1" onClick="window.open(\'#\', \'external\',\'width=500,height=400,scrollbars=yes,resizable=no\')" target="external">Archiv</a>';
    } else {

    $title = $allgAr['title'].' :: Shoutbox Archiv';
    $hmenu = 'Shoutbox Archiv';
    $design = new design ( $title , $hmenu , 0 );
    $design->header();
    $class = 'Cnorm';
    echo '<table width="100%" align="center" class="border" cellpadding="2" cellspacing="1" border="0"><tr class="Chead"><td><b>Shoutbox Archiv</b></td></tr>';
    $erg = db_query('SELECT * FROM `prefix_shoutbox` ORDER BY id DESC');
    while ($row = db_fetch_object($erg) ) {
    $class = ( $class == 'Cmite' ? 'Cnorm' : 'Cmite' );
    echo '<tr class="'.$class.'"><td>';
    if ( $_SESSION['authright'] == -5 ) {
    echo '<a href="?m=boxes/shoutbox&amp;delete='.$row->id.'">DEL</a>&nbsp;';
    }
    echo '<b>'.$row->nickname.':</b>&nbsp;'.bbcode($row->textarea).'</td></tr>';
    }
    echo '</table>';
    $design->footer();
    }
    ?>
    [/code]
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    SLJ Hall Of Fame
    Registriert seit
    18.05.2004
    Beiträge
    15.492
    Beitragswertungen
    3 Beitragspunkte
    Wenn ich es wüsste würde ich es ja schreiben.
    externer Link
    Ilch 1.0.4 PHP 7.0 und PDO Fähig na klar lächeln
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Panicsheep Hall Of Fame
    Registriert seit
    24.08.2004
    Beiträge
    10.192
    Beitragswertungen
    16 Beitragspunkte
    Ich meine ich hab ja kein plan von PHP aber für mich sieht diese Zeile stark nach der Ausgabe aus
    echo '<tr class="'.$class.'"><td><b>'.$row->nickname.':</b>&nbsp;'.bbcod- e($row->textarea).'</td></tr>


    Denn das Inputfeld für den Namen heist Nickname und das Textfeld heißt Textarea

    Und da in dieser Zeile beide per echo ausgegeben werden, dürfte das wohl die Ausgabe sein.
    Somit muss an der stelle der "Zeilenumbruchscode" eingebaut werden.
    Aber wie is mir schleierhaft
    Omnia bona erunt
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    SLJ Hall Of Fame
    Registriert seit
    18.05.2004
    Beiträge
    15.492
    Beitragswertungen
    3 Beitragspunkte
    Dann müste man einfach das $row->textarea durch den filter jagen und dann also $textneu wieder anzeigen lassen! nur was ich nicht weiß! Was passiert mit den wörtern die zu lange seind ?

    mfg
    SLJ
    externer Link
    Ilch 1.0.4 PHP 7.0 und PDO Fähig na klar lächeln
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Fehlersuche und Probleme

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten