2014-12-12 15 views
0

Вот код для регистрации. Значения вставлены правильно, но страница не перенаправляется на другую страницу:Как перенаправить на другую страницу в php?

if(isset($_POST['submit'])){ 
    $company_name = $_POST['company_name'];//check whether form is submitted or not 
    $email = filter_var($_POST['email'],FILTER_SANITIZE_EMAIL);//email validation 
    $password = sha1($_POST['password']); 
    $phone = $_POST['phone']; 
    $city = $_POST['city']; 
    $profession = $_POST['profession']; 

    check validation of email 
    if(!filter_var($email,FILTER_SANITIZE_EMAIL)){ 
     echo 'invalid email'; 
    } 

    else 

    { 
     $result = mysql_query("SELECT * FROM registerpro WHERE email = '$email'");selecting email from database 
     $data = mysql_num_rows($result);//check if there is result 


     if($data==0){ 

      $qry = mysql_query("INSERT INTO registerpro (company_name,email,password,phone,city,profession) VALUES ('$company_name','$email','$password','$phone','$city','$profession')"); 

здесь я это проблема, так как страница не перенаправляет на другую страницу, поэтому, пожалуйста, скажите мне, как это исправить

  if($qry){ 



       header("Location : company_info.php");//redirect to company_info 

      } 
      else`enter code here` 
      { 
       echo 'error'; 
      } 
     }else{ 
      echo 'invalid email'; 
     } 
    } 
} 
?> 

После регистрации страница не перенаправляется на company_info.

+0

Прекратите использование устаревшего 'mysql_ *' функции ! вместо этого используйте PDO/MySQLi. И ваш PHP-скрипт содержит множество синтаксических ошибок. Также может возникнуть SQL-инъекция. Дублирующий вызов 'filter_var()'. Не использовал 'exit' после' header ("Location: $ url"); '. ТОННЫ ОШИБОК! – Raptor

+0

да, я знаю, но это мое первое задание и только обучение ... будет охватывать все –

ответ

3

Удалить дополнительное пространство после Location

Так, изменение

header("Location : company_info.php");//redirect to company_info 

To:

header("Location: company_info.php");//redirect to company_info 
//   ^here 
+0

wooo .... его это просто .... спасибо за тонну за помощь было так расстроено .... я новичок в php поэтому очень мало ошибок заметить очень сложно .... –

+0

Добро пожаловать, рад узнать, что ваша проблема решена. – Pupil

+0

Итак, если мой ответ - это решение, пожалуйста, примите его. – Pupil

1

я, наконец, понял это после того, как изо всех сил немного. Если вы выполняете веб-поиск в функции PHP header(), вы обнаружите, что он должен использоваться в самой верхней части файла перед отправкой любого вывода.

Моя первая реакция была «хорошо, что не помогает», но это происходит потому, что, когда нажата кнопка отправки из тега ввода HTML, функция заголовка() будет запущена вверху.

Чтобы продемонстрировать это, вы можете поместить раздел PHP кода на самом верху с помощью следующей строки ...

print_r($_POST); 

Когда вы затем нажмите кнопку «Отправить» на веб-странице вы увидите Изменение значения $ _POST.

В моем случае я хотел, чтобы пользователь принял Условия & Соглашение перед тем, как перенаправить на другой URL.

В верхней части файла перед HTML-тега я поставил следующий код:

<?php 
    $chkboxwarn = 0; 
    /* Continue button was clicked */ 
    if(!empty($_POST['continue']) && $_POST['continue']=='Continue'){ 

     /* Agree button was checked */ 
     if(!empty($_POST['agree']) && $_POST['agree']=='yes'){ 
     header('Location: http://www.myurlhere.com'); 
     } 
     /* Agree button wasn't checked */ 
     else{ 
    $chkboxwarn = 1; 
     } 

    } 
?> 

В HTML теле я поставил следующее:

<form method="post"> 
    <input type="checkbox" name="agree" value="yes" /> I understand and agree to the Terms above.<br/><br/> 
    <input type="submit" name="continue" value="Continue"/> 
</form> 

<?php 
    If($chkboxwarn == 1){ 
     echo '<br/><span style="color:red;">To continue you must accept the terms by selecting the box then the button.</span>'; 
    } 
?> 
Смежные вопросы