schwierig: PHP-Feedback-Formular

Fleck06

Erfahrenes Mitglied
Ich hab hier folgendes Feedback-Formular, und möchte es so erweitern, dass eine Mindesteingabe an Text im Nachrichtenfenster eingegeben werden muss...

PHP:
$newpoint   = '<img src="'.$designpath.'stop.gif" width="16" height="16" align="absmiddle">&nbsp;';

// Voreinstellung per Parameterübergabe
if(isset($_GET['betreff']) && (int)$_GET['betreff']>0 && (int)$_GET['betreff']<count($betreff))
    $pflichtbetreff = true;

if(isset($_POST['submit'])) {
    if(empty($_POST['email']))  {
        $Nachricht .= $newpoint.$_SP[4]."<br>";
    } elseif(!empty($_POST['email']) && !eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@([a-z0-9-]+\.){1,3}([a-z0-9-]{2,3})$",$_POST['email'])) {
        $Nachricht .= $newpoint.$_SP[5]."<br>\n";
    }
    if(empty($_POST['betreff']) && !$pflichtbetreff)  {
        $Nachricht .= $newpoint.$_SP[54]."<br>\n";
    }
    if(empty($_POST['text']))  {
        $Nachricht .= $newpoint.$_SP[55]."<br>\n";
    }

    if(!$Nachricht) {
        // Mailinhalt definieren:
        $Text  = "Feedback:\n";
        $Text .= ($_POST['email'])   ? "Email: ".strip_tags($_POST['email'])."\n"     : "Email: no data\n";
        $Text .= "Subject: ".$betreff[1]."\n\n";
        $Text .= str_repeat('-',70)."\n".strip_tags($_POST['text'])."\n";

        // Alles ok, Mail verschicken.
        $absender = ($_POST['email']) ? strip_tags($_POST['email']) : $feedback;
        $from     = $from ? $from : $absender;

        sendmail($CONFIG['email_feedback'],stripslashes($Text),$betreff[(int)$_REQUEST['betreff']],$from,"reply=$absender");
        $gesendet = true;

    }
}


$TMP = array();
if(!$gesendet)   $TMP['%[SENDINFO]%'] = $_SP[49];
else             $TMP['%[SENDINFO]%'] = '';

$TMP['%[ERRORINFO]%'] = $Nachricht ? '<br><br>'.$Nachricht.'<br>' : '';

ob_start();
?>
<form method="POST" name="kontakt" action="">
  <input type="hidden" value="1" name="submit">
  <table border="0">
    <tr>
      <td valign="middle" align="right" nowrap><font color="#CC0000"><b><?=$_SP[51]?>&nbsp;</font></td>
      <td><input type="text" name="email" size="30" value="<?php print htmlentities(stripslashes($_POST['email']));?>" tabindex="2"></td>
    </tr>
    <tr>
      <td valign="middle" align="right" nowrap><font color="#CC0000"><b><?=$_SP[52]?>&nbsp;</font></td>
      <td><?PHP
                if(!$pflichtbetreff) {
                    print '<select size="1" name="betreff" tabindex="4">';

                    while(list($a,$b) = each($betreff))
                        if($a == (int)$_REQUEST['betreff'])
                            print '<option value="'.$a.'" selected>'.$b.'</option>';
                        else
                            print '<option value="'.$a.'">'.$b.'</option>';
                    print '</select>';
                } else {
                    print $betreff[(int)$_GET['betreff']];
                }
          ?></td>
    </tr>
    <tr>
      <td valign="top" align="right"><b><?=$_SP[53]?>&nbsp;</font></td>
      <td><textarea rows="8" name="text" cols="55" tabindex="5"><?php print htmlentities(strip_tags(stripslashes($_POST['text'])));?></textarea></td>
    </tr>
    <tr>
      <td valign="top" align="right"></td>
      <td><input type="submit" value="  <?=$_SP[50]?>  " border="0"></td>
    </tr></form>
  </table>
<?PHP


$TMP['%[FEEDBACKFORM]%']  = !$gesendet  ? ob_get_contents() : $_SP[48].'<br>';
ob_end_clean();

print template($LANGDIR.'feedback.htm',$TMP);

Wie mach ich das?
 
Am besten vor oder nach dieser Abfrage
PHP:
if(empty($_POST['text']))  { 
        $Nachricht .= $newpoint.$_SP[55]."<br>\n"; 
}

$min=20 // order wie viele Zeichen es auch sein sollen
if(strlen(trim($_POST['text']))<20){
  // Fehlermeldung
}
 
DerBär hat gesagt.:
Am besten vor oder nach dieser Abfrage
PHP:
$min=20 // order wie viele Zeichen es auch sein sollen
if(strlen(trim($_POST['text']))<20){
  // Fehlermeldung
}
Das erscheint mir nicht sehr sinnvoll.
Du solltest auch die Variable verwenden, die du setzt! ;-]
PHP:
$min = 20; 
if(strlen(trim($_POST['text'])) < $min){
 //...
}
greetz
daddz
 
hm... das habe ich jetzt nun exakt genauso gemacht, ich habe lediglich die 20 durch eine 120 ersetzt...

Die Variable $min stellt doch die Mindesteingabe an Zeichen dar, oder?
 
EGAL:

Das Formular ist eh kagge. Kennt ihr ein einfaches Kontaktformular-Script mit:
- Name:
- Betreff:
- eMail:
- Nachricht:

- Mindesteingabe von Zeichen (die am besten nicht alle gleich sind - also wenn jmd ein wort oder Satz ganz oft wiederholt)
 
Fleck06 hat gesagt.:
EGAL:

Das Formular ist eh kagge. Kennt ihr ein einfaches Kontaktformular-Script mit:
- Name:
- Betreff:
- eMail:
- Nachricht:

- Mindesteingabe von Zeichen (die am besten nicht alle gleich sind - also wenn jmd ein wort oder Satz ganz oft wiederholt)

Das mit der Mindesteingabe von Zeichen und der Erkennung sich wiederholender Worte wirst Du dir wohl oder übel selber machen müssen.
 
Zurück