Чтобы подсчитать абзацы содержимого в буфере обмена, используя объектную модель 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
Чтобы идентифицировать отправленную форму, вы можете использовать:
Имя формы не отправляется на сервер как часть данных POST.
Вы можете использовать следующий код
<form name="myform" method="post" action="" enctype="multipart/form-data">
<input type="hidden" name="frmname" value=""/>
</form>
Имя формы не отправлено. Вам нужно просто добавить скрытое поле в каждую форму и завершить его.
Отправляются только имена полей формы, а имя самой формы - нет. Но вы можете установить скрытое поле с именем в нем.
Вы понимаете, что с помощью echo $ height; вы открываете очень-очень серьезную дыру в безопасности в своем приложении, верно?
Как указано в petervandijck.com , этот код может быть уязвим для XSS-атак, если он находится за какой-то системой входа в систему или встроен в другой код. .
Чтобы предотвратить XSS-атаку, вы написали:
<?php echo "$weight"; ?>
Вместо этого вы должны написать:
<?php echo htmlentities($weight); ?>
Что может быть даже лучше записано как:
<?=htmlentities($weight); ?>