Fehler in Funktion

suntrop

Erfahrenes Mitglied
Hi.

Bisher sahen meine Input-Felder zum Prüfen so aus:
HTML:
<input type="text" name="phone" id="phone" <?php if (isset($phone)) {echo "value='$phone'";} ?> <?php if (strpos($errorfield, "phone")) {echo "style='border:1px solid red'";}  ?> />

Da mir das zuviel durcheinander ist wollte ich es folgendermaßen umstellen:
HTML:
<input type="text" name="phone" id="phone" <?php check_field($phone, $errorfield, 'phone'); ?> />

Also eine Funktion nutzen, die wie folgt ausschaut:
PHP:
function check_field($field, $errorfield, $this_error_name)
{
	if (!empty($field) && strpos($errorfield, $this_error_name))
	{
		return "value=\"".$field."\" style=\"border: 1px solid #990;\"";
	}
	
	if (empty($field))
	{
		return "style=\"border: 1px solid #990;\"";
	}
	
	if (!empty($field))
	{
		return "value=\"".$field."\"";
	}
}

Außerdem prüfe ich noch folgendes:
PHP:
if (isset($_POST['submit_action'])) {

	$error = false;
	$err_msg = "";
	$errorfield = "fields_to_highlight";

	if (empty($phone)) {
		$error = true;
		$err_msg .= "Bitte geben Sie Ihre Telefonnummer ein.<br />\n";
		$errorfield .= 'phone';
	}
}

Nur scheint meine Funktion an irgendeiner Stelle nicht zu funktionieren. Aber eine Fehlermeldung erhalte ich auch nicht. Ich weiß einfach nicht woran es liegt, dass weder der Inhalt (wenn vorhanden) eingesetzt wird noch wird eine Fehlermeldung (roter Rahmen um Input-Feld) erscheint.
 
Also ich würde auch die Parameter $_GET oder $_POST verwenden ;)

ansonsten musst du
HTML:
<input type="text" name="phone" id="phone" <?php check_field($phone, $errorfield, 'phone'); ?> />

mit
HTML:
<input type="text" name="phone" id="phone" <?php echo check_field($phone, $errorfield, 'phone'); ?> />

ersetzen ;D

Viel Glück ;D

hier mein test Code:
PHP:
<?php

/**
 * @author Dexus
 * @copyright 2007
 */
function check_field($field, $errorfield, $this_error_name)
{
    if (!empty($field) && strpos($errorfield, $this_error_name))
    {
        return "value=\"".$field."\" style=\"border: 1px solid #990;\"";
    }
    
    if (empty($field))
    {
        return "style=\"border: 1px solid #990;\"";
    }
    
    if (!empty($field))
    {
        return "value=\"".$field."\"";
    }
}  

if (isset($_GET['submit_action'])) {

    $error = false;
    $err_msg = "";
    $errorfield = "fields_to_highlight";

    if (empty($_GET["phone"])) {
        $error = true;
        $err_msg .= "Bitte geben Sie Ihre Telefonnummer ein.<br />\n";
        $errorfield .= 'phone';
        echo "11_";
    }
}  

?>
<form method="GET">
<input type="text" name="phone" id="phone" <?php echo check_field($_GET["phone"], $errorfield, 'phone'); ?> />
<input type="submit" value="ff">
</form>
 
Zuletzt bearbeitet:
Danke PowerCheat.

Ich werde das später noch ausprobieren.

Also ich würde auch die Parameter $_GET oder $_POST verwenden
Das habe ich wohl vergessen. Ich wandel mir die immer um, damit ich die "einfachen" Variablen nutzen kann. Finde ich übersichtlicher.
 
Zurück