dty63504 2014-01-02 11:00
浏览 50
已采纳

错误“未定义的变量”

My code keeps displaying the error undefined variable: code but it adds to my database. The problem I think is in the first loop $code .= $tmp;

<?php
include '../library/config.php';

$action = isset($_GET['action']) ? $_GET['action'] : '';

switch ($action) {
    case 'create' : newTitle();
    break;
    case 'delete': deleteRecord();
    break;
    case 'archive': archiveRecord();
    break;

    default : header("Location: ../index.php");
}

function archiveRecord(){
    $title = $_POST['title'];
    $desc = $_POST['desc'];
    $adviser = $_POST['adviser'];
    $group = $_POST['group'];
    $category = $_POST['category'];
    $name = $_FILES['myfile']['name'];
    $type = $_FILES['myfile']['type'];
    $size = $_FILES['myfile']['size'];
    $tmpname = $_FILES['myfile']['tmp_name'];
    $ext = substr($name,strrpos($name, '.'));

    if ($name)
    {
        if($title && $desc)
        {

            $charset = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz123456789";
            $length = 15;
            for ($i = 0; $i <= $length; $i++)
            {
                $rand = rand() % strlen($charset);
                $tmp = substr($charset, $rand, 1);
                $code .= $tmp;
            }

            $query = mysql_query("SELECT code FROM archive WHERE code = '$code'");
//this is the cause of my error it adds to my database but it keeps saying Notice: Undefined variable: code 

            $numrows = mysql_num_rows($query);
            while($numrows != 0)
            {
                for ($i = 0; $i <= $length; $i++)
            {
                $rand = rand() % strlen($charset);
                $tmp = substr($charset, $rand, 1);
                $code .= $tmp;
            }

            $query = mysql_query("SELECT code FROM archive WHERE code = '$code'");
            $numrows = mysql_num_rows($query);
            }

                mkdir("../file/$code");
                move_uploaded_file($tmpname, "../file/$code/"."$name" );

                $file = "$name";
                $query = mysql_query("INSERT INTO archive VALUES ('', '$title','$desc','$adviser','$group','$category','$code','$name',NOW(),NOW(),NOW(),NOW())");

                $_SESSION['message']['type'] = "success";
                $_SESSION['message']['content'] = "Your file has been uploaded";

            header("Location: ../index.php?page=archive");
            exit;
            //echo "Your file has been uploaded.<br><br><a href='download.php?code=$code'>Download</a>";

        }else
            $_SESSION['message']['type'] = "danger";
            $_SESSION['message']['content'] = "You did not fill in the form";

            header("Location: ../index.php?page=archive");
    exit;


            //echo "You did not fill in the form. $form";
    }
    else
        $_SESSION['message']['type'] = "danger";
        $_SESSION['message']['content'] = "You did not put any file";

    header("Location: ../index.php?page=archive");
    exit;
}
  • 写回答

2条回答 默认 最新

  • dqzow3859 2014-01-02 11:07
    关注

    Always have practice to intialize your varaibles before using them, So as I mention in comment above you need to initialize $code variable before using it like $code .= $tmp somewhere around,

    $code = '';
    $length = 15;
    for ($i = 0; $i <= $length; $i++)
    {
        $rand = rand() % strlen($charset);
        $tmp = substr($charset, $rand, 1);
        $code .= $tmp;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?