Autor Zpráva
MyShare
Profil
Zdravím,
mám menší problém podľa video tutorialov som sa snažil spraviť registráciu, prihlasovanie a aktiváciu účtu.
Všetko som robil podľa videá ale problém nastal keď som to testoval pri registrácii všetko funguje ako má ale akonáhle chcem aktivovať účet vypíše mi to chybu neplatný aktivačný kód a pri prihlasovaní zas Nezadali ste správne heslo. už som skúšal všetky možné kombinácie ale stále ten istí výsledok preto Vás žiadam o pomoc alebo o radu kde by mohol byť problém, nižšie pripájam aj odkazy na videá a aj živú ukážku mojej stránky.Vopred všetkým ďakujem.

Moja Stránka:
Prihlasovanie
Registrácia


Registrácia PHP Script:
Registrácia Part 1
Registrácia Part 2
Registrácia Part 3

Prihlasovanie PHP Script:
Prihlasovanie Part 1
Prihlasovanie Part 2
Prihlasovanie Part 3

Aktivácia účtu PHP Script:
Aktivácia Part 1
Aktivácia Part 2

Tu pripájam aj dokumenty kde som ten tutorial písal:
Register.php
<?php
if ( $_POST['registerbtn'] ) {
      $getuser = $_POST['user'];
      $getpass = $_POST['pass'];
      $getrepass = $_POST['repass'];
      $getquestion = $_POST['question'];
      $getanswer = $_POST['answer'];
      $getfirstname = $_POST['firstname'];
      $getlastname = $_POST['lastname'];
      $getbirth = $_POST['birth'];
      $getgender = $_POST['gender'];
      $getemail = $_POST['email'];
      $getcemail = $_POST['cemail'];
      // Database Structure.
      if ($getuser) {
           if ($getpass) {
              if ($getrepass) {
                   if ($getquestion) {
                      if ($getanswer) {
                           if ($getfirstname) {
                              if ($getlastname) {
                                   if ($getbirth) {
                                      if ($getgender) {
                                           if ($getemail) {
                                              if ($getcemail) {
if ( $getpass === $getrepass ) {
      if ( (strlen($getemail) >= 7) && (strstr($getemail, "@")) && (strstr($getemail, ".")) ) {
       
require("./********/*********.php");

$query = mysql_query("SELECT * FROM members WHERE username='$getuser'");
$numrows = mysql_num_rows($query);
if ($numrows == 0) {
      $query = mysql_query("SELECT * FROM members WHERE email='$getemail'");
      $numrows= mysql_num_rows($query);
      if ($numrows == 0) {

$password = md5(md5("kjfiufj".$password."Fj56fj"));       
$date = date("F d, Y");
$code = md5(rand());

mysql_query("INSERT INTO members VALUES(
   '', '$getuser', '$getemail', '$password', '$getquestion', '$getanswer', '$getfirstname', '$getlastname', '$getbirth', '$getgender', '0', '$code', '$date' 
)"); 

$query = mysql_query("SELECT * FROM members WHERE username='$getuser'"); 
$numrows = mysql_num_rows($query);
if ($numrows == 1) {
    
      $sitelink = "http://www.beshare.sk";
      $webmaster = "BeShare <beshare@beshare.sk>";
      $headers = "From: $webmaster";
      $subject = "Aktivacia Uctu";
      $message = "Heslo: $getpass \n\n";
      $message .= "Kod: $code \n\n";
      $message .= "$sitelink/active.php?user=$getuser&code=$code";
      
      if (mail($getemail, $subject, $message, $headers)) {
           $errormsg = "Registracia dokončená na mail <font color='#000000'><b>$getemail</b></font> Vám bol zaslaný aktivačný link.";
           $getuser = "";
           $getemail = "";
   }
   else
       $errormsg = "Nastala chyba.Aktivacny mail nebol odoslany.";
    
} 
else
    $errormsg = "Nastala chyba.Váš účet nebol vytvorený.";    
       
   }                 
   else
       $errormsg = "Vami zadaná emailová adresa je už v systéme registrovaná.";
}
else
   $errormsg = "Vami zadaná prezívka je už registrovaná, prosím vyberte si inú.";

mysql_close();       
       
   }
   else
       $errormsg = "Prosím zadajte platnú emailovú adresu.";
}
else
    $errormsg = "Vami zadané heslá sa nezhodujú.";
                                           }
                                           else
                                               $errormsg = "Prosím potvrďte Vašu Emailovú Adresu.";
                                        }
                                        else
                                            $errormsg = "Prosím zadajte Vašu Emailovú Adresu.";
                                   }
                                   else
                                       $errormsg = "Prosím vyberte si Vaše Pohlavie.";
                                }
                                else
                                    $errormsg = "Prosím zadajte Dátum Narodenia.";
                           }
                           else
                               $errormsg = "Prosím zadajte Vaše Priezvisko.";
                        }
                        else
                            $errormsg = "Prosím zadajte Vaše Krstné Meno.";
                   }
                   else
                       $errormsg = "Prosím vyplňte Odpoveď na Kontrolnú Otázku.";
                }
                else
                    $errormsg = "Prosím vyberte si Kontrolnú Otaźku.";
           }
           else
               $errormsg = "Prosím potvrďte Heslo.";
        }
        else
            $errormsg = "Prosím zadajte Heslo.";
   }
   else
       $errormsg = "Prosím zadajte Vašu Prezívku.";
}
$form = "<form action='./register.php' method='post'>
<table>
<tr>
   <td></td>
   <td id='errormsgc'>$errormsg</td>
</tr>
<tr>
   <td id='usern'>Užívateľské Meno</td>
   <td id='userinp'><input type='text' name='user' id='username' value='$getuser' style='text-align: center;' /></td>
</tr>
<tr>
   <td id='passn'>Heslo</td>
   <td id='passinp'><input type='password' name='pass' value='' /></td>
</tr>
<tr>
   <td id='repassn'>Potvrďte Heslo</td>
   <td id='repassinp'><input type='password' name='repass' value='' /></td>
</tr>
<tr>
    <td id='questionn'>Kontrolná Otázka</td>
   <select value='$getquestion' id='control' name='question'>
          <option value=''>--- Prosím Vyberte si ---</option>
          <option>Meno Matky za Slobodna</option>
          <option>Meno Vášho Domáceho Mazlíčka</option>
          <option>Vaše Prvé Telefónne číslo</option>
          <option>Obľúbená Animovaná Postava</option>
   </select>
</tr>
<tr>
   <td id='answern'>Odpoveď na Otázku</td>
   <td id='answerinp'><input type='text' name='answer' value='$getanswer' /></td>
</tr>
<!-- Form 2 -->
<tr>
   <td id='firstnamen'>Krstné Meno</td>
   <td id='firstnameinp'><input type='text' name='firstname' value='$getfirstname' /></td>
</tr>
<tr>
   <td id='lastnamen'>Priezvisko</td>
   <td id='lastnameinp'><input type='text' name='lastname' value='$getlastname' /></td>
</tr>
<tr>
   <td id='birthn'>Dátum Narodenia</td>
   <td id='birthinp'><input type='text' name='birth' value='$getbirth' style='text-align: center;' /></td>
</tr>
<tr>
    <td id='gendern'>Pohlavie</td>
   <select value='$getgender' id='genderc' name='gender'>
          <option value=''>--- Prosím Vyberte si ---</option>
          <option>Muž</option>
          <option>Žena</option>
   </select>
</tr>
<tr>
   <td id='emailn'>Alternatívny Email</td>
   <td id='emailinp'><input type='text' name='email' value='$getemail' /></td>
</tr>
<tr>
   <td id='cemailn'>Potvrďte Email</td>
   <td id='cemailinp'><input type='text' name='cemail' value='$getcemail' /></td>
</tr>
<tr>
   <td></td>
   <td><input type='submit' value='Zaregistrovať ma!' name='registerbtn' id='regibtn' /></td>
</tr>
</table>
</form>";
echo $form;
?>



MyShare:
Login.php
<?php
if ($username && $userid) {
      header("Location: ./home.php");
}else{
$form = "<form action='./index.php' method='post'>
<table>
<tr>
   <td id='usern'>Užívateľské Meno</td>
   <td id='userinp'><input type='text' name='user' /></td>
</tr>
<tr>
   <td id='passn'>Heslo</td>
   <td id='passinp'><input type='password' name='password' /></td>
</tr>
<tr>
   <td></td>
   <td><input type='submit' value='Prihlás ma!' name='loginbtn' id='logibtn' /></td>
</tr>
<tr>
   <td></td>
   <td id='checkbox'><input type='checkbox' checked='checked' /></td>
</tr>
</table>
</form>";

if ( $_POST['loginbtn'] ) {
      $user = $_POST['user'];
      $password = $_POST['password'];
      
      if ($user) {
           if ($password) {
            require('./********/connect.php');
            
            $password = md5(md5("kjfiufj".$password."Fj56fj"));
            // make sure login info correct
            $query = mysql_query("SELECT * FROM members WHERE username='$user'");
            $numrows = mysql_num_rows($query);
            if ($numrows == 1) {
                 $row = mysql_fetch_assoc($query);
                 $dbid = $row['id'];
                 $dbuser = $row['username'];
                 $dbpass = $row['password'];
                 $dbactive = $row['active'];
                 
                 if ( $password == $dbpass ) {
                    if ($dbactive == 1) {
                         // set session info
                         $_SESSION['userid'] = $dbid;
                         $_SESSION['username'] = $dbuser;
                         
                         header("Location: ./home.php");
                     
                 }
                 else
                     echo "<div id='echomsg'>Váš účet nebol ešte aktivovaný, prosím aktivujte si ho.</div> $form";
              }
              else
                  echo "<div id='echomsg'>Nezadali ste správne heslo.</div> $form";
         }
         else
             echo "<div id='echomsg'>Zadané užívateľské meno nebolo nájdené.</div> $form";
            
            mysql_close();
            
        }
        else
            echo "<div id='echomsg'>Musíte zadať heslo.</div> $form";
   }
   else
       echo "<div id='echomsg'>Musíte zadať užívateľské meno.</div> $form";
}
else
    echo $form;
}
?>



MyShare:
Active.php
<?php
$getuser = $_GET['user'];
$getcode = $_GET['code'];

if ( $_POST['activebtn'] ) {
      $getuser = $_POST['user'];
      $getcode = $_POST['code'];
      
    if ($getuser) {
           if ($getcode) {
              require("./*********/connect.php");

$query = mysql_query("SELECT * FROM members WHERE username='$getuser'");    
$numrows = mysql_num_rows($query);
if ($numrows == 1){
    $row = mysql_fetch_assoc($query);
    $dbcode = $row['code'];
    $dbactive = $row['active'];
    
    if ($dbactive == 0){
        if ($dbcode === $getcode){
            
mysql_query("UPDATE members SET active='1' WHERE username='$getuser'"); 
$query = mysql_query("SELECT * FROM members WHERE username='$getuser' AND active='1'"); 
$numrows = mysql_num_rows($query);
if ($numrows == 1){
    $errormsg = "Váš účet bol aktivovaný.Teraz sa môžete <a href='index.php'>Prihlásiť</a>.";
    $getuser = "";
    $getcode = "";
}   
else
    $errormsg = "Nastala chyba.Váš účet nebol aktivovaný.";       
            
        }
        else
            $errormsg = "Neplatný aktivačný kód.";
    }
    else
        $errormsg = "Tento účet je už aktivovaný <a href='index.php'>Pokračovať</a>.";
} 
else
    $errormsg = "Zadané užívateľské meno neexistuje.";

        }        
        else
            $errormsg = "Zadajte prosím aktivačný kód.";
   }
   else
       $errormsg = "Zadajte prosím Vaše užívateľské meno.";
}
else
    $errormsg = "";

echo "<form action='./active.php' method='post'>
<table>
<tr>
   <td></td>
   <td id='errormsgc'>$errormsg</td>
</tr>
<tr>
    <td id='usern'>Užívateľské meno</td>
    <td id='userinp'><input type='text' name='user' value='$getuser' /></td>
</tr>
<tr>
   <td id='activecoden'>Aktivačný Kód</td>
   <td id='activeinp'><input type='text' name='code' value='$getcode' /></td>
</tr>
<tr>
   <td></td>
   <td><input type='submit' value='Aktivovať účet!' name='activebtn' id='actibtn' /></td>
</tr>
</table>
</form>";

?>
LaMMa
Profil
Daj si vypisat aktivacny kod z db a porovnaj s tym z postu, rovnako aj heslo. Osetri si POSTnute hodnoty a pri generovani hesla nerob z hashu(md5) dalsi hash. Lepsie by bolo ale pouzit aspon hash(sha256,...) a namiesto tych natvrdo zadanych retazcov pri generovani hesla, vziat nahodne vygenerovanu sol.
Input typu select nema atribut value, ale pri jednotlivych options mozes nastavit ci je selected.
mimochodec_
Profil *
Nevím, kdo je ten člověk z youtube, ale takovým tutoriálům bych doporučil zdaleka se vyhnout. Ten kód je odporně napsaný, např. konstrukce na ř. 31-36 nebo získání všech polí jednoho řádku v databázi na základě username (nikoliv ID) (pomííjm to, že se vůbec z databáze čte něco, co je v tu chvíli k dispozici v proměnných). Možná tam máš nějakou banální chybu a tomu člověku to funguje, o slušném programování ale neví nic.

Doporučuju smazat a najít si vránu něbo nějaký jiný linuxsoft nebo se porozhlídnout tady. A snaž se chápat, co tam najdeš, ne jen kopírovat.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: