2008-10-01 8 views
0

내 리그에서 조금 벗어난 동일한 CMS에 대한 코드를 상속 받았으며 동일한 오류가 발생했습니다. Notice :/Applications/MAMP/htdocs/Chapman/Chapman_cms/admin/team-2.php on line 48. 이것은 새로운 사용자를 생성하고 오래된 사용자를 편집하기로되어 있습니다. 그러나 새 사용자를 추가하려고하면 작동하지 않습니다. 어떤 도움이 많이 주시면 감사하겠습니다PHP에서 정의되지 않은 변수

$db = new database("mysql",$dbHost,$dbName,$dbUser,$dbPass); 
$target = 'add'; 
if ($_GET['task'] == 'edit') { 
$media = $db->get_row(edit_media_item($db, $_GET['team_id'])); 
$target = 'update'; 

<p><label for="copy">Full Name:</label> 
    <input type="text" name="title" value="<?=$media['title']?>" /> 
    <textarea name="media" id="media" cols="30" rows="5" style="width: 100%"><?=$media['copy']?></textarea></p> 
    <input type="hidden" name="process" value="<?=$target.",copy,4,team-1,".$media['id'].""?>"> 
    <p><input type="submit" name="save" value="Submit" /> 
    <input type="reset" name="reset" value="Reset" /></p> 
    </form> 

:

는 아래 pertinant 코드입니다.

답변

1

알림은 관련이 없지만이 코드는 아무 것도 만들지 않습니다. 그것은 제출 된 페이지에서 발생합니다. 처음 몇 라인에서 if 문을보십시오. URL에서 task = edit로 호출해야한다고 생각합니다.

2

다음과 같이 당신을 도울 어려울 수 있지만, 내가있는 곳 $ DB-> get_row() 호출이 가고 무엇을 반환 (위해 var_dump() 또는 무언가를 사용하여 ...)

으로 볼 것 일반적인 팁, 시스템에서 디버거를 설정하는 것이 좋으므로 호출을 추적 할 수 있습니다. Windows 플랫폼에서는 xdebug를 WinCacheGrind와 함께 사용하여 호출 계층 구조에 대해 확신 할 수 없을 때 호출을 추적합니다. Linux의 경우 설치가 비슷합니다 (xdebug, kcachegrind ...).

0

게시 한 코드는 생성하지 않으므로이 문제는이 코드에서 비롯된 것이 아닙니다.

정의되지 않은 알림은 <?=$media['copy']?> 비트입니다. $ media는 결코 정의되지 않았습니다. 이것이 문제가되지 않는다면 무시하고 PHP가 알림을 출력하지 않도록 지시하십시오. 이것은 정확하게 좋은 습관은 아니지만, 모든 작은 일을 해결하기 위해 돈을받지 못한다면, 실현 가능한 대안이라고 말할 수 있습니다. 주의 사항은 글로벌로 더 나은 아직 발생하거나 어디서든하기 전에주의 사항은이 코드를 추가 억제

은 다음과 같습니다 : 더 많은 정보에 대한

error_reporting(E_ERROR | E_WARNING | E_PARSE); 

: http://www.php.net/error_reporting

6

이 올바른 방법으로 통지를 제거하기 위해 수행된다 코드와이

<?php if(isset($media['copy'])){ echo $media['copy']; } ?> 
1

당신은 또한 다음과 같은 기호로 사용할 수 있습니다 :

if($_GET['undefined_key']) { 
    // blah... 
} 

if(@$_GET['undefined_key']) { 
    // blah... 
} 

경고를 표시하지 않지만 at 기호를 사용하는 가장 좋은 시간은 달리 할 수없는 경고를 피하는 것입니다.

+0

멋진 팁, 나는 당신이 변수를 위해 그것을 사용할 수 있다는 것을 몰랐다 ... 단지 함수 호출을위한 것이라고 생각했다. –

0

이 코드에서 오류 메시지가 표시되지 않습니다.

$media은 ($media = $db->get_row(..)) 제공 한 코드의 6 행에 지정되어 있습니다. 나는 당신이 관련 코드 (줄/줄 48)를 제거했거나 틀린 파일이라고 생각하고있다. (이것은 /Applications/MAMP/htdocs/Chapman/Chapman_cms/admin/team-2.php에서?).

관련 문제