2014-02-04 3 views
-1

Я работаю над панелью мониторинга для своих пользователей. Я установил его по рангу, и каждый ранг может сделать там свою вещь. Теперь у меня три проблемы. Один и два относятся к формам, а другой относится к проблеме перенаправления. Эти формы не отправляются в базу данных, и я не знаю почему. Ниже приведены две формы. Третья проблема - перенаправление. Поскольку система настроена по рангу, я не хочу, чтобы ряды обращались к другим панелям рангов. Его не перенаправляет другие ряды оттуда от панели управления, как и все его логины, и когда эти ряды входа в систему, они перенаправляют их туда правильной панели управления, но если говорить, что партнер идет на панель управления администратора, он позволяет им, в которых я не хочу. Также я забыл упомянуть, что когда пользователь вошел в систему, он возвращает их на страницу входа в систему, если они перейдут на URL-адрес входа, который я не хочу, я хочу, чтобы он перенаправлял их на личную панель. Формы ниже.Формы Html/php/mysql не отправляют и не перенаправляют проблему

Первая форма:

<?php 

$id = $_GET['id']; 
$result = $db->query("SELECT * FROM users WHERE Id = '.$id.'"); 

if(isset($_POST['submit'])) 
{ 
    $username1 = $_POST['username']; 
    $email1 = $_POST['email']; 
    $password1 = $_POST['password']; 
    $f_name = $_POST['f_name']; 
    $l_name = $_POST['l_name']; 
    $rank1 = $_POST['rank']; 
    $skype1 = $_POST['skype']; 

    $db->query("UPDATE users SET (Email, Username, FName, LName, Rank, SkypeID) VALUES(''.$email1.'', ''.$username1.'', ''.$f_name.'', ''.$l_name.'', ''.$rank1.'', ''.$skype1.'') WHERE Id = ".$id.""); 
} 

?> 

<?php 
$id = $_GET['id']; 
$result = $db->query("SELECT * FROM users WHERE id='$id'"); 
while($row = $result->fetch_assoc()) 
{ 
    $username = $row['Username']; 
    $email = $row['Email']; 
    $fname = $row['FName']; 
    $lname = $row['LName']; 
    $rank = $row['Rank']; 
    $skype = $row['SkypeID']; 
} 
?> 
<form method="POST"> 
    Username: <input type="text" name="username" value="<?php echo ($username); ?>"><br> 
    Email: <input type="email" name="email" value="<?php echo ($email);?>"><br> 
    Passowrd: <input type="password" name="password"><br> 
    First Name: <input type="text" name="f_name" value="<?php echo ($fname);?>"><br> 
    Last Name: <input type="text" name="l_name" value="<?php echo($lname); ?>"><br> 
    Rank: <input type="text" name="rank" value="<?php echo ($rank); ?>"><br> 
    Skype: <input type="text" name="rank" value="<?php echo ($skype); ?>"> 
    <button type="submit" name="submit">Update User</button> 
</form> 

Вторая форма:

<?php 
if(isset($_POST['submit'])) 
{ 
    $c_name = $_POST['c_name']; 
    $v_link = $_POST['v_link']; 
    $v_title = $_POST['v_title']; 
    $v_desc = $_POST['v_desc']; 
    $v_tags = $_POST['v_tags']; 
    $m_sources = $_POST['m_sources']; 
    $s_requests = $_POST['s_requests']; 

    if(empty($c_name) or empty($v_link) or empty($v_title) or empty($v_title) or empty($v_desc) or empty($v_tags)) 
    { 
    echo 'You must fill in the first 5 fields.'; 
    } 
    else 
    { 
    $getRank = $db->query("SELECT * FROM users WHERE username = ".$_SESSION['username'].""); 
    while ($row = $getRank->fetch_assoc($getRank)) 
    { 
     $usename = $row['username']; 
     $rank = $row['rank']; 
    } 
    $db->query("INSERT INTO submitted_forms (username, rank, channel_username, video_link, video_title, video_description, video_tags, music_sources, special_requests) VALUES (''.$username.'', ''.$rank.'', ''.$c_name.'', ''.$v_link.'', ''.$v_title.'', ''.$v_desc.'', ''.$v_tags.'', ''.$m_sources.'', ''.$s_requests.'')"); 
    echo 'Form submitted successfully.'; 
    } 
    } 
?> 

<form method="POST"> 
    Channel name: <input type="text" name="c_name" required>*<br> 
    Video Link: <input type="text" name="v_link" required>*<br> 
    Video Title: <input type="text" name="v_title" required>*<br> 
    Video Description: <input type="text" name="v_desc" required>*<br> 
    Video Tags: <input type="text" name="v_tags" required>*<br> 
    Music Sources: <input type="text" name="m_sources"><br> 
    Special Requests: <input type="text" name="s_requests"><br> 
    <button type="submit" name="submit">Submit</button><br> 
</form> 

Теперь Heres код я использую, чтобы перенаправить пользователя от приборных панелей, если ее нет приборной панели. Он перенаправляет не зарегистрированных пользователей, но не как других пользователей. Предполагается, что допускаются только администраторы.

<?php session_start(); 
if(isset($_SESSION['admin'])) 
{ 
$_SESSION['username']; 

} else { 
    header("location: ../index.php"); 
} ?> 

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

<?php 
require 'core/config.php'; 


if(isset($_POST['submit'])) 
{ 
    $username = $db->real_escape_string($_POST['username']); 
    $password = md5($_POST['password']); 

    if(empty($username) or empty($password)) 
    { 
    echo 'You must fill in both boxes!'; 
    } else { 
    $query = $db->query("SELECT * FROM users WHERE username = '".$username."'"); 
    while($row = $query->fetch_assoc()) 
    { 
     $dbpassword = $row['Password']; 
    } 

    if($password !== $dbpassword) 
    { 
     echo 'Password was incorrect.'; 
    } else { 
     $query1 = $db->query("SELECT * FROM users WHERE username='".$username."'"); 
     while($rows = $query1->fetch_assoc()) 
     { 
     $rank = $rows['Rank']; 
     } 

     if($rank === 'admin') 
     { 
     $_SESSION['admin'] = '1'; 
     $_SESSION['username'] = $username; 

     echo '<script>window.location="management/index.php";</script>'; 
     } 
     elseif ($rank === 'partner') 
     { 
     $_SESSION['partner'] = '1'; 
     $_SESSION['username'] = $username; 

     echo '<script>window.location="partner/index.php";</script>'; 
     } 
     elseif ($rank === 'trainee') 
     { 
     $_SESSION['trainee'] = '1'; 
     $_SESSION['username'] = $username; 

     echo '<script>window.location="trainee/index.php";</script>'; 
     } 
     else 
     { 
     echo 'Account not found.'; 
     } 
    } 
    } 
} 
?> 
+0

Положить На вашей странице входа. – Aljie

+0

Подождите, его там. Его на самом верху. Я просто скопировал всю часть php – user3051246

+0

Работает ли она сейчас? – Aljie

ответ

0

попробовать это в вашем сценарии входа:

<?php 
require 'core/config.php'; 

//assuming that you have already start your session at the very top 

if(isset($_POST['submit'])) 
{ 
$username = $db->real_escape_string($_POST['username']); 
$password = md5($_POST['password']); 

if(empty($username) or empty($password)) 
{ 
echo 'You must fill in both boxes!'; 
} else { 
$query = $db->query("SELECT * FROM users WHERE username = '".$username."'"); 
while($row = $query->fetch_assoc()) 
{ 
    $dbpassword = $row['Password']; 
} 

if($password !== $dbpassword) 
{ 
    echo 'Password was incorrect.'; 
} else { 
    $query1 = $db->query("SELECT * FROM users WHERE username='".$username."'"); 
    while($rows = $query1->fetch_assoc()) 
    { 
    $rank = $rows['Rank']; 
    } 

    if($rank === 'admin') 
    { 
    $_SESSION['rank'] = $rank; 
    $_SESSION['username'] = $username; 

    echo '<script>window.location="management/index.php";</script>'; 
    } 
    else if ($rank === 'partner') 
    { 
    $_SESSION['rank'] = $rank; 
    $_SESSION['username'] = $username; 

    echo '<script>window.location="partner/index.php";</script>'; 
    } 
    else if ($rank === 'trainee') 
    { 
    $_SESSION['rank'] = $rank; 
    $_SESSION['username'] = $username; 

    echo '<script>window.location="trainee/index.php";</script>'; 
    } 
    else 
    { 
    echo 'Account not found.'; 
    } 
} 
} 
} 
?> 

в вашем управлении/index.php или на странице, где предполагается разрешить только админам в

<?php session_start(); 
    if(isset($_SESSION['rank']) and $_SESSION['rank'] == "admin") 
    { 
    $_SESSION['username']; 

    } else { 
    header("location: ../index.php"); 
    } ?> 

и с вами. экономия, вы просто можете забыть правильные котировки:

<?php 
if(isset($_POST['submit'])) 
{ 
$c_name = $_POST['c_name']; 
$v_link = $_POST['v_link']; 
$v_title = $_POST['v_title']; 
$v_desc = $_POST['v_desc']; 
$v_tags = $_POST['v_tags']; 
$m_sources = $_POST['m_sources']; 
$s_requests = $_POST['s_requests']; 

if(empty($c_name) or empty($v_link) or empty($v_title) or empty($v_title) or empty($v_desc) or empty($v_tags)) 
{ 
    echo 'You must fill in the first 5 fields.'; 
} 
else 
{ 
    $getRank = $db->query("SELECT * FROM users WHERE username = '$_SESSION[username]'"); 
while ($row = $getRank->fetch_assoc($getRank)) 
{ 
    $usename = $row['username']; 
    $rank = $row['rank']; 
} 
$db->query("INSERT INTO submitted_forms (username, rank, channel_username, video_link, video_title, video_description, video_tags, music_sources, special_requests) VALUES ('$username', '$rank', '$c_name', '$v_link', '$v_title', '$v_desc', '$v_tags', '$m_sources', '$s_requests')"); 
echo 'Form submitted successfully.'; 
} 
} 
?> 
+0

Я пробовал это, и теперь я получаю кучу «Warning: session_start() [function.session-start]: Не удается отправить ограничитель кеша сеанса - уже отправленные заголовки (вывод запущен в /: 1) в /index.php в строке 1 ' – user3051246

+0

Для формы, которую вы мне дали, я получаю эту ошибку, также на оригинальной «Предупреждение: mysqli_result :: fetch_assoc() ожидает точно 0 параметров, 1 задано в строке 37' – user3051246

+0

Не забывайте позже о вводе данных в базу данных, но сначала сосредоточьтесь на перенаправлении страницы, «Предупреждение: session_start() [function.session-start]: Не удается отправить ограничитель кеша сеанса - уже отправлены заголовки (начат вывод at /: 1) в /index.php в строке 1 "= это означает, что вы уже начали сеанс, имеет ли index.php include (" somePHPpageHEre.php ")? – Aljie

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