在我的情况下......一个变量来自其他页面通过get变量 我必须将其与我选择的现有变量进行比较 但我的技术不起作用 如果有人可以帮助我。 我想比较即将到来的变量与托儿所...但是当我尝试这不可能... 提前谢谢
<?php
include('config.php');
$results =@$_GET['results'];
$id =$_GET['id'];
if ($results=="Nursery")
{
$qqqs = mysql_query("select * from result where u_id='$id' sc='Nursery' ");
$rows=mysql_fetch_assoc($qqqs);
$a=$rows['u_id'];
$b=$rows['name'];
$c=$rows['fname'];
$d=$rows['reg'];
$e=$rows['sc'];
$f=$rows['ss'];
$g=$rows['se'];
$h=$rows['e1'];
$i=$rows['u1'];
$j=$rows['m1'];
$k=$rows['s1'];
$l=$rows['ss1'];
$m=$rows['i1'];
$n=$rows['e2'];
$o=$rows['u2'];
$p=$rows['e3'];
$pp=$rows['u3'];
echo "<html>
<head>
<link href='bootstrap/css/bootstrap.css' rel='stylesheet' >
<link href='bootstrap/css/bootstrap.min.css' rel='stylesheet'>
<link href='bootstrap/css/bootstrap.theme.css' rel='stylesheet' >
<link href='bootstrap/css/bootstrap-theme.min.css' rel='stylesheet' >
</head>
<body>
<table align='center' border='4' bgcolor='white' width='500' class='table table-bordered'>
<tr>
<td bgcolor='orange' colspan='3'><h2 align='center'>Leads Grammer School</h2></td>
</tr>
<tr>
<td bgcolor='yellow' colspan='3'><h2 align='center'>Academic Performance Record Year 2014</h2></td>
</tr>
<tr>
<td align='right'>Student's Name:</td>
<td colspan='2'>$b</td>
</tr>
<tr>
<td align='right'>Father's Name:</td>
<td colspan='2'> $c</td>
</tr>
<tr>
<td align='right'>Registration NO:</td>
<td colspan='2'>$d</td>
</tr>
<tr>
<td align='right'>Student Class:</td>
<td colspan='2'>$e</td>
</tr>
<tr>
<td align='right'>Exams:</td>
<td colspan='2'>$f</td>
</tr>
<tr bgcolor='gray'>
<th>Subject Name</th>
<th>Obtained Marks</th>
<th>Grades</th>
</tr>
<tr>
<tr ><td>English(Writing)</td>
<td> $g</td>
</tr>
<tr>
<tr ><td>Urdu(Writing)</td>
<td>$h</td>
</tr>
<tr>
<tr ><td>Math(Writing)</td>
<td> $i</td>
</tr>
<tr><th align='center' colspan='3' bgcolor='orange'>General Knowledge</th></tr>
<tr>
<tr ><td>Science</td>
<td> $j</td>
</tr>
<tr>
<tr ><td>S.Studies</td>
<td>$k</td>
</tr>
<tr>
<tr ><td>Islamiat</td>
<td>$l</td>
</tr>
<tr><th align='center' colspan='3' bgcolor='orange'>Poems</th></tr>
<tr>
<tr ><td>English </td>
<td> $m</td>
</tr>
<tr>
<tr ><td>Urdu</td>
<td>$n</td>
</tr>
<tr><th align='center' colspan='3' bgcolor='orange'>Book Reading</th></tr>
<tr>
<tr><td>English </td>
<td>$o</td>
</tr>
<tr>
<tr >
<td>Urdu</td>
<td>$p</td>
</tr>";
}
?>
答案 0 :(得分:0)
我想将即将获得的变量与托儿所
进行比较
但是你正在与幼儿园进行比较
if ($results=="Nursery")
您是否知道该比较区分大小写?
此代码也很差。它应该只是
$results=isset($_GET['results']) ? $_GET['results'] : NULL;
在学习新知识时不要使用错误抑制。
答案 1 :(得分:0)
如果不使用框架,则应尝试使用过滤器功能。您将id的值直接放入未转义的查询中。这是一个等待发生的SQL注入。
$results = filter_input(INPUT_GET, "results", FILTER_UNSAFE_RAW);
$id = filter_input(INPUT_GET, "id", FILTER_VALIDATE_INT);
if (
0 === strcasecmp($results, "Nursery")
&& is_int($id)
) {
$qqqs = mysql_query("select * from result where u_id='$id' AND sc='Nursery' ");
//...
}
如果在查询中使用整数,则必须知道它们是整数。如果你使用字符串,你必须正确地逃避它们。或使用准备好的陈述。