2013-08-28 123 views
0

有2页,一个是主要的,而另一个包括以它传递变量值的PHP

的主网页

<?php 
$var_value = 7; 
$_SESSION['varname'] = $var_value; 
include 'upload_image.php'; 
?> 

和包含页面

<?php 
include 'init.php'; 

if (!logged_in()) { 
header('Location: index.php'); 
exit(); 
} 

include 'template/header.php'; 
?> 

<h3>Upload image</h3> 

<?php 

if (isset($_FILES['image'], $_POST['image_n'], $_POST['image_description'])) { 
$image_name = $_FILES['image']['name']; 
$bytes = $_FILES['image']['size']; 
$image_temp = $_FILES['image']['tmp_name']; 
$image_n = $_POST['image_n']; 
$image_description = $_POST['image_description']; 

$allowed_ext = array('jpg', 'jpeg', 'png', 'gif', 'rar', 'pdf'); 
//$image_ext = strtolower(end(explode('.', $image_name))); 

$image_ext = pathinfo($image_name, PATHINFO_EXTENSION); 

$album_id = $_SESSION['varname']; 

$errors = array(); 

if (empty($image_name) || empty($album_id) || empty($image_n) ||   empty($image_description)) { 

    $errors[] = 'Something is missing'; 
} else { 

if (strlen($album_name) > 55 || strlen($album_description) > 255) { 
     $errors[] = 'One or more fields contains too many characters'; 
    } 

if (in_array($image_ext, $allowed_ext) === false) { 
    $errors[] = 'File type not allowed'; 

} 

//if ($image_size > 2097152) { 
// $errors[] = 'Maximum file size is 2mb'; 
//} 

if (album_check($album_id) === false) { 
    $errors[] = 'Couldn\'t upload to that album'; 
} 

} 

if (!empty($errors)) { 
    foreach ($errors as $error) { 
     echo $error, '<br />'; 
    } 

} else { 
    $byte = formatSizeUnits($bytes); 
    upload_image($image_temp, $image_ext, $album_id, $image_n, $image_description, $byte); 
    header('Location: view_album.php?album_id='.$album_id); 
    exit(); 
} 
} 

$albums = get_albums(); 

if (empty($albums)) { 
echo'<p>You don\'t have any albums. <a href="create_album.php">Create an album</a></p>'; 
} else { 
?> 

<form action="" method="post" enctype="multipart/form-data"> 
<div class="choose"> 
    <p>Choose a file:<br /><input type="file" name="image" /></p> 
    </div> 
     <div class="des"> 
     <p>Name*:<br /><input type="text" name="image_n" maxlength="55"/></p> 
     <p>Description*:<br /><textarea name="image_description" rows="6" cols="35" maxlength="255"></textarea></p> 


    <p><input type="submit" value="Upload" /></p> 
    </div> 
</form> 
<div class="foot"> 
<?php 
} 

include 'template/footer.php'; 
?> 
</div> 

形式在第二页的末尾不加载..但是当我删除主页面的第一行$ var_value = 7;在结束加载的形式..我不知道是什么问题或者有其他方式来设置主要相册值并将其传递到包含页面

+0

缺少'session_start()' – 2013-08-28 19:55:01

+0

@Dagon Nah ... OP只是没有发布它。他们从来没有(记住)。 ...啊,但是再一次。 –

+0

如果您不重新分配'$ var_value'的值是多少?包含的文件使用$ _SESSION ['varname']'作为查找的相册ID,所以您要更改ID。 – Barmar

回答

1

如果没有在$album_id发现的问题,这是从$var_value设置,所包含的文件执行:

$byte = formatSizeUnits($bytes); 
upload_image($image_temp, $image_ext, $album_id, $image_n, $image_description, $byte); 
header('Location: view_album.php?album_id='.$album_id); 
exit(); 

所以它永远不会获取显示形式的一部分。

+0

当我删除var_value = 7;表单加载! – user2687618

+0

只有'$ album_id'没有问题时才会退出。如果你没有设置'$ var_value',那么'$ album_id'将会是未定义的,这是一个问题。所以它显示一个错误,然后显示表单。 – Barmar

+0

所以为什么它不加载时,我把$ var_value = 7; ? – user2687618

0

第二个代码是包含在内?如果是的话比你可以只使用

$album_id = $var_value 

相反的:

$album_id = $_SESSION['varname']; 

在代码的第二次和平...无需一个会话。

+0

我试过了,但最后的形式仍然不加载 – user2687618

+0

我怀疑包含的文件是打算从多个调用者使用,所以它不能假定调用者中的特定变量。 – Barmar