2016-09-16 2 views
0

пользователь из своей личной области присылает мне запрос на обновление своего уровня. Существует три типа уровней, с нижней стороны, «utente», «делегато» и суперпользователь.поля для заполнения формы «пройти и подтвердить»

Я на самом деле подготовлен к уровню 'utente' и уровню 'delegato' на странице, где, заполнив простую форму, они обновляют поле с именем upgrade_liv от 'no' (значение по умолчанию) до 'si'.

Я создал страницу php, где я получаю эти запросы (я, естественно, суперпользователь); Я построил его с помощью массива, через который я вижу всех пользователей, у которых есть значение «si» в поле upgrade_liv. это форма:

$query_ver_liv_up="SELECT * from utenti WHERE upgrade_liv = 'si' order by id"; 
$result_ver_liv_up= mysql_query($query_ver_liv_up); 
$utente_piu = 'delegato'; 
$delegato_piu = 'superuser'; 

// tabella upgrade 
echo '<table border="1" width="1260px" style="margin-left:auto; margin-right:auto;">'; 
echo '<tr bgcolor="#bcc500"><td style="border: black 0px solid" height="30px"><b><center>UPGRADE LIVELLO UTENTI</center></b></td></tr>'; 
echo '</table>'; 
echo '<table border="1" width="1260px" style="margin-left:auto; margin-right:auto; margin-top:5px;">'; 
echo '<form method="post" name="ver_liv_upg_yes">'; 
echo '<tr bgcolor="#bb6500">'; 
echo '<td width="100px" style="border: black 1px solid"><center><b>Numero id</center></b></td>'; 
echo '<td width="300px" style="border: black 1px solid"><center><b>Nome e cognome</b></center></td>'; 
echo '<td width="120px" style="border: black 1px solid"><center><b>Livello</b></center></td>'; 
echo '<td width="120px" style="border: black 1px solid"><center><b>Upgrade</b></center></td>'; 
echo '<td width="180px" style="border: black 1px solid"><center><b>Livello richiesto</b></center></td>'; 
echo '<td width="120px" style="border: black 1px solid"><center><b>Pass</b></center></td>'; 
echo '<td width="120px" style="border: black 1px solid"><center><b>Conferma</b></center></td>'; 
echo '<td width="100px" style="border: black 1px solid"><center><b>Approva</b></center></td>'; 
echo '<td width="100px" style="border: black 1px solid"><center><b>Nega</b></center></td>'; 
echo '</tr>'; 
while($row_ver_liv_up = mysql_fetch_array($result_ver_liv_up)) 
{ 


echo '<tr>'; 
echo '<td style="border: black 1px solid"><center>'.$row_ver_liv_up['id']."</center></td>"; 
echo '<td style="border: black 1px solid"><center>'.$row_ver_liv_up['nome']."&nbsp;" .$row_ver_liv_up['cognome']."</center></td>"; 
echo '<td style="border: black 1px solid"><center>'.$row_ver_liv_up['tipo_user']."</center></td>"; 
echo '<td style="border: black 1px solid"><center>'.$row_ver_liv_up['upgrade_liv']."</center></td>"; 
echo '<td style="border: black 1px solid"><center>'; 
if ($row_ver_liv_up['tipo_user'] == 'utente'){ 
echo $utente_piu;} 
if ($row_ver_liv_up['tipo_user'] == "delegato"){ 
echo $delegato_piu;} 
echo '</center></td>'; 
echo '<td style="border: black 1px solid"><center> 
     <input name="pass" type="password" id="pass" value="" onfocus="if(this.value==\'pass\') this.value=\'\';" /></center></td>'; 
echo '<td style="border: black 1px solid"><center> 
     <input name="conferma" type="password" id="conferma" value="" onfocus="if(this.value==\'conferma\') this.value=\'\';" /></center></td>'; 
echo '<td style="border: black 1px solid"><center><input style="width: 100px;" name="ver_liv_upg_yes" type="submit" value="Approva" /></center></td>'; 
echo '<td style="border: black 1px solid"><center><input style="width: 100px;" name="ver_liv_upg_no" type="submit" value="Nega" /></center></td>'; 
echo '</tr>'; 
} 
echo '</form>'; 
echo '</table>'; 

код PHP я использовал это:

if(isset($_POST['ver_liv_upg_yes'])) 
    { 
    $pass = (isset($_POST['pass'])) ? trim($_POST['pass']) : ''; 
    $conferma = (isset($_POST['conferma'])) ? trim($_POST['conferma']) : ''; 

    $query = mysql_query("SELECT * FROM utenti WHERE id = '" . $_SESSION['login'] . "' LIMIT 1"); 
    $loggato = $_SESSION['login']; 

    // Controllo la Password 
    $pass = $_POST['pass']; 
    if($pass == ""){echo'Campo password non compilato!<br>'; exit();} 
    elseif(strlen($pass) < 4 || strlen($pass) > 12) 
     {echo('Password troppo corta o troppo lunga<br>');exit(); } 

    // Controllo la conferma della Password 
    $conferma = $_POST['conferma']; 
    if($conferma == ""){echo'Campo conferma password non compilato!<br>'; exit();}  
    elseif(strlen($conferma) < 4 || strlen($conferma) > 12) 
     {echo('Conferma della password troppo corta o troppo lunga<br>');exit(); } 

    // Controllo se password e conferma sono uguali 
    if($pass != $conferma){echo'I campi password e conferma password devono coincidere!<br>';exit();}  
    $query_pass = mysql_query("SELECT pass FROM utenti WHERE id = '" . $_SESSION['login'] . "' LIMIT 1"); 
    $row_pass = mysql_fetch_array($query_pass); 
    $pass2 = $row_pass['pass']; 
    $pass = md5($pass);  

    // Crypto la password e la confronto con quella nel database 
    if($pass != $row_pass['pass']){echo('Password errata');exit();} 


    $query_ver_liv_up = "SELECT * from utenti WHERE upgrade_liv = 'si' "; 
    $result_ver_liv_up = mysql_query($query_ver_liv_up);  
    $row_ver_liv_up = mysql_fetch_array($result_ver_liv_up); 
    // Se ha trovato un record 
    if(mysql_num_rows($query) == 1) 
    { 

    // prelevo l'id dal database 
    $login = mysql_fetch_array($query); 


    // preparo la query di aggiornamento 
    $query_mod2 = "UPDATE utenti SET upgrade_liv = 'no', tipo_user ='delegato' WHERE id = '" . $row_ver_liv_up['id']. "' "; 

    // invio la query 
    $result = mysql_query($query_mod2); 
    {header('Location: privata.php'); exit; } 
} 
} 

Предположим, у меня есть только два пользователей, они хотят изменить свой уровень: если я вставить талон и подтвердить в в первой строке появляется echo 'Campo password non compilato' (pass not fill), но если я вставляю их во вторую строку, (на изображении, которое я разместил, вы можете увидеть игру пользователя в второй строке) мой код php меняет на db поля пользователя peppa pig !!!

как это можно сделать, чтобы решить это? где мой код неправильный?

enter image description here

ответ

0

я понял, где это ошибка: я поставил

echo '<form method="post" name="ver_liv_up">'; 

перед тем

while($row_ver_liv_up = mysql_fetch_array($result_ver_liv_up)) 
{} 

, если я пишу форму следующим образом:

echo '<table border="1" width="1260px" style="margin-left:auto; margin-right:auto; margin-top:5px;">'; 
echo '<tr bgcolor="#bb6500">'; 
echo '<td width="100px" style="border: black 1px solid"><center><b>Numero id</center></b></td>'; 
echo '<td width="300px" style="border: black 1px solid"><center><b>Nome e cognome</b></center></td>'; 
echo '<td width="120px" style="border: black 1px solid"><center><b>Livello</b></center></td>'; 
echo '<td width="120px" style="border: black 1px solid"><center><b>Upgrade</b></center></td>'; 
echo '<td width="180px" style="border: black 1px solid"><center><b>Livello richiesto</b></center></td>'; 
echo '<td width="120px" style="border: black 1px solid"><center><b>Pass</b></center></td>'; 
echo '<td width="120px" style="border: black 1px solid"><center><b>Conferma</b></center></td>'; 
echo '<td width="100px" style="border: black 1px solid"><center><b>Approva</b></center></td>'; 
echo '<td width="100px" style="border: black 1px solid"><center><b>Nega</b></center></td>'; 
echo '</tr>'; 

while($row_ver_liv_up = mysql_fetch_array($result_ver_liv_up)) 
{ 
echo '<form method="post" name="ver_liv_up">'; 
echo '<tr>'; 
echo '<td style="border: black 1px solid"><center>'.$row_ver_liv_up['id']."</center></td>"; 
echo '<td style="border: black 1px solid"><center>'.$row_ver_liv_up['nome']."&nbsp;" .$row_ver_liv_up['cognome']."</center></td>"; 
echo '<td style="border: black 1px solid"><center>'.$row_ver_liv_up['tipo_user']."</center></td>"; 
echo '<td style="border: black 1px solid"><center>'.$row_ver_liv_up['upgrade_liv']."</center></td>"; 
echo '<td style="border: black 1px solid"><center>'; 
if ($row_ver_liv_up['tipo_user'] == 'utente'){ 
echo $utente_piu;} 
if ($row_ver_liv_up['tipo_user'] == "delegato"){ 
echo $delegato_piu;} 
echo '</center></td>'; 
echo '<td style="border: black 1px solid"><center> 
     <input name="pass" type="password" id="pass" value="" onfocus="if(this.value==\'pass\') this.value=\'\';" /></center></td>'; 
echo '<td style="border: black 1px solid"><center> 
     <input name="conferma" type="password" id="pass" value="" onfocus="if(this.value==\'conferma\') this.value=\'\';" /></center></td>'; 
echo '<td style="border: black 1px solid"><center><input style="width: 100px;" name="ver_liv_upg_yes" type="submit" value="Approva" /></center></td>'; 
echo '<td style="border: black 1px solid"><center><input style="width: 100px;" name="ver_liv_upg_no" type="submit" value="Nega" /></center></td>'; 
echo '</tr>'; 

echo '</form>'; 
} 
echo '</table>'; 

я t!

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