@invaest

Область видимости переменных php как задать глобально, а не локально?

При выполнении скрипта пишет Undefined variable lnk on line 36. Никак не могу разобраться как исправить.
<?php
error_reporting(-1);
ini_set('display_errors', true);
include('bd.php');
 $data=$_POST['data'];
  $namef=$_POST['namef'];
   $tags=$_POST['tags'];
     $dir='/.upload/';
     @mkdir($dir,0777);
     if(isset($_FILES["upfile"]))
     {
     $upfile=$_FILES["upfile"]["tmp_name"];
     $upfile_name=$_FILES["upfile"]["name"];
     $upfile_size=$_FILES["upfile"]["size"];
     $upfile_type=$_FILES["upfile"]["type"];
     $upfile_code=$_FILES["upfile"]["error"];  
     echo $upfile_size; //выводит 829
    $upfile_name = $dir.$upfile_name;
   copy($upfile,$upfile_name);
   
   
}
   $upfile_name=$_FILES["upfile"]["name"]; //23 строка
    $lnk = 'http://'.$_SERVER['HTTP_HOST'].'/.upload/'.$upfile_name; 

     $sl="INSERT INTO `ufiles` (`data`,`namef`,`tags`,`link`) VALUES('$data','$namef','$tags','$lnk')";
     $result=mysql_query($sl);


      if($result=='true') 
      {
          echo "<p>В базу внесено!</p>";
      }
      else
      {
       echo "Error! ----> ". mysql_error();
      }
             echo $lnk;
?>
  • Вопрос задан
  • 2368 просмотров
Пригласить эксперта
Ответы на вопрос 2
deadbyelpy
@deadbyelpy
веб-шмеб
раз уш без глобальных не обойтись, пишите в$GLOBALS['{{key}}']
эт запишет в глобальную видимость.
Ответ написан
Комментировать
KorsaR-ZN
@KorsaR-ZN
Причем тут глобальные область?
Когда все верно, у вас просто переменная lnk не существует. т.к она инициализируется под условием, а если условие не выполнилось, то и переменная не создалась...,
А вы ее пытаетесь вывести на 36 строке, отсюда и ошибка.

Чтобы исправить это, Вам необходимо перед условием if(isset($_FILES["upfile"])), про инициализировать переменную, к примеру так $lnk = null;
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы