Javascript无法在PHP IF-Clause中执行

时间:2017-02-28 15:24:07

标签: javascript php

我遇到了一个问题,我无法在PHP IF-Clause中运行JavaScript。

我有一个简单的上传脚本,我从某处获得并修改它。

现在的问题是,IF-Clause之外的所有JavaScript都在运行,但内部没有任何内容。

继承我的代码:

文件名:upload.php

<?php
$uploadFolder = "uploads/";
$newfolder = $uploadFolder.round(microtime(true))."/";
if(isset($_FILES['upl']) && $_FILES['upl']['error'] == 0)
{
	$file_extension = pathinfo($_FILES['upl']['name'], PATHINFO_EXTENSION);
	$filename = pathinfo($_FILES['upl']['name'], PATHINFO_FILENAME);
	$url = "http://example.com";
	if(!file_exists($newfolder))
	{
		mkdir($newfolder, 0777);
	}
	$newFile = $newfolder.$filename.".".$file_extension;
	move_uploaded_file($_FILES['upl']['tmp_name'], $newFile);
	$file = fopen($newfolder."who", "a");
	$ip=$_SERVER['REMOTE_ADDR'];
	echo fwrite($file, $ip);
	echo fwrite($file, "\n".date('m/d/Y h:i:s a', time())."\n");
	fclose($file);
	$nurl = $url."/".$newfolder;
	echo "<script>location.href='$nurl'</script>";
}
?>

<html>

	<head>
		<meta charset="utf-8"/>
		<title>SKO-Gaming Upload Form</title>

		<!-- Google web fonts -->
		<link href="http://fonts.googleapis.com/css?family=PT+Sans+Narrow:400,700" rel='stylesheet' />

		<!-- The main CSS file -->
		<link href="assets/css/style.css" rel="stylesheet" />
	</head>

	<body>
		<form id="upload" method="post" action="upload.php" enctype="multipart/form-data">
			<div id="drop">
				Drop Here
				<a>Browse</a>
				<input type="file" name="upl" multiple />
			</div>

			<ul>

			</ul>

		</form>
        
		<!-- JavaScript Includes -->
		<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
		<script src="assets/js/jquery.knob.js"></script>

		<!-- jQuery File Upload Dependencies -->
		<script src="assets/js/jquery.ui.widget.js"></script>
		<script src="assets/js/jquery.iframe-transport.js"></script>
		<script src="assets/js/jquery.fileupload.js"></script>
		
		<!-- Our main JS file -->
		<script src="assets/js/script.js"></script>

	</body>
</html>

如果我将回显的东西(使用javascript)放在if子句之外就可以了,但是我希望用户在文件上传完成后重定向。

问候, 马丁

3 个答案:

答案 0 :(得分:1)

为什么要使用Javascript而不是PHP重定向用户? 改变你的回声&#34; ...&#34;与

header('Location: '.$nurl);
exit;

你应该得到你需要的东西。

答案 1 :(得分:0)

假设问题在这里。

echo "<script>location.href='$nurl'</script>";

将其更改为

echo "<script>window.location.href=".$nurl."</script>";

.-&GT;字符串连接。 使用&#34;而不是&#39;

答案 2 :(得分:0)

除了帽子,你说&#34; Nope&#34;对所有答案,是的

 header('Location: '.$nurl);
 exit;

是您问题的解决方案。这是部分,为什么它不适合你:

echo fwrite($file, $ip);
echo fwrite($file, "\n".date('m/d/Y h:i:s a', time())."\n");

标题前有输出。删除回声,你没事。 (除非你之前有更多的输出。