0

私はかなり奇妙な問題を抱えており、私のような人にとっては、それを理解することはできません!

基本的に、ドキュメントのアップロードを許可されたユーザーがいて、それがプロファイルに関連付けられています。

ユーザーがドキュメントを削除することを決定した場合、ここで削除されるのはドキュメントだけで、含まれているコンテンツ (コメント、タイトルなど) は削除されません。削除 - ただし、SQL エントリは削除されていません。

mydocs.php:

if ($_SESSION['USERID'] != "" && $_SESSION['USERID'] >= 0 && is_numeric($_SESSION['USERID']))
{
    if($_REQUEST['submitdelete']!="")
    {
        $deletedoc = $_POST['deletedoc'];
        $svcount = count($deletedoc);
        for ($i = 0; $i < $svcount; $i++)
        {
            if ($deletedoc[$i] != "" && $deletedoc[$i] >= 0 && is_numeric($deletedoc[$i]))
            {       
                $query = "SELECT * FROM docs WHERE DID='".mysql_real_escape_string($deletedoc[$i])."'";
                $executequery = $conn->execute($query);
                $theuserid = $executequery->fields['USERID'];
                $doc_name = $executequery->fields['doc_name'];

                if(mysql_affected_rows()>=1)
                {                   
                    $docpath = $config['docdir']."/".$doc_name;
                    @chmod($docpath, 0777);

                    if (file_exists($docpath))
                    {
                        @unlink($docpath);
                    }

                    if($theuserid == $_SESSION['USERID'])
                    {
                        $deletefrom[] = "docs";
                        $deletefrom[] = "docs_comments";
                        $deletefrom[] = "docs_favorited";

                        for($j=0;$j < count($deletefrom);$j++)
                        {
                            $query = "DELETE FROM ".$deletefrom[$j]." WHERE DID='$deletedoc[$i]'";
                            $conn->Execute($query);
                        }

                        $tempthumbs = $config['thumbdir']."/".$deletedoc[$i].".jpg";
                        if(file_exists($tempthumbs)) 
                        {
                            @unlink($tempthumbs);
                        }

                        if ($svcount > 1)
                        {
                            $message = $lang['643'];
                        }
                        else
                        {
                            $message = $lang['644'];
                        }
                    } 
                    else
                    {
                        if ($svcount > 1)
                        {
                            $error = $lang['645'];
                        }
                        else
                        {
                            $error = $lang['646'];
                        }
                    }

                }
            }
        }
    }

mydocs.tpl:

<form id="deleteform" name="deleteform" action="{$baseurl}/mydocs.php" method="post">
                        {section name=i loop=$docs}
                        {insert name=seo_clean_titles assign=title value=a title=$docs[i].title}
                        <div class="column {if $smarty.section.i.iteration % 6 == 0}last{/if}">
                            <div class="image"><a href="{$baseurl}/doc/{$docs[i].DID}/{$title}"><img src="{$vthumburl}/{$docs[i].doc_name|truncate:-4:"":true}.jpg" alt="{$docs[i].title|stripslashes|truncate:25:"...":true}" ></a></div>
                            <h3><a href="{$baseurl}/doc/{$docs[i].DID}/{$title}">{$docs[i].title|stripslashes|truncate:17:"...":true}</a>
                            <br />{$lang485}: <input type="checkbox" name="deletedoc[]" value="{$docs[i].DID}">
                            <br /><a href="{$baseurl}/mydocsedit.php?DID={$docs[i].DID}">{$lang318}</a></h3>
                        </div>
                        {/section}  <div class="btndelete">
                        <input type="submit" value="&nbsp;" name="submitdelete"></div>
                        </form>

解決策/支援を緊急に待っています。

よろしくお願いします!

4

1 に答える 1

1

コードに問題はありません。

何らかの理由で、connect.php は SQL データベースへの書き込みのみのアクセス許可を使用していました。

すべての特権に変更すると、機能するようになりました。

確保するなら今だ。

于 2013-11-12T10:03:44.340 に答える