webentwicklung-frage-antwort-db.com.de

Verwenden Sie if (isset ($ _ POST ['submit']))), um kein Echo anzuzeigen, wenn das Skript geöffnet ist

Ich habe ein kleines Problem mit meinem if(isset($_POST['submit']))-Code. Ich möchte, dass einige Echos und eine Tabelle nicht angezeigt werden, wenn das Skript geöffnet ist. Ich möchte jedoch, dass es angezeigt wird, wenn auf die Schaltfläche zum Abschicken des Formulars geklickt wurde. Das Problem ist jedoch, dass wenn ich die if(isset($_POST['submit']))-Funktion einbeziehe, wenn ich auf den Submit-Button klicke, die Echos und die Tabelle überhaupt nicht angezeigt werden. Warum ist das so und können Sie mir bitte mit dieser Ausgabe helfen?.

Unten ist der Code:

    <!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>

<title>Exam Interface</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>

<p><strong>NOTE: </strong>If a search box is left blank, then the form will search for all data under that specific field</p>

<form action="exam_interface.php" method="post" name="sessionform">        <!-- This will post the form to its own page"-->
<p>Session ID: <input type="text" name="sessionid" /></p>      <!-- Enter Session Id here-->
<p>Module Number: <input type="text" name="moduleid" /></p>      <!-- Enter Module Id here-->
<p>Teacher Username: <input type="text" name="teacherid" /></p>      <!-- Enter Teacher here-->
<p>Student Username: <input type="text" name="studentid" /></p>      <!-- Enter User Id here-->
<p>Grade: <input type="text" name="grade" /></p>      <!-- Enter Grade here-->
<p>Order Results By: <select name="order">
<option value="ordersessionid">Session ID</option>
<option value="ordermoduleid">Module Number</option>
<option value="orderteacherid">Teacher Username</option>
<option value="orderstudentid">Student Username</option>
<option value="ordergrade">Grade</option>
</select>
<p><input type="submit" value="Submit" /></p>
</form>

<?php

$username="xxx";
$password="xxx";
$database="mobile_app";

mysql_connect('localhost',$username,$password);

@mysql_select_db($database) or die("Unable to select database");

$sessionid = isset ($_POST['sessionid']) ? $_POST['sessionid'] : "";
$moduleid = isset ($_POST['moduleid']) ? $_POST['moduleid'] : "";
$teacherid = isset ($_POST['teacherid']) ? $_POST['teacherid'] : "";
$studentid = isset ($_POST['studentid']) ? $_POST['studentid'] : "";
$grade = isset ($_POST['grade']) ? $_POST['grade'] : "";
$orderfield = isset ($_POST['order']) ? $_POST['order'] : "";

$sessionid = mysql_real_escape_string($sessionid);
$moduleid = mysql_real_escape_string($moduleid);
$teacherid = mysql_real_escape_string($teacherid);
$studentid = mysql_real_escape_string($studentid);
$grade = mysql_real_escape_string($grade);

switch ($orderfield) {
    case 'ordersessionid': $orderfield = 'gr.SessionId';
    break;
    case 'ordermoduleid': $orderfield = 'm.ModuleId'; 
    break;
    case 'orderteacherid': $orderfield = 's.TeacherId';
    break;
    case 'orderstudentid': $orderfield = 'gr.StudentId'; 
    break;
    case 'ordergrade': $orderfield = 'gr.Grade';
    break;
}

$ordertable = $orderfield;

$result = mysql_query("SELECT * FROM Module m INNER JOIN Session s ON m.ModuleId = s.ModuleId JOIN Grade_Report gr ON s.SessionId = gr.SessionId JOIN Student st ON gr.StudentId = st.StudentId WHERE ('$sessionid' = '' OR gr.SessionId = '$sessionid') AND ('$moduleid' = '' OR m.ModuleId = '$moduleid') AND ('$teacherid' = '' OR s.TeacherId = '$teacherid') AND ('$studentid' = '' OR gr.StudentId = '$studentid') AND ('$grade' = '' OR gr.Grade = '$grade') ORDER BY $ordertable ASC");

$num=mysql_numrows($result);

if(isset($_POST['submit'])){

echo "<p>Your Search: <strong>Session ID:</strong> "; if (empty($sessionid))echo "'All Sessions'"; else echo "'$sessionid'";echo ", <strong>Module ID:</strong> "; if (empty($moduleid))echo "'All Modules'"; else echo "'$moduleid'";echo ", <strong>Teacher Username:</strong> "; if (empty($teacherid))echo "'All Teachers'"; else echo "'$teacherid'";echo ", <strong>Student Username:</strong> "; if (empty($studentid))echo "'All Students'"; else echo "'$studentid'";echo ", <strong>Grade:</strong> "; if (empty($grade))echo "'All Grades'"; else echo "'$grade'"; "</p>";

echo "<p>Number of Records Shown in Result of the Search: <strong>$num</strong></p>";

echo "<table border='1'>
<tr>
<th>Student Id</th>
<th>Forename</th>
<th>Session Id</th>
<th>Grade</th>
<th>Mark</th>
<th>Module</th>
<th>Teacher</th>
</tr>";

while ($row = mysql_fetch_array($result)){

 echo "<tr>";
  echo "<td>" . $row['StudentId'] . "</td>";
  echo "<td>" . $row['Forename'] . "</td>";
  echo "<td>" . $row['SessionId'] . "</td>";
  echo "<td>" . $row['Grade'] . "</td>";
  echo "<td>" . $row['Mark'] . "</td>";
  echo "<td>" . $row['ModuleName'] . "</td>";
  echo "<td>" . $row['TeacherId'] . "</td>";
  echo "</tr>";
}

echo "</table>";

}

mysql_close();


 ?>

</body>
</html>

Jede Hilfe wird sehr geschätzt, danke.

8
BruceyBandit

Sie müssen Ihrem Submit <input> einen Namen geben, sonst ist er nicht mit $_POST['submit'] verfügbar:

<p><input type="submit" value="Submit" name="submit" /></p>
28
Clive

Was überprüfst du? 

if(isset($_POST['submit']))

aber es gibt keinen Variablennamen namens "Submit" . Nun, ich möchte, dass Sie verstehen, warum es nicht funktioniert. Sie können sich vorstellen, dass Sie den Submit-Schalternamen löschen <input type="submit" value="Submit" name="delete" /> und if(isset($_POST['delete'])) überprüfen. Dann funktioniert es Mit diesem Code haben Sie keinen Namen zum Senden gegeben und prüfen, ob er existiert oder nicht mit der Funktion isset();. Daher hat PHP keine Variablen wie "Submit" gefunden. Jetzt funktioniert es nicht. Versuchen Sie Folgendes:

<input type="submit" name="submit" value="Submit" />
8
Mohit Bumb

Sie haben Ihren Absenden-Button nie benannt, sodass es sich bei dem Formular nur um eine Aktion handelt.

Entweder:

  1. Benennen Sie den Submit-Button (<input type="submit" name="submit" ... />)
  2. Testen Sie if (!empty($_POST)) stattdessen, um zu ermitteln, wann Daten gebucht wurden.

Denken Sie daran, dass Schlüssel in der $_POST-Superglobal nur für named input-Elemente angezeigt werden. Wenn das Element nicht über das Namensattribut verfügt, wird es nicht zu $_POST (oder $_GET/$_REQUEST) weitergeleitet.

7
Brad Christie

Die $_post-Funktion benötigt den Namenswert Wie:

<input type="submit" value"Submit" name="example">

Anruf

$var = strip_tags($_POST['example']);
if (isset($var)){
    // your code here
}
1
saied lakhdar

Sie müssen dem Absenden-Button einen Namen geben

<input type="submit" value"Submit" name="login">

Dann können Sie die Schaltfläche mit $_POST['login'] aufrufen.

1

Was ist daran falsch?

<form class="navbar-form navbar-right" method="post" action="login.php">
  <div class="form-group">
    <input type="email" name="email" class="form-control" placeholder="email">
    <input type="password" name="password" class="form-control" placeholder="password">
  </div>
  <input type="submit" name="submit" value="submit" class="btn btn-success">
</form>

login.php

if(isset($_POST['submit']) && !empty($_POST['submit'])) {
  // if (!logged_in()) 
  echo 'asodj';
}
1

Eine andere Option ist zu verwenden

$_SERVER['REQUEST_METHOD'] == 'POST'
0
Tansel Yuzer