<form name="form1" id="mainForm" method="post"enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF'];?>"> </form   В действии формы я хочу использовать имя страницы с параметрами.  как house.php?p_id=10111 .  Но $ _SERVER ['PHP_SELF'] дает только house.php (моя страница full url is house.php?p_id=10111 вот так) Пожалуйста, помогите мне решить эту проблему.  Благодарю. 
Как насчет того, чтобы оставить его пустым, что с этим не так?
 <form name="form1" id="mainForm" method="post" enctype="multipart/form-data" action=""> </form> 
Кроме того, вы можете опустить атрибут action, и он будет работать, как ожидалось.
Вы можете оставить действие пустым или использовать этот код:
 <form name="form1" id="mainForm" method="post" enctype="multipart/form-data" action="<?php echo $_SERVER['REQUEST_URI'];?>"> </form> 
Если оставить значение действия пустым, это приведет к тому, что форма вернется к себе.
Вы также можете использовать ярлык эха вместо того, чтобы печатать «echo blah»; как показано ниже:
 <form method="POST" action="<?=($_SERVER['PHP_SELF'])?>"> 
  Другой (и, по моему мнению, правильный) метод использует константу __FILE__ если вам не нравится полагаться на переменные $_SERVER . 
 $parts = explode(DIRECTORY_SEPARATOR, __FILE__); $fileName = end($parts); echo $fileName; 
О магии и предопределенных константах: 1 , 2 .
Это потрясающе. Попробуй это 🙂
 <form name="test" method="post" enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>"> /* Html Input Fields */ </form>