2014-09-24 34 views
0

我正試圖做一個mikrotik熱點的singup表單,這個設備不允許在裏面使用PHP,而且我需要將變量從設備傳遞到一個外部php頁面挽救該負荷消費數據,並實現在熱點的審判......兩個HTML和PHP之間的交換變量

這個設備裏面它主持了一個HTML頁面下面的代碼

<html> 
<head><title>...</title></head> 
<body> 
$(if chap-id) 
<noscript> 
<center><b>JavaScript required. Enable JavaScript to continue.</b></center> 
</noscript> 
$(endif) 
<center>If you are not redirected in a few seconds, click 'continue' below<br> 
<form name="redirect" action="http://10.2.3.100/cadastro.html?mac=$(mac)" method="post"> 
<input type="hidden" name="mac" value="$(mac)"> 
<input type="hidden" name="ip" value="$(ip)"> 
<input type="hidden" name="username" value="$(username)"> 
<input type="hidden" name="link-login" value="$(link-login)"> 
<input type="hidden" name="link-orig" value="$(link-orig)"> 
<input type="hidden" name="error" value="$(error)"> 
<input type="hidden" name="chap-id" value="$(chap-id)"> 
<input type="hidden" name="chap-challenge" value="$(chap-challenge)"> 
<input type="hidden" name="link-login-only" value="$(link-login-only)"> 
<input type="hidden" name="link-orig-esc" value="$(link-orig-esc)"> 
<input type="hidden" name="mac-esc" value="$(mac-esc)"> 
<input type="submit" value="continue"> 
</form> 
<script language="JavaScript"> 
<!-- 
    document.redirect.submit(); 
//--> 
</script></center> 
</body> 
</html> 

我已經學會了在谷歌搜索,我可以送變量到另一個頁面,通過在URL的末尾插入它,所以好的,我會發送變量$ MAC,我需要開始試用。

接收它的頁面是一個HTML格式的頁面,我無法接收這個頁面中的變量,我需要接收這個變量發送到另一個頁面,在PHP中最後一個將保存表單MySQL和後向Mikrotik發送與客戶端的MAC鏈接,以允許它在互聯網上瀏覽。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<title>CADASTRO DE CLIENTES COM BANCO DE DADOS E PHP</title> 
<style type="text/css"> 


</head> 

<body> 
<p id="demo"></p> 
<script type"text/javascript"> 
var qs = new QueryString(); 
var v1 = qs.get("mac"); 
document.getElementById("demo").innerHTML = v1; 
</script> 


<form id="cadastro" name="cadastro" method="post" action="cadastro.php" onsubmit="return validaCampo(); return false;"> 
    <table width="625" border="0"> 
    <tr> 
     <td width="69">Nome:</td> 
     <td width="546"><input name="nome" type="text" id="nome" value="$(mac)" size="70" maxlength="60" /> 
     <span class="style1">*</span></td> 
    </tr> 
    <tr> 
     <td>Email:</td> 
     <td><input name="email" type="text" id="email" size="70" maxlength="60" /> 
     <span class="style1">*</span></td> 
    </tr> 

    <tr> 
     <td colspan="2"><p> 
     <input name="cadastrar" type="submit" id="cadastrar" value="Concluir meu Cadastro!" /> 
     <br /> 
      <input name="limpar" type="reset" id="limpar" value="Limpar Campos preenchidos!" /> 
      <br /> 
      <span class="style1">* Campos com * s&atilde;o obrigat&oacute;rios!   </span></p> 
     <p>&nbsp; </p></td> 
    </tr> 
    </table> 
</form> 
</body> 
</html> 

現在PHP頁面

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<title>Untitled Document</title> 
</head> 

<body> 
<?php 
// RECEBENDO OS DADOS DO PC DO USUARIO 
    $mac=$_POST['mac']; 

// RECEBENDO OS DADOS PREENCHIDOS DO FORMULÁRIO ! 
$nome = $_POST ["nome"]; //atribuição do campo "nome" vindo do formulário para variavel 
$email = $_POST ["email"]; //atribuição do campo "email" vindo do formulário para variavel 

//Gravando no banco de dados ! 

//conectando com o localhost - mysql 
$conexao = mysql_connect("localhost","root","senha"); 
if (!$conexao) 
    die ("Erro de conexão com localhost, o seguinte erro ocorreu -> ".mysql_error()); 
//conectando com a tabela do banco de dados 
$banco = mysql_select_db("cadhotspot",$conexao); 
if (!$banco) 
    die ("Erro de conexão com banco de dados, o seguinte erro ocorreu -> ".mysql_error()); 



$query = "INSERT INTO `clientes` (`nome` , `email` ) 
VALUES ('$nome', '$email', '$sexo' '')"; 

mysql_query($query,$conexao); 

echo "Seu cadastro foi realizado com sucesso!<br>Agradecemos a atenção."; 
?> 
Mac: <?php echo $mac ?><br> 

<meta http-equiv="refresh" content="60; url=<?php echo $linkloginonly; ?>?dst=<?php echo $linkorigesc; ?>&username=T-<?php echo $mac; ?>"> 


</body> 
</html> 

的想法是,從客戶設備從的MikroTik與形式爲客戶singup接收MAC在其主持的HTML頁面,該載荷經過HTML頁面當客戶點擊發送過來將寫信給mysql和發回的鏈接下方的MikroTik

<meta http-equiv="refresh" content="60; url=http://10.5.50.1?&username=T-<?php echo $mac; ?>"> 

我的整個問題交換HTML之間的變量HTML和PHP後頁秒。

+0

php會話可能嗎? – 2014-09-24 14:40:17

+0

你可以使用JavaScript例如?然後你可以閱讀你的網址中的參數.. – Matheno 2014-09-24 14:41:03

+0

這看起來恐怖不安全。你確定**你的用戶參數是[妥善轉義](http://bobby-tables.com/php)? '$ _POST'數據**從不**直接進入查詢。 'mysql_query'是一個過時的界面,不應該在新的應用程序中使用,並且會在將來的PHP版本中刪除。像[PDO這樣的現代化替代品並不難學](http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/)。如果您是PHP的新手,像[PHP The Right Way](http://www.phptherightway.com/)這樣的指南可以幫助解釋最佳實踐。 – tadman 2014-09-24 14:55:52

回答

0

要將mac的值轉發到php頁面,請嘗試在表單中添加以下JS代碼。這將創建一個隱藏的字段,當提交時將mac值發佈到php頁面。

<script type="text/javascript"> 
var qs = new QueryString(); 
var v1 = qs.get("mac"); 
document.write('<input type="hidden" name="mac" value="' + v1 + '">') 
</script> 

html頁面中缺少一些結束標籤。

+0

好的,我已經將它插入到我的cadastro.html中,但是我在php中插入了什麼來調用此var? – 2014-09-24 16:49:08