ホームページ > バックエンド開発 > PHPチュートリアル > PHP ページングの問題システム プロンプト未定義の変数未定義の変数: php_self

PHP ページングの問題システム プロンプト未定義の変数未定義の変数: php_self

WBOY
リリース: 2016-06-23 14:10:52
オリジナル
1249 人が閲覧しました

このページは通常通り一覧表示できるページです。「次のページ」をクリックするとページ数は変わりますが、ページ内容は最初のページに表示されたままになります。システムは、72 行目と 79 行目で「未定義の変数 未定義の変数: php_self」というプロンプトを表示します。これをどのように変更すればよいでしょうか?

<?php/*error_reporting(E_ALL ^ E_NOTICE);*///######################课题列表##########################  include "config.php";  include "header.php";?> <meta http-equiv="Content-Type" content="text/html; charset=GB2312"><link href="style.css" rel="stylesheet" type="text/css"><title>课题列表</title><style type="text/css"><!--.STYLE1 {font-size: 14px}--></style><table width="740" border="0" cellspacing="1" cellpadding="0" bgcolor="#333333" align="center">  <tr>   <td width="60"  height="30"  bgcolor="#FFFFFF"> <div align="center" class="text">  <p class="STYLE1">课题编号</p></div> </td>  <td width="300" height="30"  bgcolor="#FFFFFF"> <div align="center" class="title STYLE1">课题名称</div>    </td>  <td width="85"  height="30"  bgcolor="#FFFFFF"> <div align="center" class="STYLE1">指导教师</div></td>  <td width="60"  height="30"  bgcolor="#FFFFFF"> <div align="center" class="STYLE1">职称</div>    </td>  <td width="60"  height="30"  bgcolor="#FFFFFF"> <div align="center" class="title STYLE1">可选人数</div>    </td>  <td width="80"  height="30"  bgcolor="#FFFFFF" class="title"><div align="center" class="STYLE1">选题情况</div>    </td>	  <td width="60"  height="30"  bgcolor="#FFFFFF" class="title"><div align="center" class="STYLE1">状态</div>    </td>  <td width="60"  height="30"  bgcolor="#FFFFFF" class="title"><div align="center" class="STYLE1">详细资料</div>    </td>  </tr><?php  $n=0;   $query=mysql_query("select count(*) as sm from jiaoshi");  mysql_query("set names 'GB2312'");  $row=mysql_fetch_array($query);  $count=$row['sm'];    if(empty($offset))              {$offset=0;}	echo  $offset;   $query=mysql_query("select * from jiaoshi order by id asc limit $offset,$list_num") or die ("fail");   mysql_query("set names 'GB2312'");   while($row=mysql_fetch_array($query)){        if(($n%2)!='0'){ 	  echo "<tr bgcolor=#ffffff>";}	  else{	  echo "<tr bgcolor=#E4E4E4>";	  }	if($row['surplus']==0)	     $ss="不可选";	else $ss="可选";      echo"	<td   height='22' class='STYLE1'> <div align='center'>".$row['id']."</div></td>	<td   height='22' class='STYLE1'> <div align='center'>".$row['subject']."</div></td>    <td   height='22' class='STYLE1'> <div align='center'>".$row['teacher']."</div></td>    <td   height='22' class='STYLE1'> <div align='center'>".$row['zhicheng']."</div></td>    <td   height='22' class='STYLE1'> <div align='center'>".$row['number']."</div></td>	<td   height='22' class='STYLE1'> <div align='center'>".$row['xuehao']."</div></td>	<td   height='22' class='STYLE1'> <div align='center'>".$ss."</div></td>	<td   height='22' class='STYLE1'> <div align='center'> <a href=xiangxiziliao.php?id=".$row['id'].">查看</a></div></td>  </tr> ";   $n++;   }   ?></table>    <?php   extract($_REQUEST);    $pages=ceil($count/$list_num);echo "<table width=760 border=0 cellspacing=0 cellpadding=0 align=center class='text'>          <tbody>           <tr>      <td width='159'><font color='#ff0000'>目前共有".$count."条记录</font> </td>    <td width='205'>".$pages."页</td>";	  if($offset){		$preoffset=$offset-$list_num;	print "<td width='132'><a href=\"$php_self?offset=$preoffset\">上一页</a></td>";}	else {	  echo "<td width='132'>上一页</td>";	}	 $newoffset=$offset+$list_num;	  if(($pages!=0)&&(($newoffset/$list_num)!=$pages))	{	 print("<td width='158'><a  href=\"$php_self?offset=$newoffset\">下一页</a></td>");	}	 else{ echo "<td width='158'>下一页</td>";}	$pageno=($offset/$list_num)+1;	echo "<td width='112' class=text>第<input class=text type='text' size='4'value=".$pageno." readonly>      页</td>    <td width='4'> </td></tr></table>";   ?>      <p>   </p><?php include "foot.php";?>
ログイン後にコピー


ディスカッションへの返信(解決策)

$_SERVER[PHP_SELF]
書かなくても大丈夫です

$_SERVER[PHP_SELF]
$php_self は削除しても大丈夫ですか?その2行は?削除後、次のページをクリックするとすぐに「ページが見つかりません」と出ました…

昨日待ち終えて今日も待ちます。

少なくとも修正コードを投稿する必要があります。

少なくとも修正コードを投稿する必要があります。 主な問題は、変更方法がわからないことです~~

変更方法がわからないのに、どうすれば「ページが見つかりません」になるのでしょうか

変更できないので、 「ページが見つかりません」はどうやって出ますか
まあ、私はあなたに負けました。 71行目と79行目の$php_self?を削除して実行しました。

<?php/*error_reporting(E_ALL ^ E_NOTICE);*///######################课题列表##########################  include "config.php";  include "header.php";?> <meta http-equiv="Content-Type" content="text/html; charset=GB2312"> <link href="style.css" rel="stylesheet" type="text/css"><title>课题列表</title><style type="text/css"><!--.STYLE1 {font-size: 14px}--></style><table width="740" border="0" cellspacing="1" cellpadding="0" bgcolor="#333333" align="center">  <tr>   <td width="60"  height="30"  bgcolor="#FFFFFF"> <div align="center" class="text">  <p class="STYLE1">课题编号</p></div> </td>  <td width="300" height="30"  bgcolor="#FFFFFF"> <div align="center" class="title STYLE1">课题名称</div>    </td>  <td width="85"  height="30"  bgcolor="#FFFFFF"> <div align="center" class="STYLE1">指导教师</div></td>  <td width="60"  height="30"  bgcolor="#FFFFFF"> <div align="center" class="STYLE1">职称</div>    </td>  <td width="60"  height="30"  bgcolor="#FFFFFF"> <div align="center" class="title STYLE1">可选人数</div>    </td>  <td width="80"  height="30"  bgcolor="#FFFFFF" class="title"><div align="center" class="STYLE1">选题情况</div>    </td>      <td width="60"  height="30"  bgcolor="#FFFFFF" class="title"><div align="center" class="STYLE1">状态</div>    </td>  <td width="60"  height="30"  bgcolor="#FFFFFF" class="title"><div align="center" class="STYLE1">详细资料</div>    </td>  </tr><?php  $n=0;   $query=mysql_query("select count(*) as sm from jiaoshi");  mysql_query("set names 'GB2312'");  $row=mysql_fetch_array($query);  $count=$row['sm'];    if(empty($offset))              {$offset=0;}    echo  $offset;   $query=mysql_query("select * from jiaoshi order by id asc limit $offset,$list_num") or die ("fail");   mysql_query("set names 'GB2312'");   while($row=mysql_fetch_array($query)){        if(($n%2)!='0'){       echo "<tr bgcolor=#ffffff>";}      else{      echo "<tr bgcolor=#E4E4E4>";      }    if($row['surplus']==0)         $ss="不可选";    else $ss="可选";      echo"    <td   height='22' class='STYLE1'> <div align='center'>".$row['id']."</div></td>    <td   height='22' class='STYLE1'> <div align='center'>".$row['subject']."</div></td>    <td   height='22' class='STYLE1'> <div align='center'>".$row['teacher']."</div></td>    <td   height='22' class='STYLE1'> <div align='center'>".$row['zhicheng']."</div></td>    <td   height='22' class='STYLE1'> <div align='center'>".$row['number']."</div></td>    <td   height='22' class='STYLE1'> <div align='center'>".$row['xuehao']."</div></td>    <td   height='22' class='STYLE1'> <div align='center'>".$ss."</div></td>    <td   height='22' class='STYLE1'> <div align='center'> <a href=xiangxiziliao.php?id=".$row['id'].">查看</a></div></td>  </tr> ";   $n++;   }   ?></table>     <?php   extract($_REQUEST);    $pages=ceil($count/$list_num);echo "<table width=760 border=0 cellspacing=0 cellpadding=0 align=center class='text'>          <tbody>           <tr>      <td width='159'><font color='#ff0000'>目前共有".$count."条记录</font> </td>    <td width='205'>".$pages."页</td>";       if($offset){        $preoffset=$offset-$list_num;    print "<td width='132'><a href=\"offset=$preoffset\">上一页</a></td>";}    else {      echo "<td width='132'>上一页</td>";    }     $newoffset=$offset+$list_num;      if(($pages!=0)&&(($newoffset/$list_num)!=$pages))    {     print("<td width='158'><a  href=\"offset=$newoffset\">下一页</a></td>");    }     else{ echo "<td width='158'>下一页</td>";}    $pageno=($offset/$list_num)+1;    echo "<td width='112' class=text>第<input class=text type='text' size='4'value=".$pageno." readonly>      页</td>    <td width='4'> </td></tr></table>";   ?>      <p>   </p><?php include "foot.php";?>
ログイン後にコピー

変更方法がわからないので、「ページが見つかりません」はどこから来たのですか?

<?phperror_reporting(E_ALL ^ E_NOTICE);//######################课题列表##########################  include "conn.php";  include "header.php";?> <meta http-equiv="Content-Type" content="text/html; charset=GB2312"><link href="style.css" rel="stylesheet" type="text/css"><title>课题列表</title><style type="text/css"><!--.STYLE1 {font-size: 14px}--></style><table width="740" border="0" cellspacing="1" cellpadding="0" bgcolor="#333333" align="center">  <tr>   <td width="60"  height="30"  bgcolor="#FFFFFF"> <div align="center" class="text">  <p class="STYLE1">课题编号</p></div> </td>  <td width="300" height="30"  bgcolor="#FFFFFF"> <div align="center" class="title STYLE1">课题名称</div>    </td>  <td width="85"  height="30"  bgcolor="#FFFFFF"> <div align="center" class="STYLE1">指导教师</div></td>  <td width="60"  height="30"  bgcolor="#FFFFFF"> <div align="center" class="STYLE1">职称</div>    </td>  <td width="60"  height="30"  bgcolor="#FFFFFF"> <div align="center" class="title STYLE1">可选人数</div>    </td>  <td width="80"  height="30"  bgcolor="#FFFFFF" class="title"><div align="center" class="STYLE1">选题情况</div>    </td>	  <td width="60"  height="30"  bgcolor="#FFFFFF" class="title"><div align="center" class="STYLE1">状态</div>    </td>  <td width="60"  height="30"  bgcolor="#FFFFFF" class="title"><div align="center" class="STYLE1">详细资料</div>    </td>  </tr><?php  $n=0;   $query=mysql_query("select count(*) as sm from jiaoshi");  mysql_query("set names 'GB2312'");  $row=mysql_fetch_array($query);  $count=$row['sm'];    if(empty($offset))              {$offset=0;}	echo  $offset;   $query=mysql_query("select * from jiaoshi order by id asc limit $offset,$list_num") or die ("fail");   mysql_query("set names 'GB2312'");   while($row=mysql_fetch_array($query)){        if(($n%2)!='0'){ 	  echo "<tr bgcolor=#ffffff>";}	  else{	  echo "<tr bgcolor=#E4E4E4>";	  }	if($row['surplus']==0)	     $ss="不可选";	else $ss="可选";      echo"	<td   height='22' class='STYLE1'> <div align='center'>".$row['id']."</div></td>	<td   height='22' class='STYLE1'> <div align='center'>".$row['subject']."</div></td>    <td   height='22' class='STYLE1'> <div align='center'>".$row['teacher']."</div></td>    <td   height='22' class='STYLE1'> <div align='center'>".$row['zhicheng']."</div></td>    <td   height='22' class='STYLE1'> <div align='center'>".$row['number']."</div></td>	<td   height='22' class='STYLE1'> <div align='center'>".$row['xuehao']."</div></td>	<td   height='22' class='STYLE1'> <div align='center'>".$ss."</div></td>	<td   height='22' class='STYLE1'> <div align='center'> <a href=xiangxiziliao.php?id=".$row['id'].">查看</a></div></td>  </tr> ";   $n++;   }   ?></table>    <?php    extract($_REQUEST);    $pages=ceil($count/$list_num);       echo "<table width=760 border=0 cellspacing=0 cellpadding=0 align=center class='text'>          <tbody>           <tr>      <td width='159'><font color='#ff0000'>目前共有".$count."条记录</font> </td>    <td width='205'>共".$pages."页</td>";	  if($offset){		$preoffset=$offset-$list_num;	print "<td width='132'><a href=\"offset=$preoffset\">上一页</a></td>";}	else {	  echo "<td width='132'>上一页</td>";	}	 $newoffset=$offset+$list_num;	  if(($pages!=0)&&(($newoffset/$list_num)!=$pages))	{	 print("<td width='158'><a  href=\"offset=$newoffset\">下一页</a></td>");	}	 else{ echo "<td width='158'>下一页</td>";}	$pageno=($offset/$list_num)+1;	echo "<td width='112' class=text>第<input class=text type='text' size='4'value=".$pageno." readonly>      页</td>    <td width='4'> </td></tr></table>";    ?>        <p>   </p><?php include "foot.php";?>
ログイン後にコピー
を貼り直しました

せめて改造コード載せるべきだよ! ちなみに、$list_num は事前に定義されていることを説明する必要があります。

あなたは本当に有能です
print("次のページ ");
$php_self は省略できる
と言っていますが、
print "前のページ"; }
も必要ありません

次に、「Previous page<」を印刷するように変更します。 ;/td>";} と print("次のページ ? を追加すると、エラーは報告されなくなりますが、次のページはまだ最初のページの内容です ~~~~

回避するために error_reporting(E_ALL ^ E_NOTICE); を使用するように誰が教えたのかわかりません。矛盾
こいつは無責任だ!
$offset はどこに割り当てられていますか?
$offset = $_GET['offset']; がないので、どうすればターゲットオフセットを渡すことができますか?
渡すことができないので、ページめくりを実現するにはどうすればよいですか?

競合を避けるために error_reporting(E_ALL ^ E_NOTICE) を使うように誰が教えたのかわかりません

これは無責任です。
$offset はどこに割り当てられていますか?
$offset = $_GET['offset']; がないので、どうすればターゲットオフセットを渡すことができますか?
渡すことができないので、ページめくりを実現するにはどうすればよいですか? 司会者は落ち着きます、司会者はすべてを知っています。確かに値を割り当てていないのですが、どこに値を割り当てればよいのでしょうか?その文を追加すると、システムは 63 行目に未定義のインデックス: offset

 <?php    extract($_REQUEST);	$offset = $_GET['offset'];    $pages=ceil($count/$list_num);       echo "<table width=760 border=0 cellspacing=0 cellpadding=0 align=center class='text'>          <tbody>           <tr>      <td width='159'><font color='#ff0000'>目前共有".$count."条记录</font> </td>    <td width='205'>共".$pages."页</td>"; 	  if($offset){		$preoffset=$offset-$list_num;	print "<td width='132'><a href=\"?offset=$preoffset\">上一页</a></td>";}	else {	  echo "<td width='132'>上一页</td>";	}	 $newoffset=$offset+$list_num;	  if(($pages!=0)&&(($newoffset/$list_num)!=$pages))	{	 print("<td width='158'><a  href=\"?offset=$newoffset\">下一页</a></td>");	}	 else{ echo "<td width='158'>下一页</td>";}	$pageno=($offset/$list_num)+1;	echo "<td width='112' class=text>第<input class=text type='text' size='4'value=".$pageno." readonly>      页</td>    <td width='4'> </td></tr></table>";    ?>  
ログイン後にコピー
が含まれていることを通知しました


矛盾を避けるために error_reporting(E_ALL ^ E_NOTICE); を使うように誰が教えたのかわかりません

これは無責任です。

$offset はどこに割り当てられていますか?
$offset = $_GET['offset']; がないので、どうすればターゲットオフセットを渡すことができますか?
渡すことができないので、ページめくりを実現するにはどうすればよいですか? 63 行目は 3 行目です

extract($_REQUEST); があるため、$offset = $_GET['offset']; は必要ありません。投稿フォーム送信の場合は言うまでもなく、$_GET はありません。 ['offset']

php4 の一般的な作業環境で書かれたプロジェクトを php5 でデバッグしている場合、必ずいくつかの問題が発生します。

しかし、実際には、コードを変更する能力はありません。これは、未定義変数の問題を解決できないことからもわかります

以前の投稿で、私は明確に言いました: プログラムの先頭に追加して、extract( に移動するだけ) $_REQUEST);
この目的は、マジック変数なしで php4 プロジェクトを使用することです
このラウンドの $php_self 問題に関しては、明らかにあなた自身が作成したものです
すでに存在する場合、それは $PHP_SELF です。 $php_self (注: PHP 変数名は大文字と小文字が区別されます)

すでに extract($_REQUEST); があるため、 $offset = $_GET['offset']; は必要ありません。投稿フォームの送信の場合は、 $_GET['offset'] はありません

あなたは php4 の一般的な作業環境で書かれたプロジェクトを php5 でデバッグすると、必ずいくつかの問題が発生します。
しかし、実際には、コードを変更する能力はありません。これは、未定義変数の問題を解決できないことからもわかります

以前の投稿で、私は明確に言いました: プログラムの先頭に追加して、extract( に移動するだけ) $_REQUEST);
これの目的は、マジック変数なしで php4 プロジェクトを使用することです
このラウンドの $php_self 問題に関しては、明らかにあなた自身が作成したものです
すでに存在する場合は、$ ではなく $PHP_SELF です。 php_self (注: PHP 変数名は大文字と小文字が区別されます) モデレーター、本当に尊敬します。あなたはコードの読み方を知っているだけでなく、人の読み方も知っています。わざわざ長い文章を書いて私に教えてくれました。私、私、とても感動しました! ! !

extract($_REQUEST); があるので、$offset = $_GET['offset']; は必要ありません。投稿フォーム送信の場合は言うまでもなく、$_GET['offset'] はありません。

あなた php4 の一般的な作業環境で書かれたプロジェクトを php5 でデバッグしている場合、間違いなくいくつかの問題が発生します。
しかし、実際には、コードを変更する能力はありません。これは、未定義変数の問題を解決できないことからもわかります

以前の投稿で、私は明確に言いました: プログラムの先頭に追加して、extract( に移動するだけ) $_REQUEST);
この目的は、マジック変数なしで php4 プロジェクトを使用することです
このラウンドの $php_self 問題に関しては、明らかにあなた自身が作成したものです
すでに存在する場合は、$ ではなく $PHP_SELF です。 php_self (注: PHP 変数名は大文字と小文字が区別されます) モデレーター、私のレベルと学年の問題により、私は精神薄弱の問題を抱えています。私の周りのクラスメートは誰も PHP を知りません。私はあなたに何度も迷惑をかけるかもしれません。

extract($_REQUEST); があるので、$offset = $_GET['offset']; は必要ありません。投稿フォーム送信の場合は言うまでもなく、$_GET['offset'] はありません。

あなた php4 の一般的な作業環境で書かれたプロジェクトを php5 でデバッグしている場合、間違いなくいくつかの問題が発生します。

しかし、実際には、コードを変更する能力はありません。これは、未定義変数の問題を解決できないことからもわかります


以前の投稿で、私は明確に言いました: プログラムの先頭に追加して、extract( に移動するだけ) $_REQUEST);
この目的は、マジック変数なしで php4 プロジェクトを使用することです

このラウンドの $php_self 問題に関しては、明らかにあなた自身が作成したものです
元々存在していたものであれば、それは $PHP_SELF です。 $php_self (注: PHP 変数名は大文字と小文字が区別されます) 兄さん、ごめんなさい、確かに大文字を小文字に変更しましたが、今は元に戻しました。しかし、システムは依然として未定義の変数の入力を求めるプロンプトを表示し、私自身も恥ずかしいと感じています

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート