Queste linee di codice:
File register.php
In questo file gli utenti si registrano, un email viene inviata al loro indirizzo email, se avviene con successo appare un alert personalizzato, altrimenti errore.
Nell'email c'è un link per attivare l'account.
Qui entra in gioco il file member.php
In questo file si esegue un controllo, che però ha bisogno delle variabili nel form di register.php
Quindi ho messo include("register.php");
Ma il problema di include è che includendo il file register.php, include anche il suo html, quindi nella pagina member.php?do=confirm invece che mostrarsi il modulo di attivazione:
..Appare invece questo, ovvero il modulo in register.php
Sto provando la sintassi con global:
ma nulla, le variabili non vengono richiamate...
A questo punto chiedo il vostro aiuto, sono disperato.
Voglio che quando siamo in member.php?do=confirm l'html del modulo di conferma viene mostrato e non quello del modulo di registrazione.
Quello di registrazione solo nel file di register.php
Grazie in anticipo!
File register.php
PHP:
<html>
<head>
<title>Registration Module</title>
<link href="css/access.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="login" action="register.php?do=verify" method="post">
<fieldset id="inputs">
<input id="username" name="username" type="text" placeholder="Username" autofocus required>
<input id="password" name="password" type="password" placeholder="Password" autofocus required>
<input id="email" name="email" type="email" placeholder="Email" autofocus required>
</fieldset>
<fieldset id="actions">
<input type="submit" id="submit" name="action" value="Submit New Registration">
<a href="login.php" id="back">Have already an account?</a>
<a href="index.php" id="back">Return Back</a>
</fieldset>
</form>
</body>
</html>
<?php
include("functions_custom.php");
include("config.php");
$username = trim(stripslashes($_POST['username'])); // trim
$password = trim(stripslashes($_POST['password'])); // trim
$email = trim(stripslashes($_POST['email'])); // trim
$action = trim(stripslashes($_POST['action'])); // trim
if(isset($username) && isset($password) && isset($email)) {
if(isset($action) && ($action=="Submit New Registration")) {
if(isset($_GET['do']) && ($_GET['do'] == 'verify')) {
$con = mysql_connect($host, $db_user, $db_psw);
mysql_select_db($db_name, $con);
$querying = mysql_query("SELECT username FROM users WHERE username=".$username."");
if ($querying != false)
{
echo "<link href=\"css/custom_alert.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />
<script src=\"//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js\"></script>
<script src=\"js/custom_alert.js\"></script>
<script type=text/javascript>_alert('Error!','Username already exists! Choose another')</script>";
}
$sqling = mysql_query("SELECT email FROM users WHERE email=".$email."");
if ($sqling != false)
{
echo "<link href=\"css/custom_alert.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />
<script src=\"//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js\"></script>
<script src=\"js/custom_alert.js\"></script>
<script type=text/javascript>_alert('Error!','Email already exists! Choose another')</script>";
}
$cod = generateRandomImpossibleTosolveString(100);
$code = sha1((md5($cod)));
// Mail
$to = $email;
$subject = "Confirm your Registration!";
$body = "
Hy ".$username." this is an email for confirming your registration
at ".$website.".
Please, for done it, go to this link ( http://".$website."/member.php?do=confirm )
You will must insert following credentials:
Username = ".$username."
Activation Code = ".$code."
";
$headers = "From: Confirm Reg<confirmmod@".$website.".it>";
if(@mail($to, $subject, $body, $headers)) {
echo "<link href=\"css/custom_alert.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />
<script src=\"//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js\"></script>
<script src=\"js/custom_alert.js\"></script>
<script type=text/javascript>_alert('Success!','An Email was sended to your mail address, check and follow instructions in it','index.php')</script>";
}
else {
echo "<link href=\"css/custom_alert.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />
<script src=\"//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js\"></script>
<script src=\"js/custom_alert.js\"></script>
<script type=text/javascript>_alert('Error!','Impossible sending email to your address, please try again')</script>";
}
}
}
}
?>
In questo file gli utenti si registrano, un email viene inviata al loro indirizzo email, se avviene con successo appare un alert personalizzato, altrimenti errore.
Nell'email c'è un link per attivare l'account.
Qui entra in gioco il file member.php
PHP:
include("functions_custom.php");
include("config.php");
include("register.php");
$con = mysql_connect($host, $db_user, $db_psw);
mysql_select_db($db_name, $con);
$do = $_GET['do'];
if(isset($do) && ($do == "confirm")) {
echo "<html>
<head>
<title>Confirm Module</title>
<link href=\"css/access.css\" rel=\"stylesheet\" type=\"text/css\" />
</head>
<body>
<form id=\"login\" action=\"member.php?do=confirmact\" method=\"post\">
<fieldset id=\"inputs\">
<input id=\"username\" name=\"useract\" type=\"text\" placeholder=\"Username\" autofocus required>
<input id=\"password\" name=\"codeact\" type=\"password\" placeholder=\"Activation Code\" autofocus required>
</fieldset>
<fieldset id=\"actions\">
<input type=\"submit\" id=\"submit\" name=\"action\" value=\"Activate!\">
<a href=\"login.php\" id=\"back\">Have already an account?</a>
</fieldset>
</form>
</body>
</html>";
$get = $_GET['do'];
$useract = $_POST['useract'];
$codeact = $_POST['codeact'];
$action2 = $_POST['action'];
global $username, $email, $code, $password;
if(isset($useract) && ($useract == $username) && isset($codeact) && ($codeact == $code)) {
if(isset($action2) && ($action2 == 'Activate!')) {
if(isset($get) && ($get == 'confirmact')) {
$now = TIME_NOW;
$salt= generateRandomImpossibleTosolveString(100);
$saltedpsw= sha1(md5($salt.sha1($password)));
$query = mysql_query("INSERT INTO users (username, password, email, activationcode, lastvisit, lastactive, memregdate) VALUES ($username, $password, $email, $code, $now, $now, $now)");
while($done = mysql_fetch_array($query)) {
$user = array(
"username" => $username,
"password" => $saltedpsw,
"email" => $email,
"activationcode" => $code,
"lastvisit" => $now,
"lastactive" => $now,
"memregdate" => $now
);
echo "<link href=\"css/custom_alert.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />
<script src=\"//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js\"></script>
<script src=\"js/custom_alert.js\"></script>
<script type=text/javascript>_alert('Success!','Congratulations! You have confirm successfully your reg request, now you can connect to forum!', 'index.php')</script>";
}
}
}
}
}
?>
In questo file si esegue un controllo, che però ha bisogno delle variabili nel form di register.php
Quindi ho messo include("register.php");
Ma il problema di include è che includendo il file register.php, include anche il suo html, quindi nella pagina member.php?do=confirm invece che mostrarsi il modulo di attivazione:
Codice:
echo "<html>
<head>
<title>Confirm Module</title>
<link href=\"css/access.css\" rel=\"stylesheet\" type=\"text/css\" />
</head>
<body>
<form id=\"login\" action=\"member.php?do=confirmact\" method=\"post\">
<fieldset id=\"inputs\">
<input id=\"username\" name=\"useract\" type=\"text\" placeholder=\"Username\" autofocus required>
<input id=\"password\" name=\"codeact\" type=\"password\" placeholder=\"Activation Code\" autofocus required>
</fieldset>
<fieldset id=\"actions\">
<input type=\"submit\" id=\"submit\" name=\"action\" value=\"Activate!\">
<a href=\"login.php\" id=\"back\">Have already an account?</a>
</fieldset>
</form>
</body>
</html>";
..Appare invece questo, ovvero il modulo in register.php
Codice:
<html>
<head>
<title>Registration Module</title>
<link href="css/access.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="login" action="register.php?do=verify" method="post">
<fieldset id="inputs">
<input id="username" name="username" type="text" placeholder="Username" autofocus required>
<input id="password" name="password" type="password" placeholder="Password" autofocus required>
<input id="email" name="email" type="email" placeholder="Email" autofocus required>
</fieldset>
<fieldset id="actions">
<input type="submit" id="submit" name="action" value="Submit New Registration">
<a href="login.php" id="back">Have already an account?</a>
<a href="index.php" id="back">Return Back</a>
</fieldset>
</form>
</body>
</html>
Sto provando la sintassi con global:
PHP:
global $username, $password, $code, $email;
A questo punto chiedo il vostro aiuto, sono disperato.
Voglio che quando siamo in member.php?do=confirm l'html del modulo di conferma viene mostrato e non quello del modulo di registrazione.
Quello di registrazione solo nel file di register.php
Grazie in anticipo!