2013-02-02 68 views
0

能有人幫我有我使用這個圖像上傳腳本工作正常,但我想這部分代碼添加到底部:上傳後重定向到頁面並使用會話顯示消息?

$_SESSION['dashboard_intro']="<div class=\"user_settings_box_home\"><strong>Welcome to your new profile</strong> - This is your Dashborad.</div><div class=\"infobox-close4\"></div>"; 
header('Location: dashboard.php'); 

的想法是用戶上傳的圖像後,並且上傳腳本已經運行,那麼用戶將被重定向到另一個頁面,並使用會話顯示一條消息。

但是上傳圖片後沒有任何事情發生,頁面沒有重定向,也沒有顯示任何消息,請有人告訴我哪裏出錯了。

<?php 
    session_start() 
    ?> 
    <? 


    // LOG 
    $log = '=== ' . @date('Y-m-d H:i:s') . ' ===============================' . "\n" 
      . 'FILES:' . print_r($_FILES, 1) . "\n" 
      . 'POST:' . print_r($_POST, 1) . "\n"; 
    $fp = fopen('upload-log.txt', 'a'); 
    fwrite($fp, $log); 
    fclose($fp); 


    // Result object 
    $r = new stdClass(); 
    // Result content type 
    header('content-type: application/json'); 


    // Maximum file size 
    $maxsize = 10; //Mb 
    // File size control 
    if ($_FILES['xfile']['size'] > ($maxsize * 1048576)) { 
     $r->error = "Max file size: $maxsize Kb"; 
    } 


    // Uploading folder 
    $folder = '../'. '../'. 'data/'. 'photos/'. $_SESSION['user_id'] . '/'; 
    if (!is_dir($folder)) 
     mkdir($folder); 

    // If specifics folder 
    $folder .= $_POST['folder'] ? $_POST['folder'] . '/' : ''; 
    if (!is_dir($folder)) 
     mkdir($folder); 

    // PASS USER_ID HERE 
    $folder2 = '../'. '../'. 'data/'. 'photos/'. $_SESSION['user_id'] . '/'; 
    if (!is_dir($folder2)) 
     mkdir($folder2); 

    // New directory with 'files/USER_SESSION_ID/' 
    $folder = $newDir . $folder2; 


    // If the file is an image 
    if (preg_match('/image/i', $_FILES['xfile']['type'])) { 

     $filename = $_POST['value'] ? $_POST['value'] : 
       $folder . '_default.jpg'; 
    } else { 

     $tld = split(',', $_FILES['xfile']['name']); 
     $tld = $tld[count($tld) - 1]; 
     $filename = $_POST['value'] ? $_POST['value'] : 
       $folder . sha1(@microtime() . '-' . $_FILES['xfile']['name']) . $tld; 
    } 


    // Supporting image file types 
    $types = Array('image/png', 'image/gif', 'image/jpeg'); 
    // File type control 
    if (in_array($_FILES['xfile']['type'], $types)) { 
     // Create an unique file name  
     // Uploaded file source 
     $source = file_get_contents($_FILES["xfile"]["tmp_name"]); 
     // Image resize 
     imageresize($source, $filename, $_POST['width'], $_POST['height'], $_POST['crop'], $_POST['quality']); 
    } else 
    // If the file is not an image 
    if (in_array($_FILES['xfile']['type'], $types)) 
     move_uploaded_file($_FILES["xfile"]["tmp_name"], $filename); 



    // File path 
    $path = str_replace('welcome_upload.php', '', $_SERVER['SCRIPT_NAME']); 

    // Result data 
    $r->filename = $filename; 
    $r->path = $path; 
    $r->img = '<img src="' . $path . $filename . '" alt="image" />'; 

    // Return to JSON 
    echo json_encode($r); 

    // Image resize function with php + gd2 lib 
    function imageresize($source, $destination, $width = 0, $height = 0, $crop = false, $quality = 80) { 
     $quality = $quality ? $quality : 80; 
     $image = imagecreatefromstring($source); 
     if ($image) { 
      // Get dimensions 
      $w = imagesx($image); 
      $h = imagesy($image); 
      if (($width && $w > $width) || ($height && $h > $height)) { 
       $ratio = $w/$h; 
       if (($ratio >= 1 || $height == 0) && $width && !$crop) { 
        $new_height = $width/$ratio; 
        $new_width = $width; 
       } elseif ($crop && $ratio <= ($width/$height)) { 
        $new_height = $width/$ratio; 
        $new_width = $width; 
       } else { 
        $new_width = $height * $ratio; 
        $new_height = $height; 
       } 
      } else { 
       $new_width = $w; 
       $new_height = $h; 
      } 
      $x_mid = $new_width * .5; //horizontal middle 
      $y_mid = $new_height * .5; //vertical middle 
      // Resample 
      error_log('height: ' . $new_height . ' - width: ' . $new_width); 
      $new = imagecreatetruecolor(round($new_width), round($new_height)); 
      imagecopyresampled($new, $image, 0, 0, 0, 0, $new_width, $new_height, $w, $h); 
      // Crop 
      if ($crop) { 
       $crop = imagecreatetruecolor($width ? $width : $new_width, $height ? $height : $new_height); 
       imagecopyresampled($crop, $new, 0, 0, ($x_mid - ($width * .5)), 0, $width, $height, $width, $height); 
       //($y_mid - ($height * .5)) 
      } 
      // Output 
      // Enable interlancing [for progressive JPEG] 
      imageinterlace($crop ? $crop : $new, true); 

      $dext = strtolower(pathinfo($destination, PATHINFO_EXTENSION)); 
      if ($dext == '') { 
       $dext = $ext; 
       $destination .= '.' . $ext; 
      } 
      switch ($dext) { 
       case 'jpeg': 
       case 'jpg': 
        imagejpeg($crop ? $crop : $new, $destination, $quality); 
        break; 
       case 'png': 
        $pngQuality = ($quality - 100)/11.111111; 
        $pngQuality = round(abs($pngQuality)); 
        imagepng($crop ? $crop : $new, $destination, $pngQuality); 
        break; 
       case 'gif': 
        imagegif($crop ? $crop : $new, $destination); 
        break; 
      } 
      @imagedestroy($image); 
      @imagedestroy($new); 
      @imagedestroy($crop); 

      $_SESSION['dashboard_intro']="<div class=\"user_settings_box_home\"><strong>Welcome to your new profile</strong> - This is your Dashborad.</div><div class=\"infobox-close4\"></div>"; 
    header('Location: dashboard.php'); 
     } 
    } 


    ?> 
+0

使用<?php而不是<?在新版本的PHP <? dosn't工作 –

回答

0

在標題之前,你一定不要回顯空間,換行等任何東西。它停在你的代碼頭的工作這樣

?> 
<? 
-1
<script type="text/javascript"> 
    var url = "<?php echo $link; ?>"; 
    window.location.href = url; 
</script> 
<noscript> 
    JavaScript is turn off. Try redirect <a href="<?php echo $link; ?>">manyaly</a>. 
</noscript> 
+0

通過js重定向不是一個好的方法,而不是標題 –

1

你需要把出口();在您的標題重定向之後,否則您剛剛將兩頁內容加載到1頁中。

還要確保你有session_start();在所有腳本的頂部。

如果它解決了然後確定其他也試試這個或你可能需要與兩者的結合,但很少費力。

創建dashboard.php一個div將使用顯示像

session_start(); 
<?php if(isset($_SESSION['dashboard_intro'])){?> 
    <div class="user_settings_box_home"><strong><?php echo $_SESSION['dashboard_intro']?></strong> - - This is your Dashborad.</div><div class="infobox-close4"></div> 
<?php } ?> 

信息並設置$_SESSION['dashboard_intro'] = "Welcome to your new profile";

成功上載文件和重定向後立即dashboard.php

header('Location: dashboard.php');exit(); 
相關問題