Как сохранить корректные данные в форме

Статус
В этой теме нельзя размещать новые ответы.

verfaa

Профессор
Регистрация
29 Янв 2007
Сообщения
416
Реакции
49
Допустим есть форма со множеством полей. При заполнении полей юзер допустил ошибки при заполнении. Как сохранить корректные данные при повторном выводе формы чтобы юзеру не пришлось заполнять их заново?
 
выводи в значения этих полей уже введенные данные -- или есть какието еще варианты ?


PHP:
<input type="text"  name="pole1" value="<?php echo $_POST['pole1'];?>" id="pole1">
с другими инпутами - по аналогии

[/php]
 
Дело в том, что поля у меня описаны внутри функции примерно так:
Код:
function sama_forma()
{

	echo "<form method='post' name='register_form' target='_top'>"; 
	
	echo "*Ваше имя: <input name='youname' type='text' size='25' maxlength='30' /> <br /><br />";
	
	echo "*Ваш возраст: <input name='vozrast' type='text' size='15' maxlength='15' />";	
	
	echo "<input name='hidden' type='hidden' value='i' />";
	
	echo "<input name='knopka' type='submit' />";
	echo "</form>";

}
и применение <?php ?> внутри функции сразу вызывает ошибку.
Без <?php ?> тоже ошибку выдаёт.

Ещё один вариант я нашёл в книге "Стивен Хольцнер - PHP в примерах (Включая версию 6)" на 209-й странице, там примерно такой код описан
Код:
function sama_forma()
{
    $you_name = isset ($_REQUEST["youname"]) ?
	$_REQUEST["youname"] : "";
	$you_vozrast = isset ($_REQUEST["vozrast"]) ?
	$_REQUEST["vozrast"] : "";
	echo "<form method='post' name='register_form' target='_top'>"; 
	
	echo "*Ваше имя: <input name='youname' type='text' size='25' maxlength='30' 
.........
Примерно, т.к. она отсканена в очень плохом качестве, многие символы заменились другими
 
Если ты форму выводишь с помощью php изначально, то зачем тебе в ней еще какие-то <? ?
PHP:
echo "<input type=\"text\" name=\"pole1\" value=\"".$_POST['pole1']."\" id=\"pole1\">";
 
что-то намудрено с кавычками глаз сломаешь
PHP:
function sama_forma()
{
	echo "<form method='post' name='register_form' target='_top'>"; 
	echo "*Ваше имя: <input name='youname' value='".$_POST['youname']."' type='text' size='25' maxlength='30' /> <br /><br />";
	echo "*Ваш возраст: <input name='vozrast' value='".$_POST['vozrast']."' type='text' size='15' maxlength='15' />";	
	echo "<input name='hidden' type='hidden' value='i' />";
	echo "<input name='knopka' type='submit' />";
	echo "</form>";
}
 
что-то намудрено с кавычками глаз сломаешь
PHP:
function sama_forma()
{
	echo "<form method='post' name='register_form' target='_top'>"; 
	echo "*Ваше имя: <input name='youname' value='".$_POST['youname']."' type='text' size='25' maxlength='30' /> <br /><br />";
	echo "*Ваш возраст: <input name='vozrast' value='".$_POST['vozrast']."' type='text' size='15' maxlength='15' />";	
	echo "<input name='hidden' type='hidden' value='i' />";
	echo "<input name='knopka' type='submit' />";
	echo "</form>";
}
Конкатенация строк тут не к чему.Такой вариант будет работать быстрее.
PHP:
function sama_forma() 
{ 
    echo "<form method='post' name='register_form' target='_top'>";  
    echo "*Ваше имя: <input name='youname' value='{$_POST['youname']}' type='text' size='25' maxlength='30' /> <br /><br />"; 
    echo "*Ваш возраст: <input name='vozrast' value='{$_POST['vozrast']}' type='text' size='15' maxlength='15' />";     
    echo "<input name='hidden' type='hidden' value='i' />"; 
    echo "<input name='knopka' type='submit' />"; 
    echo "</form>"; 
}
 
Если хотите проверить данные на правильность, то перед выводом функцией echo сделайте соответсвующую валидацию и приведите данные к корректной форме.
PHP:
function sama_forma()  
{   
    $age = $name = '';
    //проверка
    if(preg_match("/^[\w]+$/i", $_POST['youname'])){
        $name = $_POST['youname'];
    }
    if(preg_match("/^[\d]+$/i", $_POST['vozrast'])){
        $age = $_POST['vozrast'];
    }
    echo "<form method='post' name='register_form' target='_top'>";   
    echo "*Ваше имя: <input name='youname' value='$age' type='text' size='25' maxlength='30' /> <br />";  
    echo "*Ваш возраст: <input name='vozrast' value='$name' type='text' size='15' maxlength='15' />";      
    echo "<input name='hidden' type='hidden' value='i' />";  
    echo "<input name='knopka' type='submit' />";  
    echo "</form>";  
}
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху