php form action php self

У меня такая форма php.

<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>