私は持っているフォームの検証に問題があります。検証プロセスを除いて他のすべてが機能するようです。提出されたフィールドがなくてもサブミットをクリックすると、それが有効で、リンクされたページに移動します。これは私のPHPのページに私のフォームです:PHPは空のフィールドを持つフォームを検証します
<form method="post" action="submitpage.php">
<h3>General Information</h3>
<p>
<label for="albumID">Album ID</label>
<input type="text" name="albumID" id="albumID" value="<?php echo $albumID; ?>">
</p>
<p>
</br>
<label for="artistname">Artist Name</label>
<input type="text" name="artistname" id="artistname" value="<?php echo $artistname; ?>">
</p>
<p>
<label for="albumname">Album Name:</label>
<input type="text" name="albumname" id="albumname" value="<?php echo $albumname; ?>">
</p>
<p>
<label for="price">Price $ </label>
<input type="text" name="price" id="price" value="<?php echo $price; ?>">
</p>
<h3> Media Type</h3>
<p>
<input type="radio" name="mediatype" id="mpeg" value="mpeg"
<?php
// test the value of the form input to see if the radio button should be checked
if ($type == "mpeg") {echo "checked";}
?>
>
<label for="mpeg">MPEG audio file</label>
</br>
<input type="radio" name="mediatype" id="protectedacc" value="protectedacc" <?php
if ($type == "protectedacc") {echo "checked";}
?>>
<label for="protectedacc">Protected AAC audio file</label>
<br>
<input type="radio" name="mediatype" id="protectedmpeg" value="protectedmpeg" <?php
if ($type == "protectedmpeg") {echo "checked";}
?>>
<label for="protectedmpeg">Protected MPEG-4 video file</label>
</br>
<input type="radio" name="mediatype" id="purchasedaac" value="purchasedaac" <?php
if ($type == "purchasedaac") {echo "checked";}
?>>
<label for="purchasedaac">Purchased AAC audio file</label>
<br>
<input type="radio" name="mediatype" id="aac" value="acc" <?php
if ($type == "acc") {echo "checked";}
?>>
<label for="acc">AAC audio file</label>
<br>
</p>
<p>
<h3>Playlists</h3>
<input type="checkbox" name="playlists[]" id="rainydayjams" value="rainydayjams"
<?php
// loop through the array to see if the checkbox value is found and the checkbox should be checked
foreach ($playlists as $playlist) {
if ($playlist == "rainydayjams") {echo "checked";}
}
?>
>
<label for="rainydayjams">Rainy Day Jams</label>
</br>
<input type="checkbox" name="playlists[]" id="workout" value="workout"
<?php
// loop through the array to see if the checkbox value is found and the checkbox should be checked
foreach ($playlists as $playlist) {
if ($playlist == "workout") {echo "checked";}
}
?>
>
<label for="workout">Workout</label>
</br>
<input type="checkbox" name="playlists[]" id="feelgoodvibes" value="feelgoodvibes"
<?php
foreach ($playlists as $playlist) {
if ($playlist == "feelgoodvibes") {echo "checked";}
}
?>
>
<label for="feelgoodvibes">Feel Good Vibes</label>
</br>
<input type="checkbox" name="playlists[]" id="rocking" value="rocking"
<?php
foreach ($playlists as $playlist) {
if ($playlist == "rocking") {echo "checked";}
}
?>
>
<label for="rocking">Rocking Out</label>
</br>
<input type="checkbox" name="playlists[]" id="clubdance" value="clubdance"
<?php
foreach ($playlists as $playlist) {
if ($playlist == "clubdance") {echo "checked";}
}
?>
>
<label for="clubdance">Club Dance Music</label>
</p>
<h3>Genre</h3>
<p><label for="genre">Genre: </label>
<select name="genre" id="genre">
<option value="">Please select a genre</option>
<option value="rock"
<?php
// check to see if the county is selected
if ($genre=="rock") { echo "selected";}
?>
>Rock</option>
<option value="jazz"
<?php
if ($genre=="jazz") { echo "selected";}
?>
>Jazz</option>
<option value="metal"
<?php
if ($genre=="metal") { echo "selected";}
?>
>Metal</option>
<option value="altpunk"
<?php
if ($genre=="altpunk") { echo "selected";}
?>
>Alternative and Punk</option>
<option value="newjazz"
<?php
if ($genre=="newjazz") { echo "selected";}
?>
>New Jazz</option>
<option value="blues"
<?php
if ($genre=="blues") { echo "selected";}
?>
>Blues</option>
<option value="latin"
<?php
if ($genre=="latin") { echo "selected";}
?>
>Latin</option>
<option value="reggae"
<?php
if ($genre=="reggae") { echo "selected";}
?>
>Reggae</option>
<option value="pop"
<?php
if ($genre=="pop") { echo "selected";}
?>
>POP</option>
<option value="soundtrack"
<?php
if ($genre=="soundtrack") { echo "selected";}
?>
>Soundtrack</option>
</select>
</p>
<p>
<label for="track">Track Number</label>
<input type="text" name="track" id="track" value="<?php echo $track; ?>">
</p>
<p>
<input type="submit" name="submit" value="Submit">
</p>
</form>
次は、すべてのフィールドが入力されていることを確認し、フィールドでない場合、それは情報を表示するには、別のページに送信空にする必要があり、私の検証スクリプトです。
<?php
require_once 'functions.php';
writeHead("Form Test");
if (isset($_POST['submit'])) {
// set the validation flag
$valid = true;
$albumID = htmlspecialchars(trim($_POST['albumID']));
if (empty($albumID)) {
echo "<p class='error'>Please enter Album ID</p>";
$valid = false;
}
$artistname = htmlspecialchars(trim($_POST['artistname']));
if (empty($artistname)) {
echo "<p class='error'>Please enter your last name</p>";
$valid = false;
}
$albumID = ucfirst(strtolower($albumID));
$artistname = ucfirst(strtolower($artistname));
$albumID = htmlspecialchars(trim($_POST['albumname']));
if (empty($albumname)) {
echo "<p class='error'>Please enter an Album Name</p>";
$valid = false;
}
$price = htmlspecialchars(trim($_POST['price']));
if (empty($price)) {
echo "<p class='error'>Please enter a price</p>";
$valid = false;
}
$track = htmlspecialchars(trim($_POST['track']));
if (!is_numeric($track)) {
echo "<p class='error'>Track code must be numeric</p>";
$valid = false;
}
if (!preg_match('/\d{5}(-\d{4})?/',$track)) {
echo "<p class='error'>Invalid track.</p>";
}
if (isset($_POST['mediatype'])) {
$type = $_POST['mediatype'];
} else {
echo "<p class='error'>Please select a media type</p>";
$valid = false;
$type="";
}
if (isset($_POST['playlists'])) {
$playlists = $_POST['playlists'];
} else {
echo "<p class='error'>Please select at least one playlist</p>";
$valid = false;
$playlists[0]="";
}
$genre = $_POST['genre'];
if ($genre=="") {
echo "<p class='error'>Please select a genre</p>";
$valid = false;
}
$valid = false;
}
}
if ($valid=true) {
header("Location:submitpage.php?albumID=$albumID&artistname=$artistname");
exit();
}
} else {
$albumID="";
$artistname="";
$albumname="";
$price="";
$type ="";
$playlists[0]="";
$genre="";
$track="";
}
?>
私はそれを送信すると、それは私が情報とその部分が動作している表示することができます別のPHPページに私を送信する必要があります。しかし、フィールドが空のままである場合にも機能します。私の検証は機能していません。どのように私はこれを解決することができます任意のアイデアください。
は、あなたが問題に直面し、その部分にすべてのコードを減らして真の$有効==に確認し、誰が私はやってみました –