2016-02-18 4 views
1

Ошибка приема:Фатальная ошибка: Uncaught Ошибка: Вызов неопределенной функции loginRelocate() Javascript

Fatal error: Uncaught Error: Call to undefined function loginRelocate()

loginRelocate() является функцией Javascript для перенаправления страницы, если пользователь вошел в систему

Остальной код работает. ,

login.php

<html> 
<head> 
    <script src="https://code.jquery.com/jquery-2.2.0.min.js"></script> 
</head> 
<body> 
<?php include('submit2.php'); 
if(isset($_SESSION['login_user'])){ 
    loginRelocate(); 
} 
?> 
<div id="content" class="content"> 
    <div class="content-heading"> 
     <div class="content-heading-title"> 
     <h3>Login</h3> 
     </div> 
    </div> 
    <div class="content-info"> 
    <form id="myForm" method="post"> 
     <label for="username">Username:</label> 
     <input name="username" id="username" type="text" /><br /> 
     <label for="password">Password:</label> 
     <input name="password" id="password" type="password" /><br /> 
     <input type="button" id="submitFormData" onclick="SubmitFormData();" value="Submit" /> 
    </form> 
    <div id="results"></div> 
    </div> 
</div> 
<script> 
    function SubmitFormData() { 
     var username = $("#username").val(); 
     var pass = $("#password").val(); 
     $.post("submit2.php", { 
     username: username, 
     pass: pass 
     }, function(data) { 
     $('#results').html(data); 
     $('#myForm').trigger('reset'); 
     }); 
    } 
</script> 
<script type="text/javascript"> 
    function loginRelocate(){ 
     window.location.replace("panel/index.php"); 
    }); 
</script> 
</body> 
</html> 

благодарит

+2

loginRelocate - это функция javascript или функция php? Я думаю, что вы пытаетесь вызвать функцию javascript внутри области php. –

+0

@RafaelSoufraz его функция javascript, даже если я перемещаю функцию js внутри тега заголовка той же самой ошибки –

+0

Попробуйте скопировать и вставить код, приведенный ниже, в ваш системный приятель. Как ошибка javascript может вызвать исключение php? –

ответ

3

Как уже упоминалось, вы не можете вызвать функцию JavaScript из PHP таким образом ... правильный способ сделать это является

if(isset($_SESSION['login_user'])){ 
    echo '<script type="text/javascript">loginRelocate();</script>'; 
} 

или даже

if(isset($_SESSION['login_user'])) { 
    ?> <script type="text/javascript">loginRelocate();</script> <?php 
} 

альтернативным подходом было бы использовать PHP для перенаправления пользователя и полностью отказаться от JavaScript:

if(isset($_SESSION['login_user'])) { 
    header('Location: panel/index.php'); 
} 

Или, как последняя попытка, использовать HTML редирект:

if(isset($_SESSION['login_user'])) { 
    ?> <meta http-equiv="location" content="URL=panel/index.php" /> <?php 
} 

Это обескураженный, однако.

+0

Он сказал, что это не работает для его. Я не знаю, что я могу думать больше. –

+0

@Bjonnfesk Спасибо за ваш ответ и последний подход, я наклоняю, потому что у меня есть эта проблема, с которой мне пришлось обойтись с javascript на этой [ссылке] http: // stackoverflow.com/questions/35457448/jquery-интерферируя с заголовком-jQuery, было взаимозависимо с моим заголовком (местоположение), и спасибо за ваши ответы, я попробую их :) –

+0

Он действительно сказал это, но комментарий, в котором он говорит, что это было когда я писал свой пост, поэтому я этого не видел. Однако я решил оставить его, потому что он может помочь другим с аналогичными проблемами. – Bjonnfesk

0

Вы звоните loginRelocate, прежде чем объявить.
Попробуйте переместить объявление в начало страницы.

<head> 
    <script src="https://code.jquery.com/jquery-2.2.0.min.js"></script> 
    <script type="text/javascript"> 
     function loginRelocate(){ 
     window.location.replace("panel/index.php"); 
    }); 
</script> 
</head> 
+2

Вы не можете вызвать PHP-функцию из JavaScript таким образом. –

+0

Вы не можете вызвать функцию PHP из JavaScript таким образом. ² –

1

Попробуйте это:
loginRelocate является Java-функция или функция PHP? Я думаю, что вы пытаетесь вызвать функцию javascript внутри области php.

<?php include('submit2.php'); ?> 
<html> 
<head> 
    <script src="https://code.jquery.com/jquery-2.2.0.min.js"></script> 
</head> 
<body> 
<div id="content" class="content"> 
    <div class="content-heading"> 
     <div class="content-heading-title"> 
     <h3>Login</h3> 
     </div> 
    </div> 
    <div class="content-info"> 
    <form id="myForm" method="post"> 
     <label for="username">Username:</label> 
     <input name="username" id="username" type="text" /><br /> 
     <label for="password">Password:</label> 
     <input name="password" id="password" type="password" /><br /> 
     <input type="button" id="submitFormData" onclick="SubmitFormData();" value="Submit" /> 
    </form> 
    <div id="results"></div> 
    </div> 
</div> 
<script> 
    function SubmitFormData() { 
     var username = $("#username").val(); 
     var pass = $("#password").val(); 
     $.post("submit2.php", { 
     username: username, 
     pass: pass 
     }, function(data) { 
     $('#results').html(data); 
     $('#myForm').trigger('reset'); 
     }); 
    } 
</script> 
<script type="text/javascript"> 
    function loginRelocate(){ 
     window.location.replace("panel/index.php"); 
    }); 
</script> 

<?php 
if(isset($_SESSION['login_user'])){ 
    echo "<script>loginRelocate();</script>"; 
} 
?> 

</body> 
</html> 
+0

не работает с той же ошибкой только в другом месте. Причина, по которой я должен был использовать JS, - это то, что заголовок php (location:) не работает, это противоречило моему jquery [link] http://stackoverflow.com/questions/35457448/jquery-interring-with-header-location [/ link] как на этой ссылке ... но яно-никто не мог помочь с этой проблемой, поэтому я попытался обойти это с помощью javascript –

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