我的HTML中的php正在使我的页面偏移?
我试图在我的网站上设置一个上传区域,但当我加载页面时,所有内容都会发生偏移,但当我删除HTML中的php时,它会恢复正常。不知道它为什么这么做。有人知道怎么解决这个问题吗我的HTML中的php正在使我的页面偏移?,php,html,Php,Html,我试图在我的网站上设置一个上传区域,但当我加载页面时,所有内容都会发生偏移,但当我删除HTML中的php时,它会恢复正常。不知道它为什么这么做。有人知道怎么解决这个问题吗 <?php ob_clean();session_start(); if (isset($_GET['logout'])){ session_destroy(); } if (!isset($_SESSION['loggedin']) || $_SESSION['logge
<?php
ob_clean();session_start();
if (isset($_GET['logout'])){
session_destroy();
}
if (!isset($_SESSION['loggedin']) || $_SESSION['loggedin'] == false) {
header("Location: index.php");
}
if(isset($_FILES['UploadFileField'])){
$allowed = array('jpg','png','jpeg');
$name = $_FILES["UploadFileField"]["name"];
$tmp = $_FILES['UploadFileField']['tmp_name'];
$type = $_FILES['UploadFileField']['type'];
$newName = "Image Attachment.jpg";
$types = array('jpg','png','jpeg');
$ext = pathinfo($name, PATHINFO_EXTENSION);
if(in_array($ext,$types)){
move_uploaded_file($tmp, "UPLOADS/$newName");
echo '<font size="3"><p align="center"><b>UPLOAD SUCCESSFUL: </font><font color="#000000" size="3">Your document has now been uploaded and is ready to send.</b></p></font>';
$loadingimage = true;
}
else {
if(!$tmp){
echo '<font size="3"><p align="center"><b>UPLOAD FAILED: </font><font color="#000000" size="3">No document has been selected.</b></p></font>';
}
else {
echo '<font size="3"><p align="center"><b>UPLOAD FAILED: </font><font color="#000000" size="3">Uploaded document was an incorrect extension type, please use ".jpg", ".jpeg", or "png" only.</b></p></font>';
}
}
}
if (isset($_POST['submit'])){
header( 'Location: Review.php' );
}
if (isset($_POST['delete'])){
if (file_exists("UPLOADS/Image Attachment.jpg")) {
echo '<font size="3"><p align="center"><b>DETLEION COMPLETE: </font><font color="#000000" size="3">Image no longer available</b></p></font>';
unlink('UPLOADS/Image Attachment.jpg');
$loadingimage = false;
}
else{
echo '<font size="3"><p align="center"><b>DETLEION FAILED: </font><font color="#000000" size="3">No image available for Deletion</b></p></font>';
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Attach Image</title>
<link href="CSS/boilerplate.css" rel="stylesheet" type="text/css">
<link href="CSS/master.css" rel="stylesheet" type="text/css">
<script src="JAVASCRIPT/respond.min.js"></script>
</head>
<body link="black">
<div class="gridContainer clearfix">
<div id="borderDiv">
<div id="navDiv">
<div id="backNavDiv">
<a href="index.php?logout"><font color="white"><p align="right"><b> < Log Out</b></p></font></a>
</div>
</div>
<div id="headerDiv">
<p>Attach Image</p>
</div>
<div id="loginBtnDiv">
<div id="uploadAreaDiv">
<form action="AttachImage.php" method="post" enctype="multipart/form-data" name="FileUploadForm" id="FileUploadForm">
<label for="UploadFileField"></label>
<input type="file" name="UploadFileField" id="UploadFileField"/>
<input type="submit" name="UploadButton" id="UploadButton" value="Upload"/>
</form>
</div>
<form action="AttachImage.php" method="post" enctype="multipart/form-data" name="delete" id="delete">
<input id="delete" name="delete" type="submit" value="Delete">
</form>
<form action="AttachImage.php" method="post" enctype="multipart/form-data" name="FileForm" id="FileForm">
<input id="submit" name="submit" type="submit" value="Next">
</form>
</div>
</div>
</div>
<div id="logoDiv">
<img src="IMAGES/Logo.png">
</div>
</body>
</html>
您的问题是因为您在回显body标签之外的内容!试试这个:
<!DOCTYPE html>
<?php
ob_clean();session_start();
if (isset($_GET['logout'])){
session_destroy();
}
if (!isset($_SESSION['loggedin']) || $_SESSION['loggedin'] == false) {
header("Location: index.php");
}
if (isset($_POST['submit'])){
header( 'Location: Review.php' );
}
?>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Attach Image</title>
<link href="CSS/boilerplate.css" rel="stylesheet" type="text/css">
<link href="CSS/master.css" rel="stylesheet" type="text/css">
<script src="JAVASCRIPT/respond.min.js"></script>
</head>
<body link="black">
<?php
if (isset($_POST['delete'])){
if (file_exists("UPLOADS/Image Attachment.jpg")) {
echo '<font size="3"><p align="center"><b>DETLEION COMPLETE: </font><font color="#000000" size="3">Image no longer available</b></p></font>';
unlink('UPLOADS/Image Attachment.jpg');
$loadingimage = false;
}
else{
echo '<font size="3"><p align="center"><b>DETLEION FAILED: </font><font color="#000000" size="3">No image available for Deletion</b></p></font>';
}
}
if(isset($_FILES['UploadFileField'])){
$allowed = array('jpg','png','jpeg');
$name = $_FILES["UploadFileField"]["name"];
$tmp = $_FILES['UploadFileField']['tmp_name'];
$type = $_FILES['UploadFileField']['type'];
$newName = "Image Attachment.jpg";
$types = array('jpg','png','jpeg');
$ext = pathinfo($name, PATHINFO_EXTENSION);
if(in_array($ext,$types)){
move_uploaded_file($tmp, "UPLOADS/$newName");
echo '<font size="3"><p align="center"><b>UPLOAD SUCCESSFUL: </font><font color="#000000" size="3">Your document has now been uploaded and is ready to send.</b></p></font>';
$loadingimage = true;
}
else {
if(!$tmp){
echo '<font size="3"><p align="center"><b>UPLOAD FAILED: </font><font color="#000000" size="3">No document has been selected.</b></p></font>';
}
else {
echo '<font size="3"><p align="center"><b>UPLOAD FAILED: </font><font color="#000000" size="3">Uploaded document was an incorrect extension type, please use ".jpg", ".jpeg", or "png" only.</b></p></font>';
}
}
}
?>
<div class="gridContainer clearfix">
<div id="borderDiv">
<div id="navDiv">
<div id="backNavDiv">
<a href="index.php?logout"><font color="white"><p align="right"><b> < Log Out</b></p></font></a>
</div>
</div>
<div id="headerDiv">
<p>Attach Image</p>
</div>
<div id="loginBtnDiv">
<div id="uploadAreaDiv">
<form action="AttachImage.php" method="post" enctype="multipart/form-data" name="FileUploadForm" id="FileUploadForm">
<label for="UploadFileField"></label>
<input type="file" name="UploadFileField" id="UploadFileField"/>
<input type="submit" name="UploadButton" id="UploadButton" value="Upload"/>
</form>
</div>
<form action="AttachImage.php" method="post" enctype="multipart/form-data" name="delete" id="delete">
<input id="delete" name="delete" type="submit" value="Delete">
</form>
<form action="AttachImage.php" method="post" enctype="multipart/form-data" name="FileForm" id="FileForm">
<input id="submit" name="submit" type="submit" value="Next">
</form>
</div>
</div>
</div>
<div id="logoDiv">
<img src="IMAGES/Logo.png">
</div>
</body>
</html>
附加图像
附加图像
您需要将HTML和PHP分离到它们自己的文件中。使用Javascript分别运行PHP文件,并在需要时调用操作
这是一个如何工作的示例
$s_sql="SELECT lots.lot_number
FROM lots
WHERE lots.lot_number LIKE '".$_REQUEST["q"]."%'";
$result = mysqli_query($con,$s_sql);
$s_arr = mysqli_fetch_array($result);
// Output
echo isset($s_arr) === false ? '' : $s_arr[0];
?>
此示例是一个搜索和填充函数。这并不是针对你的问题,但你应该能够理解逻辑
Javascript函数formFill()
是使用HTML输入字段中的onkeyup
调用的。使用AJAX,Javascript调用一个单独的文件(在本例中是一个运行数据库查询的PHP文件),并输出指定的内容(即document.getElementById(x).innerHTML=xmlhttp.responseText;
)
HTML
<input type="text" onkeyup="formFill(this.value, 'lot')" name="lot_number"/>
<div id="lot"></div>
$s_sql="SELECT lots.lot_number
FROM lots
WHERE lots.lot_number LIKE '".$_REQUEST["q"]."%'";
$result = mysqli_query($con,$s_sql);
$s_arr = mysqli_fetch_array($result);
// Output
echo isset($s_arr) === false ? '' : $s_arr[0];
?>
PHP
$s_sql="SELECT lots.lot_number
FROM lots
WHERE lots.lot_number LIKE '".$_REQUEST["q"]."%'";
$result = mysqli_query($con,$s_sql);
$s_arr = mysqli_fetch_array($result);
// Output
echo isset($s_arr) === false ? '' : $s_arr[0];
?>
这个PHP查询使用echo
来“显示”数据,因为整个文件都将被执行并显示给用户。在启动html之前,您会进行回显,这就是它的偏移量是多少?垂直还是水平?可能是因为关闭php标记和html标记之间的空白。作为旁注,始终die()代码>或退出()代码>在标题('location:…')之后代码>编辑,是的,正如@YannChabot指出的,php在文档开始之前生成输出你只是假设文件上传已经执行并成功,只是假设移动成功,你只是假设删除成功,yada yada yada。这是很多错误的假设。我建议将?>
和
连接起来。正如@andrew提到的,有时空格和换行符会造成麻烦。另外,您是否在多个浏览器中对其进行了测试?输出后是否可以重定向?(标题(“位置…”)
)?@cale\u b否,一旦开始输出,您就不能发送标题