2014-04-18 4 views
0

Я пытаюсь вернуться к странице, с которой я пришел после отправки обновления. $ pagefrom заселяется со страницы раньше. это прекрасно работает. Я перенаправляюсь на страницу, которая говорит, что найдена 302, но ее тот же url, что и моя текущая страница.PHP Header 302 Найдено

<?php 
{ 
$pagefrom= $_POST['pagename']; 

echo $pagefrom; 

if(isset($_POST['add'])) 
{ 



$conn = mysql_connect($dbhost, $dbuser, $dbpass); 
if(! $conn) 
{ 
    die('Could not connect: ' . mysql_error()); 
} 

if(! get_magic_quotes_gpc()) 
{ 
    $Reg_F_Name = addslashes ($_POST['Reg_F_Name']); 
    $Reg_L_Name = addslashes ($_POST['Reg_L_Name']); 
} 
else 
{ 
    $Req_F_Name = $_POST["Req_F_Name"]; 
    $Reg_L_Name = $_POST["Reg_L_Name"]; 
} 
$Req_ID = $_POST["Req_ID"]; 
$Req_F_Name = $_POST["Req_F_Name"]; 
$Reg_L_Name = $_POST["Reg_L_Name"]; 
$Reg_Email = $_POST["Reg_Email"]; 
$Reg_Mod_Request = $_POST["Reg_Mod_Request"]; 
$Reg_Address_1 = $_POST["Reg_Address_1"]; 
$Reg_Address_2 = $_POST["Reg_Address_2"]; 
$Reg_City = $_POST["Reg_City"]; 
$Reg_State = $_POST["Reg_State"]; 
$Reg_Zip_Code= $_POST["Reg_Zip_Code"]; 
$Reg_ID= $_POST["Reg_ID"]; 
$Reg_Phone = $_POST["Reg_Phone"]; 
$Reg_Phone= str_replace("-","","$Reg_Phone"); 
$Reg_Approval_Status= $_POST["Reg_Approval_Status"]; 
$Reg_Status= $_POST["Reg_Status"]; 

$sql= "UPDATE $dbtable SET 
Reg_F_Name = '$Reg_F_Name', 
Reg_L_Name = '$Reg_L_Name', 
Reg_Phone = '$Reg_Phone', 
Reg_Email = '$Reg_Email', 
Reg_Mod_Request = '$Reg_Mod_Request', 
Reg_Address_1 = '$Reg_Address_1', 
Reg_Address_2 = '$Reg_Address_2', 
Reg_City = '$Reg_City', 
Reg_State = '$Reg_State', 
Reg_Zip_Code = '$Reg_Zip_Code', 
Reg_Approval_Status='$Reg_Approval_Status', 
Reg_Status='$Reg_Status' 
WHERE Reg_ID = '$Reg_ID'"; 

mysql_select_db($database); 
$retval = mysql_query($sql, $conn); 
if(! $retval) 
{ 
    die('Could not enter data: ' . mysql_error()); 
} 

mysql_close($conn); 
header('Location: '.$pagefrom); 
} 
else 
{ 
?> 

<?php 
$con=mysqli_connect($dbhost, $dbuser, $dbpass, $database); 
// Check connection 
if (mysqli_connect_errno()) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 
$query = mysqli_query($con, "SELECT * FROM $dbtable WHERE Reg_ID = '$Reg_ID'"); 
?> 




<form method="post" action="" style="width: 500px"> 
<fieldset> 
<p style="text-align: center">Update A Prayer Request</p> 
<div style="width: 500px; float: left"> 

<?php 
while($rows = mysqli_fetch_array($query)) 
    { 

?> 
<input type="hidden" name="Reg_ID" value="<?=$rows['Reg_ID']?>"> 
Please pray for: 
<br />First Name: <input name="Reg_F_Name" type="text" id="Reg_F_Name" value="<? echo $rows['Reg_F_Name']; ?>"> 
<br />Last Name: <input name="Reg_L_Name" type="text" id="Reg_L_Name" value="<? echo $rows['Reg_L_Name']; ?>"> 
<br />Original Prayer Request: 
<br/><? echo $rows['Reg_Request']; ?> 
<br />Update Prayer Request: 
<br /><textarea name="Reg_Mod_Request" type="varchar" id="Reg_Mod_Request" rows="5" cols="30"><? echo $rows['Reg_Mod_Request']; ?></textarea> 
<br />Primary Address: <input name="Reg_Address_1" type="varchar" id="Reg_Address_1" value="<? echo $rows['Reg_Address_1']; ?>"> 
<br />Secondary Address:<input name="Reg_Address_2" type="varchar" id="Reg_Address_2" value="<? echo $rows['Reg_Address_2']; ?>"> 
<br />City:<input name="Reg_City" type="char" id="Reg_City" value="<? echo $rows['Reg_City']; ?>"> 
<br />State:<input name="Reg_State" type="char" id="Reg_State" value="<? echo $rows['Reg_State']; ?>"> 
<br />Zip:<input name="Reg_Zip_Code" type="char" id="Reg_Zip_Code" value="<? echo $rows['Reg_Zip_Code']; ?>"> 
<br />Phone Number (555-555-5555):<input name="Reg_Phone" type="char" id="Reg_Phone" value="<? echo $rows['Reg_Phone']; ?>"> 
<br />Email Address:<input name="Reg_Email" type="varchar" id="Reg_Email" value="<? echo $rows['Reg_Email']; ?>"> 
<br />Approval Status: <select id="Approval" name="Approval"> 
      <!--Call run() function--> 
      <option value="0" <?php echo $rows['Reg_Approval_Status'] == "0" ? "selected" : '' ?>>Waiting Approval</option> 
      <option value="1" <?php echo $rows['Reg_Approval_Status'] == "1" ? "selected" : '' ?>>Accept</option> 
      <option value="2" <?php echo $rows['Reg_Approval_Status'] == "2" ? "selected" : '' ?>>Decline</option> 
      </select>    
<br />Enabled Request: <select id="Activate" name="Activate"> 
      <option value="0" <?php echo $rows['Reg_Status'] == "0" ? "selected" : '' ?>>Disable</option> 
      <option value="1" <?php echo $rows['Reg_Status'] == "1" ? "selected" : '' ?>>Enable</option> 
      </select> 
</div> 
<input name="add" type="submit" id="add" value="Update Prayer Request"> 
</fieldset> 
</form> 

<?php 
} 
} 
mysql_close(); 
} 
?> 

Я думаю, что что-то не так с заголовка ('Адрес:' $ pagefrom.); , но все, что я пытаюсь сделать, до сих пор не может заставить его перезагрузить страницу раньше.

+0

Теперь будет хорошее время, чтобы узнать о [SQL инъекции] (https://www.owasp.org/index.php/SQL_Injection) ... использовать [подготовленные заявления] (HTTP : //www.php.net/manual/en/pdo.prepared-statements.php), а не конкатенация строк при построении sql. Ваш текущий код широко открыт. – AD7six

ответ

0

Попробуйте добавить die(); в следующую строку, которую вы используете Header('Location: ....'); - если вы не используете php, продолжайте работать дальше. Также вы, вероятно, захотите использовать форму на странице, из которой исходит исходный код. Здесь вы не предоставляете pagename больше, поэтому, когда вы используете форму с этой страницы - $pagefrom пуст и перенаправление переходит на текущую страницу. Попробуйте добавить его как скрытый ввод для этой формы, и он должен работать.

1

Удалить эхо $ pagefrom; от вершины вашего скрипта или переместить над ним строку заголовка. Заголовки не могут быть отправлены после запуска выхода.

См: header

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