سؤال

هذا هو آخر شيء سأفعله، بعد أن أتمكن من إنجاز هذا العمل، يمكنني الوصول إلى التصميم الذي قد يكون أسهل كثيرًا.شكرا لجميع التعليمات الخاصة بك.أريد إدراج سجل من mysql باستخدام php عن طريق كتابة استعلام في مربع النص.ثم سيقوم البرنامج بإدراج كافة السجلات التي تحتوي على هذا العنصر، على سبيل المثال العنوان.هنا هو الكود الخاص بي:

      <?php
         $con = mysql_connect("localhost","root","");
         if (!$con)
         {
            die('Could not connect: ' . mysql_error());
         }

         mysql_select_db("koro", $con);

         \\what will I put in the WHERE ADDRESS="?
         $result = mysql_query("SELECT * FROM students WHERE ADDRESS=");

         echo "<table border='1'>
               <tr><th>Firstname</th>
               <th>Lastname</th></tr>";

         while($row = mysql_fetch_array($result))
         {
            echo "<tr>";
            echo "<td>" . $row['IDNUMBER'] . "</td>";
            echo "<td>" . $row['LNAME'] . "</td>";
            echo "<td>" . $row['FNAME'] . "</td>";
            echo "<td>" . $row['MNAME'] . "</td>";
            echo "<td>" . $row['GRADEYR'] . "</td>";
            echo "<td>" . $row['ADDRESS'] . "</td>";
            echo "</tr>";
         }
         echo "</table>";

         mysql_close($con);
      ?>

ملف listform.html:

         <html>
         <head>
         <form action="list.php" method="post">
         address:<input type="text" name="grup" value="" /><br/>
         <input type="submit" name="List" value="" /><br/>
         </form>
         </head>
         </html>

\ما الذي سأضعه في WHERE ADDRESS="?شكرًا

هل كانت مفيدة؟

المحلول

ستجد القيمة في $_POST[] مجموعة مصفوفة.

$result = mysql_query("SELECT * FROM students WHERE ADDRESS = '{$_POST["grup"]}'");

قد يكون هذا الأسلوب خطيرًا - ستحتاج أيضًا إلى تطهير بيانات $_POST[] الخاصة بك مقابلها هجمات حقن SQL - والتي يوجد منها الكثير من الدروس المتاحة.

نصائح أخرى

سيحتوي $_POST['group'] على القيمة الموجودة في الحقل عند نشره.

ثم افعل شيئًا مثل:

$result = mysql_query(sprintf("SELECT * FROM students WHERE ADDRESS='%s'", mysql_real_escape_string($_POST['grup'], $con)));

إذا لم تتمكن من الهروب من قيمة POST باستخدام sprintf وmysql_real_escape_string، فمن الممكن أن تكون مستهدفًا بهجمات حقن SQL.

http://en.wikipedia.org/wiki/SQL_injection

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top