A ver prueba con:
Código PHP:
<?php
$preguntas = $_POST['preguntas'];
$i=1;
do{
echo "<br>pregunta ".$i."<input name = '".$i."' type = 'text' size ='50' maxlength ='50'>";
$i++;
}while ($i<=$preguntas);
echo "<input name = 'textos' type = 'hidden' size ='2' maxlength ='5' value = '".$i."'>";
?>
El error puede estar en el uso de
$HTTP_POST_VARS, en lugar de
$_POST, asimismo comprueba el uso de las variables (
$i).
Espero que te solucione el problema.
Saludos.