Ich benutze eine externe PHP-Datei im "action" -Feld meines HTML-Formulars, so dass die in der php-Datei genannten Aktionen beim Klicken auf den Submit-Button ausgeführt werden.PHP isset ('submit') gibt immer FALSE zurück
Dafür habe ich die isset()
Funktion in der PHP-Datei verwendet.
Allerdings stelle ich fest, dass die isset
Funktion immer FALSE
zurückgibt, was zur Ausführung der else-Anweisung führt (wie im Konsolenprotokoll zu sehen).
Wenn ich die isset()
Funktion (und damit die if-else
Anweisungen) entfernen, dann funktioniert der Code wunderbar.
Können Sie bitte das Problem in meinem Code überprüfen?
Auch habe ich in anderen Beiträgen gesehen, dass ich mit isset()
zusammen ein anderes Argument verwenden müssen, beispielsweise
if(isset($_POST['submit']) && !empty($_POST["xyz"]))
ist dies überhaupt erforderlich?
S.S .: Ich bin immer noch in der Anfangsphase der Seitenentwicklung und daher bitte ich Sie, die Sicherheitsbedenken meines Codes zu ignorieren, was ich anerkenne, dass er existiert. :)
Meine Sub-Codes:
Meine HTML Form:
<form id="info-form" method="POST" action="form-submit.php">
<label for="Name">What is your Name? </label>
<input required type="text" name="name" placeholder="Enter your full name here." />
<label for="Email">What is your email ID? </label>
<input required type="email" name="email" placeholder="[email protected]" />
<label for="mobile">What is your 10-Digit Mobile Number? </label>
<input required type="text" name="mobile" maxlength="10" />
<button name="submit-form" type="submit" class="btn btn-lg btn-success"><i class="fa fa-paper-plane" aria-hidden="true"></i>
Submit
</button>
<button type="reset" class="btn btn-lg btn-warning"><i class="fa fa-undo" aria-hidden="true"></i>
Reset
</button>
</form>
Meine Form-submit.php Datei:
<?php
if(isset($_POST['submit-form']))
{
require("database-connect.php");
$name = $_POST['name'];
$email = $_POST['email'];
$mobile = $_POST['mobile'];
$sql = "INSERT INTO tbl_details ".
"(name,email_id,mobile_number) ".
"VALUES ".
"('$name','$email','$mobile')";
mysql_select_db('db_info');
$return = mysql_query($sql, $connect);
if(! $return)
{
die('Could not enter data: ' . mysql_error());
}
echo "Entered data successfully\n";
mysql_close($connect);
}
else
{
echo "Not Set\n";
}
?>
'submit'! =' Submit-form' (der Name Ihres Submit-Buttons). Sie möchten also 'isset ($ _ POST ['submit'-form'])' 'in Ihrer Anweisung verwenden. – Qirel
Siehe http://stackoverflow.com/q/4559925/476 – deceze
Auch eine Randbemerkung zu Sicherheits- und Programmierstandards: 'mysql_ *' Funktionen sind seit PHP 5.5 veraltet (und ** in PHP 7 vollständig entfernt)) und Sie sollten [aufhören, sie zu verwenden] (http://stackoverflow.com/q/12859942), wenn Sie können. Sie sollten eine andere API wählen, mit der Sie vorbereitete Anweisungen verwenden können (was Sie * wirklich bei Benutzereingaben tun sollten), wie zB 'mysqli_ *' oder PDO - siehe [Auswahl einer API] (http://php.net /manual/de/mysqlinfo.api.choosing.php). Grundsätzlich sind Sie offen für SQL-Injection - lesen Sie unter [Wie kann ich verhindern, SQL-Injektion in PHP?] (Http://stackoverflow.com/q/60174/) – Qirel