Includere file php in altro file php, evitando l'html del primo...

  • Creatore Discussione Creatore Discussione PHPMan
  • Data di inizio Data di inizio

PHPMan

Nuovo Utente
2 Feb 2015
17
2
0
Queste linee di codice:

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;
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!
 

Discussioni simili