La verdad es que estoy aprendiendo PHP y no se ya que hacer. Si lo ejecutas, solo falla los campos de Firstname, Lastname, Yourgender. Los campos de password y el texto que hay debajo de Membership Form si funcionan. Sale resaltados de color si no rellenan.
Y si rellenas todos los campos si se envía el formulario.
Osea el fallo esta en: Firstname, Lastname, Yourgender. Debe ser que el codigo esta mal construido. Algo que no se, seguro. Os dejo el script a ver si me podeis ayudar:
Código:
Agradecería cualquíer ayuda. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>Membership Form</title> <link rel="stylesheet" type="text/css" href="common.css"> <style type="text/css"> .error { background: #90EE90; color: white; padding: 0.2em;} </style> </head> <body> <?php if ( isset ( $_POST["submitbutton"] ) ) { processform (); } else { displayform ( array() ); } function validatefield ( $fieldname, $missingfields ) { if ( in_array( $fieldname, $missingfields ) ) { echo ' class id="error" '; } } function setvalue ( $fieldname ) { if ( isset ( $_POST[$fieldname] ) ) { echo $_POST[$fieldname]; } } function setchecked ( $fieldname, $fieldvalue ) { if ( isset ( $_POST[$fieldname]) and $_POST[$fieldname] == $fieldvalue) { echo ' checked="checked" ' ; } } function setselected ( $fieldname, $fieldvalue ) { if ( isset ( $_POST[$fieldname] ) and $_POST[$fieldname] == $fieldvalue ) { echo ' selected="selected" ' ; } } function processform () { $requiredfields = array ("firstname", "lastname", "password1", "password2", "gender" ); $missingfields = array (); foreach ( $requiredfields as $requiredfield ) { if ( !isset ( $_POST[$requiredfield]) or !$_POST[$requiredfield] ) { $missingfields[] = $requiredfield; } } if ($missingfields) { displayform ($missingfields); } else { displaythanks (); } } function displayform ($missingfields) { ?> <h1>Membersship Form</h1> <?php if ( $missingfields ) { ?> <p class="error">There were some problems with the form you submitted. Please complete the fields highlighted below and click Send Details to resend the form.</p> <?php } else { ?> <p>Thanks for choosing to join The Widget Club. To register, please fill in your details below and click Send Details. Fields marked with an asterisk (*) are requiered. </p> <?php } ?> <form action="registration.php" method="post"> <div style="width: 30em;"> // yo creo que el eror esta apartir de firstname <label for="firstname" <?php validatefield ( "firstname", $missingfields ) ?> > First name * </label> <input type="text" name="firstname" id="firstname" value="<?php setvalue("firstname") ?>" /> <label for="lastname"<?php validatefield ("lastname", $missingfields ) ?>> Last name * </label> <input type="text" name="lastname" id="lastname" value="<?php setvalue ("lastname") ?> "/> <label for="password1"<?php if ($missingfields) echo ' class="error" ' ?>> Choose a password *</label> <input type="password" name="password1" id="password1" value="" /> <label for="password2"<?php if ($missingfields) echo ' class="error" ' ?>> Retype password *</label> <input type="password" name="password2" id="password2" value="" /> <label <?php validatefield ("gender", $missingfields ) ?> > Your gender: * </label> <label for="gendermale">Male</label> <input type="radio" name="gender" id="gendermale" value="M"<?php setchecked ("gender" , "M" ) ?> /> <label for="genderfemale">Female</label> <input type="radio" name="gender" id="gendermale" value="F"<?php setchecked ("gender" , "F") ?> /> <label for="favoritewidget">What's your favorite widget? * </label> <select name="favoritewidget" id="favoritewidget" size="1"> <option value="superwidget"<?php setselected ("favoritewidget", "superwidget") ?>> The Superwidget</option> <option value="megawidget" <?php setselected ("favoritewidget", "megawidget" ) ?>> The Megawidget</option> <option value="wonderwidget"<?php setselected ("favoritewidget", "wonderwidget") ?>> The Wonderwidget</option> </select> <label for="newsletter">Do you want to receive our newsletter? </label> <input type="checkbox" name="newsletter" id="newsletter" value="yes" <?php setchecked ("newsletter", "yes" ) ?> /> <label for="comments">Any comments?</label> <textarea name="comments" id="comments" rows="4" cols="250"><?php setvalue ("comments") ?></textarea> <div style="clear:both;"> <input type="submit" name="submitbutton" id="submitbutton" value="Send Details" /> <input type="reset" name="resetbutton" id="resetbutton" value="Reset Form" style="margin-right: 20px;" /> </div> </div> </form> <?php } function displayThanks() { ?> <h1>Thank You</h1> <p>Thank you, your applicaton has been received.</p> <?php } ?> </body> </html>