görüntülendiğinde sadece ilk ben mümkün olduğunca küçük aşağıdaki kodu kesmeye çalıştı söylemek bana izin seçeneğini "Seç" Lütfen gösteren açılır menüsünden nasıl engellenir:hata mesajı
<?php
// required variables (make them explciit no need for foreach loop)
$getyear = (isset($_POST['year'])) ? $_POST['year'] : '';
$getpass = (isset($_POST['studentpass'])) ? $_POST['studentpass'] : '';
$getretypepass = (isset($_POST['retypepass'])) ? $_POST['retypepass'] : '';
$errormsg = (isset($errormsg)) ? $errormsg : '';
$validSubmission = isset($_POST['registerbtn']) && $_POST['year'] && $_POST['studentpass'] && $_POST['retypepass'];
$min_year = 1;
$max_year = 10;
$years = range($min_year, $max_year); // returns array with numeric values of 1900 - 2012
$yearHTML = '';
$yearHTML .= '<select name="year" id="yearDrop">' . PHP_EOL;
$yearHTML .= '<option value="">Please Select</option>' . PHP_EOL;
foreach ($years as $year) {
if (!$validSubmission && isset($_POST['year']) && $year == $_POST['year']) {
$yearHTML .= "<option value='" . $year . "' selected='selected'>$year</option>" . PHP_EOL;
} else {
$yearHTML .= "<option value='" . $year . "'>$year</option>" . PHP_EOL;
}
}
$yearHTML .= '</select>';
if ((isset($_POST['registerbtn']))) {
if (in_array($_POST['year'], $years) === true) {
$getyear = (int) $_POST['year'];
}
$getpass = $_POST['studentpass'];
$getretypepass = $_POST['retypepass'];
if ($getyear) {
if ($getpass) {
if (strlen($getpass) <= 5) {
$errormsg = "The Password must be a minimum of 6 characters or more";
} else {
if ($getretypepass) {
if ($getpass === $getretypepass) {
//perform 2 queries, one query contains $aliasnumrows and other contains $numrows
if ($aliasnumrows == 0) {
if ($numrows == 0) {
//perform query which contains $numrows
if ($numrows == 1) {
$errormsg = "<span style='color: green'>Student has been Registered</span>";
$getyear = "";
} else {
$errormsg = "An error has occured, Student has not been Registered";
}
}
else {
$errormsg = "There is already a Student with that Username";
}
}
else {
$errormsg = "There is already a Student with that Alias";
}
}
else {
$errormsg = "Your Passwords did not match";
}
}
else {
$errormsg = "You must retype your Password to Register";
}
}
} else {
$errormsg = "You must enter in a Password to Register";
}
}
else{
$errormsg = "You must enter in Student's current Academic Year to Register";
}
}
$form = "
<form action='" . htmlentities($_SERVER["PHP_SELF"]) . "' method='post'>
<table>
<tr>
<td></td>
<td id='errormsg'>$errormsg</td>
</tr>
<tr>
<td>Year:</td>
<td>{$yearHTML}</td>
</tr>
<tr>
<td>Password:</td>
<td><input type='password' name='studentpass' value='' /></td>
</tr>
<tr>
<td>Retype Password:</td>
<td><input type='password' name='retypepass' value='' /></td>
</tr>
<tr>
<tr>
<td></td>
<td><input type='submit' value='Register' name='registerbtn' /></td>
</tr>
</table>
</form>";
echo $form;
Tamam bu sorun yaşıyorum. Şifre yazmak ve şifre yazmak için yıllarca bir açılır menü ve iki metin girişi var. Şimdi, kullanıcı açılır menüden bir yıl seçerse ve formu gönderirse, bir şifre girilmesi gerektiğini belirten hata mesajını görüntüler ve yıl açılan menü hala kullanıcının açılan menüden seçtiği seçeneği görüntüler.
Yapmakta olduğum sorun, aşağıdaki iletilerden herhangi biri görüntülendiğinde, açılır menü seçeneğinin "Lütfen Seç" i görmeye devam etmesidir. Sorum şu ki, aşağıdaki hata mesajları görüntülendiğinde açılan menüden "Lütfen Seç" seçeneğine geri dönmeyi nasıl durdurabilirim?
$errormsg = "There is already a Student with that Username";
$errormsg = "There is already a Student with that Alias";
$errormsg = "Your Passwords did not match";
$errormsg = "You must retype your Password to Register";
Ben değişmeye ihtiyacı inanıyoruz kod satırı
burada:$validSubmission = isset($_POST['registerbtn']) && $_POST['year'] && $_POST['studentpass'] && $_POST['retypepass'];
Kodunuz (sadece bunlardan birini gösterecektir ve tekrar formu göndermek zorunda kalacak çünkü birisi birden fazla hata olduğunda sakıncalı saymıyorum) takip etmek son derece zordur mantık bir LOT içerir. Formları doğruladığımda, tüm hatalarımı bir diziye ekledikten sonra bunları tekrar kullanıcıya göstermek için bunlara döngü yapıyorum. – Mike
@Mike Evet, yapabileceğim tek bir gelişme. Dürüst olmak gerekirse ben arka uç yapıyorum, bu yüzden ya da ön uçu yapan kişiye kadar bunu belirlemek bana kalmış mı? – user1881090