2016-01-07 21 views
1

我只是做了一些東西,我的註冊我發送的東西通過ajax後比做的東西與該數據,然後如果(東西是真的)我想使用window.location.replace();但它不工作,我真的在這裏瘋狂。因爲我有它,如果我使用回聲和每一行回聲在窗口位置完成之前和之後進行檢查,所以代碼確實進入內部,但如果絕對不在那裏的窗口位置,它被忽略或某些東西...問題不在鉻或任何東西,因爲當我刪除,如果或放置在其他地方的窗口位置正在工作,但在那裏,如果我需要工作的地方,它沒有做任何事情,我正在集會駕駛瘋狂的在這裏,請幫助:(裏面的窗口位置如果不工作?

這裏SI Ajax代碼:

function registruj() { 
    var pohlavie=[]; 

    $.each($("input:checked"),function(){ 
     pohlavie.push($(this).val()); 
    }); 
    if(pohlavie.length == 0) 
     pohlavie[0] = ""; 
    var name = $('#meno').val(); 

    var priez = $('#priezvisko').val(); 
    var log = $('#login').val(); 
    var mail = $('#mail').val(); 
    var cisloTel = $('#cislo').val(); 
    var heslo = $('#heslo').val(); 
    var heslo1 = $('#heslo1').val(); 

    $.post("registraciaudaje.php", { 
      'meno': name, 
      'priezvisko': priez, 
      'login':log, 
      'mail':mail, 
      'cislo':cisloTel, 
      'heslo':heslo, 
      'heslo1':heslo1, 
      'pohlavie':pohlavie 

     }, function (data) { 
      $('#result').html(data); 

     } 


    ); 
    $('#nove').load(document.URL + ' #nove'); 


} 

這裏我用我的職位,從阿賈克斯

<?php 
session_start(); 
if(isset($_POST["meno"])) { 

$_SESSION['meno'] = $_POST["meno"]; 
$_SESSION['priezvisko'] = $_POST["priezvisko"]; 
    $_SESSION['login'] = $_POST["login"]; 
    $_SESSION['heslo'] = $_POST["heslo"]; 
    $_SESSION['heslo1'] = $_POST["heslo1"]; 

    $_SESSION['pohlavie'] = $_POST["pohlavie"][0]; 

    $_SESSION['mail'] = $_POST['mail']; 
    $_SESSION['cislo'] = $_POST['cislo']; 
//$id = $_SESSION['id']; 

} 
?> 

和頁面

<!doctype html> 
<html> 
<head> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <meta charset="utf-8" /> 
    <title>blblblbl</title> 
    <link rel="stylesheet" type="text/css" href="./fancybox/jquery.fancybox-1.3.4.css" media="screen" /> 
    <script src="jquery-1.4.3.min.js"></script> 
    <script type="text/javascript" src="./fancybox/jquery.mousewheel-3.0.4.pack.js"></script> 
    <script type="text/javascript" src="./fancybox/jquery.fancybox-1.3.4.pack.js"></script> 
    <script>$(function(){$('.img').fancybox();});</script> 
    <script type="text/javascript" src="prihlasenie.js"></script> 
    <style type="text/css"> </style> 
    <link rel="stylesheet" type="text/css" href="css/style1.css" /> 
</head> 
<body class="body"> 
<div class="container"> 
    <div id="nove"> 
     <?php 
     session_start(); 

     if(isset($_SESSION["meno"])) { 

      require "pripojenie.php"; 
      $meno = $_SESSION["meno"]; 

      $priezvisko = $_SESSION["priezvisko"]; 
      $login = $_SESSION["login"]; 
      $heslo = $_SESSION["heslo"]; 
      $hesloZnovu = $_SESSION["heslo1"]; 
      if(isset($_SESSION["pohlavie"])) 
       $pohlavie = $_SESSION["pohlavie"]; 

      $mail = $_SESSION['mail']; 
      $cislo = $_SESSION['cislo']; 

      unset($_SESSION['meno']); 
      echo "kokot"; 
     } 
     ?> 

     <form > 
      <table style="margin-bottom:5px"> 
       <tr><td><label for="napdis">Vyplňte nasledujúci formulár:</label></td></tr> 
       <?php if(isset($pohlavie)) { 
        if($pohlavie == "zena") { 
         echo '<tr><td><input type="radio" name="pohlavie" value="zena" id="zena" checked>Žena</td></tr>'; 
         echo '<br>'; 
        } 
        else { 
         echo '<tr><td><input type="radio" name="pohlavie" value="zena" id="zena" >Žena</td></tr>'; 
         echo '<br>'; 
        } 
        if($pohlavie == "muz") { 
         echo '<tr><td><input type="radio" name="pohlavie" value="muz" id="muz" checked>Muž</td></tr>'; 
         echo '<br>'; 
        } 
        else { 
         echo '<tr><td><input type="radio" name="pohlavie" value="muz" id="muz" >Muž</td></tr>'; 
         echo '<br>'; 
        } 

       } else { 
        echo '<tr><td><input type="radio" name="pohlavie" value="zena" id="zena" >Žena</td></tr>'; 
        echo '<br>'; 
        echo '<tr><td><input type="radio" name="pohlavie" value="muz" id="muz" >Muž</td></tr>'; 
        echo '<br>'; 
       } 
       ?> 
       <tr><td><label for="meno">Meno :</label></td><td><input type = "text" id="meno" name="meno" value="<?php if(isset($meno)) echo $meno; ?>"></td></tr> 
       <tr><td><label for="priezvisko">Priezvisko :</label></td><td><input type = "text" id="priezvisko" name="priezvisko" value="<?php if(isset($priezvisko)) echo $priezvisko; ?>"></td></tr> 
       <tr><td><label for="login">Login :</label></td> 
        <td><input type = "text" id="login" name="login" value="<?php if(isset($login)) echo $login; ?>"></td></tr> 

       <?php 
       if(isset($heslo)) { 
        if (($heslo != "" && $hesloZnovu != "") && ($heslo == $hesloZnovu)) { 
         $chyba = 0; 
         if (strlen($heslo) < 8) { 
          $dlzka = 1; 

         } 

         if (!preg_match("#[0-9]+#", $heslo)) { 

          $cisla = 2; 
         } 

         if (!preg_match("#[a-zA-Z]+#", $heslo)) { 
          $znaky = 3; 

         } 
         if(isset($dlzka) && !isset($cisla) && !isset($znaky)) 
          echo '<tr><td><label for="heslo">Heslo :</label><td><input type = "password" id="heslo" name="heslo" value='.$hesloZnovu.'></td><td><label for="zleHeslo">Heslo musí mať aspoň 8 znakov!</label></td></tr>'; 
         if(isset($cisla) && !isset($dlzka) && !isset($znaky)) 
          echo '<tr><td><label for="heslo">Heslo :</label><td><input type = "password" id="heslo" name="heslo" value='.$hesloZnovu.'></td><td><label for="zleHeslo">Heslo musí obsahovať aspoň jedno číslo!</label></td></tr>'; 
         if(isset($znaky)&& !isset($cisla) && !isset($dlzka)) 
          echo '<tr><td><label for="heslo">Heslo :</label><td><input type = "password" id="heslo" name="heslo" value='.$hesloZnovu.'></td><td><label for="zleHeslo">Heslo musí obsahovať aspoň jedno písmeno !</label></td></tr>'; 
         if(isset($dlzka) && isset($cisla) && !isset($znaky)) 
          echo '<tr><td><label for="heslo">Heslo :</label><td><input type = "password" id="heslo" name="heslo" value='.$hesloZnovu.'></td><td><label for="zleHeslo">Heslo musí mať aspoň 8 znakov a obsahovať aspoň jedno číslo !</label></td></tr>'; 
         if(isset($dlzka) && isset($znaky) && !isset($cisla)) 
          echo '<tr><td><label for="heslo">Heslo :</label><td><input type = "password" id="heslo" name="heslo" value='.$hesloZnovu.'></td><td><label for="zleHeslo">Heslo musí mať aspoň 8 znakov a obsahovať aspoň jeden znak !</label></td></tr>'; 
         if(isset($znaky)&& isset($cisla) && !isset($dlzka)) 
          echo '<tr><td><label for="heslo">Heslo :</label><td><input type = "password" id="heslo" name="heslo" value='.$hesloZnovu.'></td><td><label for="zleHeslo">Heslo musí obsahovať aspoň jedno číslo a znak !</label></td></tr>'; 
         if(isset($znaky) && isset($cisla)&& isset($dlzka)) 
          echo '<tr><td><label for="heslo">Heslo :</label><td><input type = "password" id="heslo" name="heslo" value='.$hesloZnovu.'></td><td><label for="zleHeslo">Úplne zlé heslo, musí mať aspoň 8 znakov a obsahovať aspoň jeden znak a jedno číslo !</label></td></tr>'; 
         if(!isset($znaky) && !isset($cisla)&& !isset($dlzka)){ 
          $hesloOk = 1; 
         } 
        } 
        else { 

         echo '<tr><td><label for="heslo">Heslo :</label><td><input type = "password" id="heslo" name="heslo" value='.$hesloZnovu.'></td><td><label for="zleHeslo">Heslá sa nezhodujú</label></td></tr>'; 
         $pocet = 1; 
        } 
       } 

       ?> 
       <?php 

       if(!isset($pocet) && !isset($heslo)) { 

        echo'<tr ><td ><label for="heslo" > Heslo :</label ></td > 
       <td ><input type = "password" id="heslo" name = "heslo" ></td ></tr >'; 

       } 
       if(!isset($pocet) && isset($heslo) && !isset($znaky) && !isset($cisla)&& !isset($dlzka)) { 

        echo'<tr ><td ><label for="heslo" > Heslo :</label ></td > 
       <td ><input type = "password" id="heslo" name = "heslo" value='.$heslo.'></td ></tr >'; 

       } 
       ?> 
       <tr><td><label for="heslo2">Heslo znovu :</label></td> 
        <td><input type = "password" id="heslo1" name="heslo1" value="<?php if(isset($hesloZnovu)) echo $hesloZnovu; ?>" ></td></tr> 
       <?php 
       if(isset($mail)) { 
        if (!stristr($mail, "@") OR !stristr($mail, ".")) { 
         echo '<tr><td><label for="email">E-mail :</label></td> 
        <td><input type = "text" id="mail" name="email" value='.$mail.'></td><td><label for="zlyMail">Zlý formát emailu</label></td></rd></tr>'; 
        } else { 
         $mailOk = 1; 
         echo '<tr><td><label for="email">E-mail :</label></td> 
        <td><input type = "text" id="mail" name="email" value='.$mail.'></td><td></tr>'; 
        } 
       } 
       else { ?> 
        <tr><td><label for="email">E-mail :</label></td> 
         <td><input type = "text" id="mail" name="email" value="<?php if(isset($mail)) echo $mail; ?>" > </td></tr> 

       <?php } ?> 


       <?php if(isset($cislo) || isset($cisloOk)) { 
        //$pattern = '~^(\+420)? ?\d{3} ?\d{3} ?\d{3}$~'; 
        //$phoneNumber = '+420 123 456 789'; 
        // $predvolby = array('737', '777', '603', '606'); 
        //$predvolbyStr = implode('|', $predvolby); 
        $pattern = '~^(\+421)? ?\d{3} ?\d{3} ?\d{3}$~'; 
        if (preg_match($pattern, $cislo)) 
         $cisloOk =1; 
        else 
         echo '<tr><td><label for="cislo">Telefónne číslo :</label></td> 
       <td><input type = "text" id="cislo" name="cislo" value="'.$cislo .'"></td><td><label for="zleCislo">Zlý formát čísla (Príklad : +421 111 222 333) </label></td></tr>'; 
       } 
       ?> 
       <?php if(!isset($cislo) || isset($cisloOk)){ ?> 
        <tr><td><label for="cislo">Telefónne číslo :</label></td> 
         <td><input type = "text" id="cislo" name="cislo" value="<?php if(isset($cislo)) echo $cislo; ?>" ></td></tr> 
       <?php } ?> 
       <tr><td><input type="button" value="Zaregistrovať" onclick="registruj()" ></td></tr> 
      </table> 
     </form> 

     <?php 
     if(isset($mailOk) && isset($hesloOk) && isset($cisloOk)) { 
      require "pripojenie.php"; 
      $length = 20; 

      $randomString = substr(str_shuffle("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, $length);  
      $zasifrovane = crypt($heslo,$randomString); 

      mysqli_query($db,"INSERT INTO uzivatelia (Meno,Priezvisko,Login,Heslo,mail,pohlavie,cislo) VALUES ('$meno','$priezvisko','$login','$zasifrovane','$mail','$pohlavie','$cislo')"); 

      echo '<script type="text/javascript">window.location.replace("index.php"); </script>'; 

     } 
     ?> 

    </div> 
<div id="result"></div> 

</div> 
</body> 

,幾乎上的HTML代碼isn't工作結束該窗口位置的我的HTML代碼。爲什麼?在外面的每個地方如果工作,但內部如果不工作...但內部的一切如果正在完成,以便窗口位置像被忽略或什麼的,你有什麼想法嗎?

+0

您是否檢查過win.loc調用的if()塊是否實際觸發?另外,你的數據庫代碼容易受到[sql注入攻擊](http://bobby-tables.com) –

+0

我檢查了它我寫了我的問題的描述,如果是100%觸發這就是爲什麼我absolutly唐「不瞭解它......如果我在這裏寫回聲」;那麼window.location.replace(「index.php」);然後回聲「那裏」;頁面和窗口位置上的回顯顯示都被忽略或我不知道 – eraz

+0

是否可以在服務器端直接重定向頁面? – gaetanoM

回答

0

如果我在ajax文章後正確理解你沒有提交頁面,所以同一頁面繼續沒有window.replace,因爲你第一次沒有檢查登錄。

流程應該是:

。你的PHP生成頁面

。第一次頁面不包含窗口。替換

。檢查的東西后,用你的Ajax調用後,你可以提交表單:

$('form').trigger('submit'); 

嘗試讓你設定新的變量會想改變你的文件registraciaudaje.php:在頁面裏

$_SESSION['postOk'] = 'ok'; 

您有:

if(isset($mailOk) && isset($hesloOk) && isset($cisloOk)) { 

你可以像

 
$postOk = $_SESSION["postOk"]; 
if (isset($postOk)) { 
header('location: index.php'); 
exit(); 
} 
檢查
+0

如果你重定向到'index.php',把某些東西放在'$(「#result」)。html()'中有什麼意義? – Barmar

+0

但問題是我需要做的位置。只有當電子郵件,密碼和電話號碼是有效的形式和註冊已經benn成功......這就是爲什麼我這樣做,如果...但註冊完成後,它會寫入數據庫中的所有內容,如果正在完成但該窗口位置不是... – eraz

+0

那麼我該怎麼做?根據你的eddited答案?我仍然不知道該怎麼做 – eraz