2016-11-05 2 views
-1

Я просил об этом некоторое время назад, но это касалось других вещей.PHP-код работает локально, но не на сервере

На моем локальном сервере, если я зашел на сайт www.localhost/en/register/у меня есть форма. Как только я отправлю форму, она не отправляется на страницу. Страница, похоже, не читает ее или что-то в этом роде.

Вот форма:

<form class="form_main" method="post" action="/en/register/"> 
      <h2>Registration</h2> 
       <table> 
        <tr><td><label>Username</label><input maxlength="15" type="text" name="username"></td></tr> 
        <tr><td><label>Password</label><input maxlength="32" type="password" name="password"></td></tr> 
        <tr><td><label>E-Mail</label><input maxlength="50" type="email" name="email"></td></tr> 
        <tr><td><label>How did you find us?</label><input maxlength="50" type="text" name="howfind"></td></tr> 
        <tr><td><label>Why do you want to join?</label><textarea maxlength="1000" rows="5" cols="30" type="text" name="join"></textarea></td></tr> 
        <tr><td><input class="button_o" value="Send" type="submit"></td></tr> 
       </table> 
      </form> 

На местном, он отлично работает, но на моем сервере, это не кажется, что читать мой код.

if(isset($_POST['username'],$_POST['password'],$_POST['email'],$_POST['howfind'],$_POST['join'])){ 
//Some code here 
} 

Я заметил, что ни одна из моих форм не работает. Он не передает вещи, когда я нажимаю кнопку «Отправить». Он просто перезагружает страницу, на которой он выглядит. Кто-нибудь знает, почему?

Да, у меня есть <base href="">, если кто-нибудь спросит.

EDIT: После удаления атрибута действия он работает, но как только я делаю что-то вроде if(empty($_POST['something'])){}, он делает страницу белой без ошибок.

+0

Любые записи в журнале ошибок? На вкладке сети вашего браузера выполняется запрос POST? –

+0

Если форма и код php находятся в одном исходном файле, избавьтесь от атрибута 'action'. Это не нужно, и это просто усложняет ситуацию в определенных ситуациях ... – geomagas

+0

@JamieTaylor Почтовый запрос, похоже, не происходит. Я сделал другое заявление на нем, и он никогда не менялся – Synyster

ответ

0

Убедитесь, что действие вашей формы отправляет данные сообщения на URL-адрес, который перенаправляется как http-статус 301 или 302. Если это так, это может быть проблемой. Чтобы сделать эту проверку, откройте Firebug в инструментах разработчика Firefox или Chrome, перейдите на вкладку «Сеть» и нажмите «Отправить» в вашей форме. Вы должны увидеть свой почтовый запрос вместе со своим http-статусом. Вы также можете просмотреть опубликованные данные. Но помните, что сообщение будет доступно только в том случае, если статус http равен 200.

Возможно, ваш сервер перенаправляет URL-адреса, которые заканчиваются косой чертой («/») на url без косой черты, и это может вызвать 301 статус http. Попробуйте удалить косые черты ваших URL-адресов в действии формы.

Смежные вопросы