Как получить доступ к переменной 'имени' формы от PHP

Чтобы подсчитать абзацы содержимого в буфере обмена, используя объектную модель Word, сначала необходимо поместить это содержимое в документ Word. Буфер обмена не является частью Word и не «понимает» синтаксис Word.

Хотя это можно сделать, используйте Selection и Activate, но вместо этого более эффективно и менее «раздражает» работать с объектами Word. В этом случае объявите объект Document и установите добавляемый к нему документ. Тогда можно всегда использовать эту объектную переменную - не нужно ее активировать, не нужно использовать Documents(index) для адресации этого документа.

Кроме того, я бы хотел поместить эти шаги в отдельную процедуру, которая возвращает количество абзацев. Как правило, это облегчает чтение и поддержку кода.

Например:

Function InsertAndProcessMultipleParagraphs() As Long

'Declarations    
    Dim MyData As MSForms.DataObject
    Dim intNumPara As Integer
    Dim objDoc as Word.Document
    Dim rng as Word.Range

'Fill them objects
'?Probably not needed for this approach?
'    Set MyData = New MSForms.DataObject
'    MyData.GetFromClipboard

    Set objDoc = Application.Documents.Add
    objDoc.ActiveWindow.Visible = False

'Put clipboard contents into the new document object
   Set rng = objDoc.Content
   rng.PasteSpecial Link:=False, DataType:=wdPasteText, Placement:=wdInLine, DisplayAsIcon:=False

'Read out paragraph number in that document    
    intNumPara = objDoc.Paragraphs.Count

'Close that document (without nasty questions)     
    objDoc.Close SaveChanges:=wdDoNotSaveChanges   
    InsertAndProcessMultipleParagraphs = intNumPara
End Function

Sub MacroThatUsesTheInfo
   Dim intNumPara as Long

   intNumPara = InsertAndProcessMultipleParagraphs

'Paste the Clipboard content into target document at current cursor position 
    Selection.PasteSpecial Link:=False, DataType:=wdPasteText, Placement:=wdInLine, DisplayAsIcon:=False

'Expand selection to cover all the paragraphs inserted    
    Selection.MoveUp Unit:=wdParagraph, Count:=intNumPara, Extend:=wdExtend

'Do something nice and useful with these paragraphs 
    Application.Run MacroName:="Normal.MyMacros.Do-someting-nice-and-useful"

End Sub
25
задан Peter Mortensen 22 November 2016 в 22:41
поделиться

5 ответов

Чтобы идентифицировать отправленную форму, вы можете использовать:

  • Скрытое поле ввода.
  • Имя или значение кнопки отправки.

Имя формы не отправляется на сервер как часть данных POST.

Вы можете использовать следующий код

<form name="myform" method="post" action="" enctype="multipart/form-data">
    <input type="hidden" name="frmname" value=""/>
</form>
87
ответ дан 28 November 2019 в 17:36
поделиться

Имя формы не отправлено. Вам нужно просто добавить скрытое поле в каждую форму и завершить его.

13
ответ дан 28 November 2019 в 17:36
поделиться

Отправляются только имена полей формы, а имя самой формы - нет. Но вы можете установить скрытое поле с именем в нем.

0
ответ дан 28 November 2019 в 17:36
поделиться

Вы понимаете, что с помощью echo $ height; вы открываете очень-очень серьезную дыру в безопасности в своем приложении, верно?

0
ответ дан 28 November 2019 в 17:36
поделиться

Как указано в petervandijck.com , этот код может быть уязвим для XSS-атак, если он находится за какой-то системой входа в систему или встроен в другой код. .

Чтобы предотвратить XSS-атаку, вы написали:

<?php echo "$weight"; ?>

Вместо этого вы должны написать:

<?php echo htmlentities($weight); ?>

Что может быть даже лучше записано как:

<?=htmlentities($weight); ?>
2
ответ дан 28 November 2019 в 17:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: