1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Galeria de fotos

Discussão em 'Web Development' iniciada por speedofthesea, 11 de Maio de 2009. (Respostas: 4; Visualizações: 1056)

  1. speedofthesea

    speedofthesea Power Member

    Boas estou a tentar criar uma galeria de fotos por mim mesmo sendo que tenho as noções básicas de html . A minha ideia era ter paginas para a administração da galeria como gerência de comentários, criação e edição de categorias e mais tarde um sistema de vendas.
    O que eu tenho feito até agora com algumas coisas que tenho visto na net é, uma pagina de login com bd em mysql em que, com os dados correctos acedo a uma pagina restrita que ainda estou a desenvolver onde é possivel a visualização do ip da ultima pessoa que tentou entrar nesta pagina sem passar pelo login. Futuramente queria fazer o upload de fotos e gerência de comentários.
    Mas o que eu vinha aqui pedir ajuda é se será possível, quando a pessoa faz um upload selecionar a pasta para onde é feito o upload e como?
    È que eu sou noob nesta matéria de programação de sites.
    Se me ajudassem na programação da pagina de upload com a devida seleção da galeria, agradecia

    Até agora tive a desenvolver uma pagina de upload com conexão a bd em mysql com o seguinte codigo:
    Código:
    <?php require_once('../Connections/connSisFotos.php'); ?>
    <?php
    function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
    {
      $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;
    
      switch ($theType) {
        case "text":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;    
        case "long":
        case "int":
          $theValue = ($theValue != "") ? intval($theValue) : "NULL";
          break;
        case "double":
          $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
          break;
        case "date":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;
        case "defined":
          $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
          break;
      }
      return $theValue;
    }
    
    $editFormAction = $_SERVER['PHP_SELF'];
    if (isset($_SERVER['QUERY_STRING'])) {
      $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
    }
    
    // Aqui, pegamos o nome e o nome temporário da imagem enviada.
    $foto = $_FILES["foto_foto"]["name"];
    $fotoTmp = $_FILES["foto_foto"]["tmp_name"];
    
    if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
    // Acrescentamos o campo: foto_data.
    // Em VALUES, alteramos o primeiro %s por '$foto'; e acrescentamos o comando NOW(). 
      $insertSQL = sprintf("INSERT INTO fotos (foto_foto, foto_titulo, foto_legenda) VALUES (%foto, %s, %s, NOW())",
                           GetSQLValueString($_POST['foto_titulo'], "text"),
                           GetSQLValueString($_POST['foto_legenda'], "text"));
    // Função que cria a imagem, não trabalharemos com upload.
    
    function geraImg($img, $max_x, $max_y, $imgNome) {
        //pega o tamanho da imagem ($original_x, $original_y)
        list($width, $height) = getimagesize($img);
        $original_x = $width;
        $original_y = $height;
        // se a largura for maior que altura acho a porcentagem
        if($original_x > $original_y) {
           $porcentagem = (100 * $max_x) / $original_x;      
        }
        else {
           $porcentagem = (100 * $max_y) / $original_y;  
        }
        $tamanho_x = $original_x * ($porcentagem / 100);
        $tamanho_y = $original_y * ($porcentagem / 100);
        $image_p = imagecreatetruecolor($tamanho_x, $tamanho_y);
        $image = imagecreatefromjpeg($img);
        imagecopyresampled($image_p, $image, 0, 0, 0, 0, $tamanho_x, $tamanho_y, $width, $height);
        return imagejpeg($image_p, $imgNome, 100);
    }
    
    // Chama a imagem, passando os parâmetros a ela.
    geraImg($fotoTmp, 640, 480, "../fotos/".$foto); 
    
      mysql_select_db($database_connSisFotos, $connSisFotos);
      $Result1 = mysql_query($insertSQL, $connSisFotos) or die(mysql_error());
    
      $insertGoTo = "index.php";
      if (isset($_SERVER['QUERY_STRING'])) {
        $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
        $insertGoTo .= $_SERVER['QUERY_STRING'];
      }
      header(sprintf("Location: %s", $insertGoTo));
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Untitled Document</title>
    </head>
    
    <body>
    <form action="<?php echo $editFormAction; ?>" method="post" enctype="multipart/form-data" name="form1">
      <table align="center">
        <tr valign="baseline">
          <td nowrap align="right">Fotografia:</td>
          <td><input name="foto_foto" type="file" size="32"></td>
        </tr>
        <tr valign="baseline">
          <td nowrap align="right">Titulo:</td>
          <td><input type="text" name="foto_titulo" value="" size="32"></td>
        </tr>
        <tr valign="baseline">
          <td nowrap align="right" valign="top">Legenda:</td>
          <td><textarea name="foto_legenda" cols="50" rows="5"></textarea>
          </td>
        </tr>
        <tr valign="baseline">
          <td nowrap align="right">&nbsp;</td>
          <td><input type="submit" value="Enviar Fotografia"></td>
        </tr>
      </table>
      <input type="hidden" name="MM_insert" value="form1">
    </form>
    <p>&nbsp;</p>
    </body>
    </html>
    
    Aqui pesso a vossa ajuda em como poderei inserir um campo com uma "lista" onde selecionarei o local/categoria para onde serão transferidas as fotos.
    E tambem pesso que me ajudem a resolver este erro que aparace quando carrego em Enviar fotografia :
    Warning: sprintf() [function.sprintf]: Too few arguments in C:\xampp\htdocs\Galeria\admin\insere_foto.php on line 42

    Warning: imagejpeg() [function.imagejpeg]: Unable to open '../fotos/Pôr do sol.jpg' for writing: No such file or directory in C:\xampp\htdocs\Galeria\admin\insere_foto.php on line 62
    Query was empty

    As linguagens que ate agora desenvolvi para este site foram php utilizando alguns tutoriais da net e html.
    E estou a usar o dreamweaver MX 2004 e o Xampp como servidor de testes.
    Sou um pouco noob nesta matéria por isso peço-vos que me ajudem.


    Obrigado
    Cumps
     
  2. Huckleberry

    Huckleberry Power Member

    no sprintf tens o %foto mal, deverá ser $foto

    PHP:
    $insertSQL sprintf("INSERT INTO fotos (foto_foto, foto_titulo, foto_legenda) VALUES ('$foto', '%s', '%s', NOW())",
    GetSQLValueString($_POST['foto_titulo'], "text"),
    GetSQLValueString($_POST['foto_legenda'], "text"));
    Em relação ao 2º erro certifica-te por ex. que o upload é feito com sucesso; se tens permissão de escrita no ficheiro.
     
  3. speedofthesea

    speedofthesea Power Member

    Obrigado, mas agora dá me um erro que segundo percebi é na bd .
    O erro é :
    Warning: imagejpeg() [function.imagejpeg]: Unable to open '../fotos/Pôr do sol.jpg' for writing: No such file or directory in C:\xampp\htdocs\Galeria\admin\insere_foto.php on line 62
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'teste'', ''lol'', NOW())' at line 1

    Obrigado
     
  4. Huckleberry

    Huckleberry Power Member

    Nem tinha reparado na instrução sql em si, mas estavas a atribuir 1 valor a mais, por ex. tens 3 campos na instrução, mas estavas a inserir 4 valores.

    PHP:
    $insertSQL sprintf("INSERT INTO fotos (foto_foto, foto_titulo, foto_legenda) VALUES ('$foto', '%s', '%s')",
    GetSQLValueString($_POST['foto_titulo'], "text"),
    GetSQLValueString($_POST['foto_legenda'], "text"));  
     
  5. speedofthesea

    speedofthesea Power Member

    Desculpa lá
    mas continua a dar o erro : Warning: imagejpeg() [function.imagejpeg]: Unable to open '../fotos/Nenúfares.jpg' for writing: No such file or directory in C:\xampp\htdocs\Galeria\admin\insere_foto.php on line 62
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'sa'', ''dasaddas'')' at line 1


    Cumps e obrigado
     

Partilhar esta Página