Ho avuto una giornata pesante e forse sono poco lucido!
Ho necessità di creare un sito semplice semplice e una formula di "iscrizione" minima e formale: lo script in questione va benissimo (
VEDI ) solo che non capisco quanto detto prima (senza retorica).
Voglio rendere obbligatorio l'inserimento della mail
codice:
<?php
session_start(); // Maintain session state
header("Cache-control: private"); // Fixes IE6's back button problem.
// Dont allow members to go to add user page
if(@$_SESSION['user']) header("location: login.php");
elseif(@$_POST['user']){
// Get and set vars (without html characters)
$user = htmlspecialchars(strtolower($_POST["user"]));
$pass = htmlspecialchars($_POST["pass"]);
$permission = 0; // Default: user, until admin changes
$email = htmlspecialchars($_POST["email"]);
$url = htmlspecialchars($_POST["url"]);
// Add dots to date
if($_POST["day"]) $dob = $_POST["day"]. ".". $_POST["month"]. ".". $_POST["year"];
else $dob = false;
$location = htmlspecialchars($_POST["location"]);
$joined = $_POST["joined"];
// Create the string to append
$string = "\r\n". $user. "<del>". md5($pass). "<del>". $permission. "<del>". $email. "<del>". $url. "<del>". $dob. "<del>". $location. "<del>". $joined;
// Make sure username doesn't already exist
//-----------------------------------------
// Include the flat-file
$file = file("users.php") or die("Problem getting the user details flat-file [users.php]");
// Get the size of file
$totalLines = sizeof($file);
// Get the users details line by line
$line = 0;
$match = 0;
do{
// Check the line isn't a comment
if("//" != substr($file[$line], 0, 2)){
// Break our records up
@list($username, $password, $permission, $email, $url, $dob, $location, $joined) = explode("<del>", $file[$line]);
// Check the username and passwords match
if((strtolower($user) == strtolower($username))) $match = 1;
else $match = 0;
}
// Exit loop if match found
if($match) break;
// Increment line count
$line++;
} while($line < $totalLines);
// Only add new user if a match is not found
if($match){
?>
<script language = "javascript" type = "text/javascript">
<!-- // Go back
alert("Username already taken, taking you back to choose another");
history.go(-1);
-->
</script>
<?php
}
else{
// Open the users file
$fp = fopen("users.php", "a+");
// Append the new user to end of users file
fwrite($fp, $string);
// Close the file
fclose($fp);
// Redirect to index
header("location: index.php?new=1");
}
}
else{
?>
<html>
<head>
<link rel = "stylesheet" type = "text/css" href = "style.css">
<title>members area: mike holloway</title>
</head>
<body onload = "document.getElementById('user').focus();">
<form method = "post" action = "<?php print($_SERVER['PHP_SELF']); ?>">
<table border = "0" cellspacing = "0" cellpadding = "10" width = "50%" align = "center" style = "height: 100%;">
<tr>
<td colspan = "3" valign = "bottom">
<span class = "bold">join our member list!</span>
<span class = "hilight">hilighted text are required fields</span>
</td>
</tr>
<tr>
<td colspan = "3" height = "5%">
<a href = "index.php">back</a>
</td>
</tr>
<tr>
<td width = "30%" height = "10" valign = "bottom">
<span class = "hilight">username:</span>
</td>
<td width = "70%" height = "10" valign = "bottom">
<input type = "text" id = "user" name = "user" style = "width: 80%" class = "text" tabindex = "1">
</td>
<td rowspan = "7" width = "16" height = "16" align = "right" valign = "bottom">
<input type = "hidden" name = "joined" value = "<?php print(date("d.m.Y H:i:s", mktime())); ?>">
<input type = "Image" src = "next.gif" width = "16" height = "16" name = "submit" alt = "arrow pointing right: next" border = "0" align = "top" onfocus = "return checkFields();" tabindex = "10"></a>
</td>
</tr>
<tr>
<td width = "30%" height = "10" valign = "bottom">
<span class = "hilight">password:</span>
</td>
<td width = "70%" height = "10" valign = "bottom">
<input type = "password" id = "pass" name = "pass" style = "width: 80%" class = "text" tabindex = "2">
</td>
</tr>
<tr>
<td width = "30%" height = "10" valign = "bottom">
<span class = "hilight"> confirm password:</span>
</td>
<td width = "70%" height = "10" valign = "bottom">
<input type = "password" id = "pass2" name = "pass2" style = "width: 80%" class = "text" tabindex = "3">
</td>
</tr>
<tr>
<td width = "30%" height = "10" valign = "bottom">
email:
</td>
<td width = "70%" height = "10" valign = "bottom">
<input type = "text" id = "email" name = "email" style = "width: 80%" class = "text" tabindex = "4">
</td>
</tr>
<tr>
<td width = "30%" height = "10" valign = "bottom">
http://
</td>
<td width = "70%" height = "10" valign = "bottom">
<input type = "text" id = "url" name = "url" style = "width: 80%" class = "text" tabindex = "5">
</td>
</tr>
<tr>
<td width = "30%" height = "10" valign = "bottom">
date of birth:
</td>
<td width = "70%" height = "10" valign = "bottom">
<span class = "bold">d: </span><input type = "text" id = "day" name = "day" size = "2" class = "text" maxlength = "2" tabindex = "6"> <span class = "bold">m: </span><input type = "text" id = "month" name = "month" size = "2" class = "text" maxlength = "2" tabindex = "7"> <span class = "bold">y: </span><input type = "text" id = "year" name = "year" size = "4" class = "text" maxlength = "4" tabindex = "8">
</td>
</tr>
<tr>
<td width = "30%" height = "10" valign = "bottom">
location:
</td>
<td width = "70%" height = "10" valign = "bottom">
<input type = "text" id = "location" name = "location" style = "width: 80%" class = "text" tabindex = "9">
</td>
</tr>
<tr>
<td colspan = "3" valign = "top">
</td>
</tr>
</table>
</form>
<script language = "javascript" type = "text/javascript">
<!--// Check field values are correct before submitting
function checkFields(){
var flag = 1; // Return flag
// Check for empty values in important fields first
if(!document.getElementById("user").value || !document.getElementById("pass").value || !document.getElementById("pass2").value){
alert("Please enter values in the following:\n\nUSERNAME\nPASSWORD\nCONFIRM PASSWORD");
document.getElementById("user").focus();
return true;
}
// Check that passwords are the same
else if(document.getElementById("pass").value != document.getElementById("pass2").value){
alert("Please enter two matching passwords");
document.getElementById("pass").value = '';
document.getElementById("pass2").value = '';
document.getElementById("pass").focus();
return true;
}
// Check the day / month / year fields if there's a value in one of them
else if(document.getElementById("day").value || document.getElementById("month").value || document.getElementById("year").value){
// Check day first
if((isNaN(document.getElementById("day").value)) || (document.getElementById("day").value > 31) || (document.getElementById("day").value < 1)){
alert("Please enter a valid day in the DOB field");
document.getElementById("day").value = '';
document.getElementById("day").focus();
return true;
}
// Check month next
else if((isNaN(document.getElementById("month").value)) || (document.getElementById("month").value > 12) || (document.getElementById("month").value < 1)){
alert("Please enter a valid month in the DOB field");
document.getElementById("month").value = '';
document.getElementById("month").focus();
return true;
}
// Finally the year
else if((isNaN(document.getElementById("year").value)) || (document.getElementById("year").value >= <?php print date("Y", mktime()); ?>) || (document.getElementById("year").value < 1)){
alert("Please enter a valid year in the DOB field");
document.getElementById("year").value = '';
document.getElementById("year").focus();
return true;
}
else flag = 0;
}
else flag = 0;
// One final check if the others went through fine
if(!flag){
if(document.getElementById("email").value){
// Finally, check the email
if(document.getElementById("email").value.indexOf("@") == -1 || document.getElementById("email").value.indexOf(".") == -1){
alert("If entering an email addy, please make sure it is valid");
document.getElementById("email").focus();
return true;
}
else return false;
}
else return false;
}
}
-->
</script>
</body>
</html>
<?php
}
?>