ホームページ > バックエンド開発 > PHPチュートリアル > コースから退会するコードに関しては、変数が定義されていないことを示すメッセージが表示されます。

コースから退会するコードに関しては、変数が定義されていないことを示すメッセージが表示されます。

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

コースの取り消しを送信すると、15 行目、35 行目、38 行目に未定義の変数「xuehao」があり、エラーが表示されます。どのように変更すればよいですか?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>退选课题</title></head><body><?php //######################退选课题界面3########################## include "config.php"; include "header.php";?><?php extract($_POST);        $query="select * from $student_table where xuehao='".$xuehao."'";		mysql_query("set names 'GB2312'");		$result=mysql_query($query);		$row=mysql_fetch_array($result);		$id=$row['id'];		$query1="select number as sn,surplus as ssn from $jiaoshi_table where id='$id'";		mysql_query("set names 'GB2312'");		$result1=mysql_query($query1);		$row1=mysql_fetch_array($result1);		if($row1['sn']==1)		{		    $query2=mysql_query("update $jiaoshi_table set xuehao='未选' where id='$id'");			$query3=mysql_query("update $jiaoshi_table set surplus=surplus+1 where id='$id'");		}		else		{		     if(($row1['sn']-$row1['ssn'])==1)			     $query7=mysql_query("update $jiaoshi_table set xuehao='未选' where id='$id'");			 else		     	$query6=mysql_query("update $jiaoshi_table set xuehao=replace(xuehao,concat('".$xuehao."','\n'),'') where id='$id'");			 $query8=mysql_query("update $jiaoshi_table set surplus=surplus+1 where id='$id'");			    $query5="update $student_table set id=0 where xuehao='".$xuehao."'";		mysql_query("set names 'GB2312'");		$result5=mysql_query($query5);		if($result5==true)		{		   echo"<p align=\"center\"><font color=\"#FF0000\"><b><big>退选课题成功!</big></b></font>";		   echo "<meta http-equiv=\"refresh\" content=\"2;url=back_keti.php\">";		   exit;	     }		 else		 {           echo"<p align=\"center\"><font color=\"#FF0000\"><b><big>退选出错,请返回重新退选</big></b></font></p>";           echo "<meta http-equiv=\"refresh\" content=\"1;url=back_keti.php\">";            exit;         }		 }?><?php include "foot.php";?></body></html>
ログイン後にコピー


ディスカッション (解決策) に返信します

前のページのフォームを見てください。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>退选课题</title><style type="text/css"><!--.STYLE1 {font-size: 14px}--></style></head><body><?php //######################退选课题界面2##########################  include "config.php";  include "admin_header.php"; ?> <?php extract($_POST);  if ($xuehao=="" || $id=="")  {	echo"<p align=\"center\"><font color=\"#FF0000\"><b><big>请把信息填写完整。</big></b></font></p>";	echo "<meta http-equiv=\"refresh\" content=\"1;url=back_keti.php\">";	exit;	 }       else    $query="select * from $student_table where xuehao='$xuehao'"; mysql_query("set names 'GB2312'"); $result=mysql_query($query); $row=mysql_fetch_array($result); if($row==0) {	echo"<p align=\"center\"><font color=\"#FF0000\"><b><big>你的输入有误,请重新输入。</big></b></font></p>";	echo "<meta http-equiv=\"refresh\" content=\"2;url=back_keti.php\">";    exit; }  $query="select id as sm from $student_table where xuehao='$xuehao'"; mysql_query("set names 'gb2312'"); $result=mysql_query($query); $row=mysql_fetch_array($result); if($row['sm']==0) {	echo"<p align=\"center\"><font color=\"#FF0000\"><b><big>你还没有选择课题!</big></b></font></p>";	echo "<meta http-equiv=\"refresh\" content=\"2;url=back_keti.php\">";    exit; }   $query="select * from $jiaoshi_table where id='$id'"; mysql_query("set names 'gb2312'"); $result=mysql_query($query); $row=mysql_fetch_array($result); if($row==0) {	echo"<p align=\"center\"><font color=\"#FF0000\"><b><big>课题号不存在,请重新输入!</big></b></font></p>";	echo "<meta http-equiv=\"refresh\" content=\"2;url=back_keti.php\">";    exit; } ?><table width="700" border="0" cellspacing="1" cellpadding="0" bgcolor="#333333" align="center">  <tr>   <td width="78" height="30" bgcolor="#FFFFFF">       <div align="center" class="text">         <p class="STYLE1">学生学号</p>      </div>    </td>    <td width=97 height="30" bgcolor="#FFFFFF">       <div align="center" class="STYLE1">学生姓名</div>    </td>    <td width="329" height="30" bgcolor="#FFFFFF">     <div align="center" class="STYLE1"> 课题名称 </div>    </td>    <td width=106 height="30" bgcolor="#FFFFFF">       <div align="center" class="STYLE1">指导教师</div>    </td>    <td width=84 height="30" bgcolor="#FFFFFF">     <div align="center" class="STYLE1">职称</div>    </td>	<td width=84 height="30" bgcolor="#FFFFFF">     <div align="center" class="STYLE1">退选</div>    </td>  </tr>   <?php   $n=0;    $query=mysql_query("select * from $jiaoshi_table,$student_table where $jiaoshi_table.id=$student_table.id and $student_table.xuehao='$xuehao'");   mysql_query("set names 'gb2312'");   while($row=mysql_fetch_array($query)){        if(($n%2)!='0'){ 	  echo "<tr bgcolor=#FFFFff>";}	  else{	  echo "<tr bgcolor=#E4E4E4>";	  }     echo"	 <td   height='22' class='STYLE1'> <div align='center'>".$row['xuehao']."</div></td>	 <td   height='22'> 		<div align='center' class='STYLE1'>".$row['name']."</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'>		<a href=back_keti2.php?xuehao=".$row['xuehao']." >退选</a></div></td>  </tr> ";   $n++;   } ?></table> <p><?php include "foot.php";?>
ログイン後にコピー

終了

兄弟、これは GET の提出ではありませんか?向こうのPOSTで受け付けますか? ? ?問題が発生します

終了 兄弟、これは GET 送信ではありませんか?向こうのPOSTで受け付けますか? ? ?何か間違っているのでしょうか?POSTをGETに変更しましたか?

変更すると、back_keti2.php 内の他の変数は取得されなくなります。

調べてみたところ、back_keti2.php には変数 $xuehao 以外には何もないことがわかりました。
変更してみてください。うまくいくはずです

変更すると、back_keti2.php 内の他の変数が取得されなくなります。
調べてみたところ、back_keti2.php には変数 $xuehao 以外には何もないことがわかりました。
変更してみてください。うまくいくはずです。試してみましたが、間違っているようです。何も表示されません。

どのように変更しましたか? 変更後のコードを送信して確認してください。

まず、back_keti2.php で var_dump $_GET を実行しましょう。 。

PS: 興味深いのですが、コース退会ページでは学生 ID 変数のみが渡されます。back_keti2.php はどのコースを退会するかをどのように判断するのでしょうか? 変更後にコードをどのように送信して確認しますか? 構文がわからないので、POSTをGETに変更しました。正しいステートメントは何であるべきでしょうか?

echo "";

この文は自動ジャンプを意味します。
成功したと思います。しかし、成功は見えません。成功するとすぐに back_keti.php にジャンプするためです

echo ""; この文は自動的にジャンプします。

成功したと思います。しかし、成功は見えません。成功するとすぐに back_keti.php にジャンプするため、アドレスバーには back_keti2.php?xuehao= 入力した学生 ID が表示されます。 ;右?


変更は正しいので、まだエラーが発生していますか?

var_dump($_GET);
?>
これを受け入れインターフェイスのヘッダーに追加して、エラーがあるかどうかを確認してください。結果

それでは、変更は正しいので、今でもエラーは報告されていますか? エラーは報告されていませんが、ページは空白で何も表示されません。再度確認してみると、撤退したコースがまだ残っていた。

変更は正しいので、エラーは報告されませんが、ページは空白で何も表示されません。再度確認してみると、撤退したコースがまだ残っていた。 変更後の結果はこんな感じです

array (size=1)  'xuehao' => string '我输入的学号' (length=9)
ログイン後にコピー


値の取得には問題ないはずです。
問題は 2 ページ目のいくつかの SQL ステートメントにある可能性があります。

if ステートメントが最後まで到達しませんでした。

途中のSQL文は変数が分からず理解できません。

まだ問題があります、誰か解決するのを手伝ってくれませんか~~

2日間待っています、待ち続けてください。


extract($_REQUEST);
$_POST と $_GET の内容は、特別な要件はなく、詳細に分割する必要はありません

オプトアウト

コースではなく、学生番号のみが渡されました

"opt- out"

extract( $_REQUEST);
$_POST と $_GET の内容は $_REQUEST に含まれます。特別な要件はなく、そこまで細かく分割する必要もありません

退会
コースではなく学生番号のみが渡されました

「オプトアウト」をどのように実装したかがわかりませんでした" code。私が撤回するために使用したコードは、これらのいくつかのコードです。update ステートメントは、私の行 15、35、および 38 に問題があるようです。常に「未定義の変数: xuehao」というプロンプトが表示されます。私の書き方に何か問題がありますか?フォーマット?

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