Visualizzazione dei risultati da 1 a 6 su 6

Discussione: funzione php

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2011
    residenza
    bergamo
    Messaggi
    1,027

    funzione php

    Ciao a tutti,

    ho una funzione scritta in php che viene richiamata (a quanto pare) anche quando non dovrebbe essere richiamata.

    vi incollo tutta la pagina php così avete una visione completa

    codice:
    <?phpsession_start();
    /* FUNCTION COMPRESS IMAGE */
    function compress_image($source_url,$destination_url,$quality) {
      $info = getimagesize($source_url);
      if($info['mime'] == 'image/jpeg') {
        $image = imagecreatefromjpeg($source_url);
      }
      elseif($info['mime'] == 'image/png') {
        $image = imagecreatefrompng($source_url);
      }
      imagejpeg($image,$destination_url,$quality);
      return $destination_url;
    }
    /* IMAGE RESIZE LIBRARY */
    include_once 'ImageResize.php';
    use \Eventviva\ImageResize;
    include_once 'config.php';
    // PRENDO INFO NEWS 
    if(isset($_GET['news'])) {
      $sel_news = $db->prepare("SELECT * FROM mbe_news WHERE id=:id");
      $sel_news->execute(array(':id'=>$_GET['news']));
      $res_news = $sel_news->fetch();
      $titolo = $res_news[2];
      $descrizione = $res_news[3];
      $sorgente = $res_news[4];
      // MODIFICA GALLERY
      if(isset($_POST['submitModNews']) and $_SERVER['REQUEST_METHOD'] == "POST") {
        $mod_news = $db->prepare("UPDATE mbe_news SET titolo=:titolo, descrizione=:descrizione WHERE id=:id");
        $mod_news->execute(array(':titolo'=>$_POST['inputModTitle'],':descrizione'=>$_POST['inputModTesto'],':id'=>$_GET['news']));
        // aggiungi immagini a gallery esistente
        $cartella_news = "img/news/".$_GET['news'];
        if(!empty($_FILES["mod_gallery_news"])) {
          $num_files = count($_FILES["mod_gallery_news"]["tmp_name"]);
          for($i=0;$i<$num_files;$i++) {
            compress_image($_FILES["mod_gallery_news"]["tmp_name"][$i],$cartella_news."/".$_FILES["mod_gallery_news"]["name"][$i],90);
          }
          $resize_files = glob($cartella_news."/*.*");
          for($i=0;$i<count($resize_files);$i++) {
            $image = $resize_files[$i];
            $supported_file = array('jpg','jpeg','png','JPG','PNG','JPEG');
            $ext = strtolower(pathinfo($image, PATHINFO_EXTENSION));
            if(in_array($ext, $supported_file)) {
              $resize = new ImageResize($image);
              $resize->resizeToHeight(500);
              $resize->save($image);
            }
            else {
              continue;
            }
          }
        }
        header("Location:list_news_admin.php");
      }
    }
    ?>
    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>MBE - Admin</title>
        <!-- FAVICON -->
        <link rel="shortcut icon" href="img/favicon.ico" type="image/x-icon">
        <link rel="icon" href="img/favicon.ico" type="image/x-icon">
        <!-- /FAVICON -->
        <link href="http://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet" type="text/css">
        <link href="css/pingendo-bootstrap.css" rel="stylesheet" type="text/css">
        <link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap-glyphicons.css" rel="stylesheet">
        <link href="css/bootstrap-toggle.min.css" rel="stylesheet">
        <!-- Custom styles for this template -->
        <link href="css/style.css" rel="stylesheet">
        <!-- Just for debugging purposes. Don't actually copy this line! -->
        <!--[if lt IE 9]><script src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
        <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
        <!--[if lt IE 9]>
          <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
          <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
        <![endif]-->
      </head>
      <body>
      <?php
      if(!isset($_SESSION['admin'])) {
      ?>
        <div class="section dark">
          <div class="container">
            <div class="row">
              <div class="col-md-12 col-sm-12 col-xs-12 text-center">
                <h1 class="title">Pannello di controllo&nbsp;&nbsp;<i class="fa fa-cog fa-spin"></i></h1>
              </div>
              <div class="col-md-6 col-md-offset-3 col-sm-8 col-sm-offset-1 col-xs-12 text-center">
                <form class="margined-top" method="POST" action="login.php">
                  <div class="form-group col-md-12 col-sm-12 col-xs-12">
                    <label class="label-light" for="inputAdmin">Username</label>
                    <input type="text" class="form-control" id="inputAdmin" name="inputAdmin">
                  </div>
                  <div class="form-group col-md-12 col-sm-12 col-xs-12">
                    <label class="label-light" for="inputPassword">Password</label>
                    <input type="password" class="form-control" id="inputPassword" name="inputPassword">
                  </div>
                  <div class="form-group col-md-12 col-sm-12 col-xs-12 text-center">
                    <a href="index.php" class="btn btn-lg btn-primary">Torna al sito</a>
                    <button type="submit" class="btn btn-lg btn-success" name="submitAdmin">Accedi</button>
                  </div>
                </form>
              </div>
            </div>
          </div>
        </div>
      <?php
      }
      else {
      ?>
        <div class="section dark">
          <div class="container">
            <div class="row">
              <div class="col-md-12 col-sm-12 col-xs-12 text-center">
                <h1 class="title">Benvenuto Amministratore</h1>
                <h2 class="subtitle">Modifica News</h2>
              </div>
              <div class="col-md-12 col-sm-12 col-xs-12 text-center margined-top">
                <div class="col-md-4 col-sm-4 col-xs-12">
                  <a href="index.php" class="btn btn-lg btn-block btn-primary"><i class="fa fa-home"></i>&nbsp;&nbsp;Home</a>
                </div>
                <div class="col-md-4 col-sm-4 col-xs-12">
                  <a href="admin.php" class="btn btn-lg btn-block btn-warning"><i class="fa fa-wrench"></i>&nbsp;&nbsp;Pannello</a>
                </div>
                <div class="col-md-4 col-sm-4 col-xs-12">
                  <a href="logout.php" class="btn btn-lg btn-block btn-danger"><i class="fa fa-times"></i>&nbsp;&nbsp;Esci</a>
                </div>
              </div>
            </div>
          </div>
        </div>
        <div class="section light">
          <div class="container">
            <div class="row">
              <div class="col-md-12 col-sm-12 col-xs-12">
                <a href="list_news_admin.php" class="btn btn-custom-black btn-lg"><i class="fa fa-chevron-left"></i>&nbsp;&nbsp;Indietro</a>
              </div>
              <form method="POST" action="modify-news.php?news=<?php echo $_GET['news'];?>" enctype="multipart/form-data">
                <div class="col-md-6 col-sm-6 col-xs-12 text-left">
                  <?php
                  $files = glob($sorgente."/*.*");
                  for($i=0;$i<count($files);$i++) {
                    $image = $files[$i];
                    $supported_file = array('jpg','jpeg','png');
                    $ext = strtolower(pathinfo($image, PATHINFO_EXTENSION));
                    if(in_array($ext, $supported_file)) {
                    ?>
                    <div class="col-md-4 col-sm-4 col-xs-12 margined-top">
                      <img src="<?php echo $image;?>" alt="<?php echo $titolo;?>" style="width:100%;height:auto;">
                      <a href="delete-img.php?image=<?php echo $image;?>" class="btn btn-danger btn-block"><i class="fa fa-trash-o"></i>&nbsp;&nbsp;Elimina</a>
                    </div>
                    <?php
                    }
                  }
                  ?>
                </div>
                <div class="col-md-6 col-sm-6 col-xs-12 text-center margined-top">
                  <div class="form-group">
                    <input type="text" name="inputModTitle" class="form-control" value="<?php echo $titolo;?>">
                  </div>
                  <div class="form-group">
                    <textarea rows="10" name="inputModTesto" class="form-control"><?php echo $descrizione;?></textarea>
                  </div>
                  <div class="form-group">
                    <input type="file" name="mod_gallery_news[]" id="galleryImages" multiple="multiple" class="form-control" accept="image/*">
                  </div>
                </div>
                <div class="col-md-12 col-sm-12 col-xs-12 text-right margined-top">
                  <button type="reset" class="btn btn-lg btn-danger">Annulla&nbsp;&nbsp;<i class="fa fa-times"></i></button>
                  <button type="submit" class="btn btn-lg btn-success" name="submitModNews">Modifica&nbsp;&nbsp;<i class="fa fa-pencil"></i></button>
                </div>
              </form>
            </div>
          </div>
        </div>
      <?php
      }
      ?>
        <script src="//cdn.ckeditor.com/4.5.6/basic/ckeditor.js"></script>
        <script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
        <script type="text/javascript" src="http://netdna.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
        <script>
        CKEDITOR.replace('inputModTesto');
        </script>
      </body>
    </html>

    COSA SUCCEDE?

    se io modifico ad esempio il titolo della news, e lascio vuoto il campo $_FILES quindi l'input file e premo il submit la pagina mi restituisce questi errori:

    Notice: Undefined variable: info in /home/mbe026/public_html/modify-news.php on line 8

    Notice: Undefined variable: info in /home/mbe026/public_html/modify-news.php on line 11

    Notice: Undefined variable: image in /home/mbe026/public_html/modify-news.php on line 14

    Warning: imagejpeg() expects parameter 1 to be resource, null given in /home/mbe026/public_html/modify-news.php on line 14

    Warning: Cannot modify header information - headers already sent by (output started at /home/mbe026/public_html/modify-news.php:8) in /home/mbe026/public_html/modify-news.php on line 55


  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Prova a cambiare questo
    if(!empty($_FILES["mod_gallery_news"])) {

    così
    if( isset( $_FILES["mod_gallery_news"]) ) && !empty( $_FILES["mod_gallery_news"]) ) {

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2011
    residenza
    bergamo
    Messaggi
    1,027
    non cambia nulla l'errore rimane

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2011
    residenza
    bergamo
    Messaggi
    1,027
    non riesco propri a capire come mai entra nella funzione nonostante non gli sia passato alcun parametro nel $_FILES

  5. #5
    metti dopo session_start un print_r($_FILES); e vediamo che c'è dentro quando fai un submit senza specificare nulla nella input
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2011
    residenza
    bergamo
    Messaggi
    1,027
    ho risolto così per il momento...

    codice:
     if(isset($_FILES['mod_gallery_news']) && count($_FILES['mod_gallery_news']['error']) == 1 && $_FILES['mod_gallery_news']['error'][0] > 0) {      // file not selected
          
        }
        else {
        //if(isset($_FILES["mod_gallery_news"]["tmp_name"]) and !empty($_FILES["mod_gallery_news"])) {
          $num_files = count($_FILES["mod_gallery_news"]["tmp_name"]);
          for($i=0;$i<$num_files;$i++) {
            compress_image($_FILES["mod_gallery_news"]["tmp_name"][$i],$cartella_news."/".$_FILES["mod_gallery_news"]["name"][$i],90);
          }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.