Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Formularz rejestracyjny, Weryfikacja użytkownika i maila
artdem
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 6.05.2011

Ostrzeżenie: (0%)
-----


Witam,

Nie jestem pewien, czy zadaję to pytanie w odpowiednim dziale - chodzi o rejestrację użytkowników w serwisie. Mam napisany skrypt wraz z walidacją użytkownika (żeby nie powtarzały się maile i loginy) i niby wszystko jest ok, ale nie działa. Tzn. mogę się wielokrotnie rejestrować na ten sam mail i ten sam login. Poniżej przesyłam skrypt i jeśli jest ktoś w stanie pomóc, to będę bardzo wdzięczny. smile.gif

Kod
<?  session_start();
include "connect.php";
$result = mysql_query("SELECT * FROM sitesettings");
while($row = mysql_fetch_array($result))
$title = "".$row["domain"]." - Zarejestruj się";
include "header.php";
$usrv = 'Wprowadź nazwę użytkownika';
$usrt = 'Nazwa użytkownika zajęta';
$usri = 'Niedozwolone znaki';
$passv = 'Wprowadź hasło';
$passn = 'Wprowadzone hasła się nie zgadzają';
$emailv = 'Wprowadź prawidłowy adres e-mail';
$emailt = 'Podany adres został już użyty';
$name = strtolower($_POST['username-reg']);  
$namecheck = mysql_query("SELECT * FROM `username` WHERE username = '".mysql_real_escape_string('$name')."'") or die (mysql_error());
$r = mysql_numrows($namecheck);
$ename = strtolower($_POST['email-reg']);
$namecheck = mysql_query("SELECT * FROM `username` WHERE email = '".mysql_real_escape_string('$ename')."'") or die (mysql_error());
$e = mysql_numrows($namecheck);
?>
<?
function filename_safe($filename) {
$temp = $filename;
$temp = strtolower($temp);
$temp = str_replace(" ", "_", $temp);
$temp = str_replace("'", "", $temp);
$temp = str_replace("+", "_", $temp);


// Loop through string
$result = '';
for ($i=0; $i<strlen($temp); $i++) {
if (preg_match('([0-9]|[a-z]|_)', $temp[$i])) {
$result = $result . $temp[$i];
}
}

// Return filename
return $result;
}
?>
<?
                        ob_start();
                        $pattern = "/^([a-zA-Z0-9_])+$/";
                        $usrn = $_POST['username-reg'];
                        if(isset($_POST['register'])){
                            if(empty($_POST['username-reg']) || $r > 0 || $e > 0 || empty($_POST['password-reg']) || $_POST['passwordv-reg'] != $_POST['password-reg'] || $_POST['email-reg'] == "" || !preg_match($pattern,$usrn)){
                            }else{
                            $usname = strtolower($_POST['username-reg']);
                            $uspass = $_POST['password-reg'];
                            $uspassv = $_POST['passwordv-reg'];
                            $emai = strtolower($_POST['email-reg']);
                            $sr = "1";
                            $_SESSION['username-reg'] = $usname;
                            $_SESSION['password-reg'] = $uspass;
                            $_SESSION['passwordv-reg'] = $uspassv;
                            $_SESSION['email-reg'] = $emai;
                            $_SESSION['status'] = $sr;
                            header( 'Location: verify.php' );
                            }
                        };
                        ob_flush();
?>

   <div class="art-Post">
                            <div class="art-Post-tl"></div>
                            <div class="art-Post-tr"></div>
                            <div class="art-Post-bl"></div>
                            <div class="art-Post-br"></div>
                            <div class="art-Post-tc"></div>
                            <div class="art-Post-bc"></div>
                            <div class="art-Post-cl"></div>
                            <div class="art-Post-cr"></div>
                            <div class="art-Post-cc"></div>
                            <div class="art-Post-body">
                        <div class="art-Post-inner">
                            <div class="art-PostMetadataHeader">
                                <h2 class="art-PostHeaderIcon-wrapper">
                                    <img src="images/PostHeaderIcon.png" width="32" height="32" alt="PostHeaderIcon" />
                                    <span class="art-PostHeader">Rejestracja</span>
                                </h2>
                            </div>
                            <div class="art-PostContent"><div class="cleared1"></div>

   <form action="" method="post" name="myform" id="myform">
        <table width="100%" border="0" align="left" cellpadding="3" cellspacing="3" class="forms">

        <tr>
            <td>Użytkownik</td>
            <td><?
                          if(isset($_POST['register'])){
                              if(empty($_POST['username-reg'])){
                              ?>
                              <span class="error">
                              <? echo $usrv;?>
                              </span>
                              <?
                              }
                              if(!empty($_POST['username-reg'])){
                              if(!preg_match($pattern, $usrn)){
                              ?>
                              <span class="error">
                              <? echo $usri;?>
                              </span>
                              <?
                              }
                              if($r > 0){
                              ?>
                              <span class="error">
                              <? echo $usrt;?>
                              </span>
                              <?
                              }
                              }
                          };
                          ?>
                          <input type="text" name="username-reg" class="textfield" id="u_empty" value="<? echo $_POST['username-reg']; echo $ur ?>" />


PS. Hosting mam na home.pl. :/
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
pedro84
post
Post #2





Grupa: Nieautoryzowani
Postów: 2 249
Pomógł: 305
Dołączył: 2.10.2006

Ostrzeżenie: (0%)
-----


Ja tam nie widzę, żebyś gdziekolwiek w tym spaghetti blokował rejestrację przy zduplikowanym emailu.


--------------------
Google knows the answer...
Go to the top of the page
+Quote Post
artdem
post
Post #3





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 6.05.2011

Ostrzeżenie: (0%)
-----


Ta część reaguje na inne errory (niezgadzające się hasła, niewłaściwy email, nieprawidłowe znaki), ale czy do powtarzających się loginów powinienem jeszcze coś dołożyć?

Kod
<td>Użytkownik</td>
            <td><?
                          if(isset($_POST['register'])){
                              if(empty($_POST['username-reg'])){
                              ?>
                              <span class="error">
                              <? echo $usrv;?>
                              </span>
                              <?
                              }
                              if(!empty($_POST['username-reg'])){
                              if(!preg_match($pattern, $usrn)){
                              ?>
                              <span class="error">
                              <? echo $usri;?>
                              </span>
                              <?
                              }
                              if($r > 0){
                              ?>
                              <span class="error">
                              <? echo $usrt;?>
                              </span>
                              <?
                              }
                              }
                          };
                          ?>
                          <input type="text" name="username-reg" class="textfield" id="u_empty" value="<? echo $_POST['username-reg']; echo $ur ?>" />


Cytat(pedro84 @ 6.05.2011, 12:21:42 ) *
Ja tam nie widzę, żebyś gdziekolwiek w tym spaghetti blokował rejestrację przy zduplikowanym emailu.


Kod
            <td>Email</td>
            <td><?
                          if(isset($_POST['register'])){
                              if($_POST['email-reg'] == "")
                              {
                              ?>
                              <span class="error">
                              <? echo $emailv; ?>
                              </span>
                              <?
                              }
                              if($_POST['email-reg'] != ""){
                                  if($e > 0){
                                  ?>
                                  <span class="error">
                                  <? echo $emailt; ?>
                                  </span>
                                  <?
                                  }
                              }
                          };
                          ?>
                          <input type="text" name="email-reg" class="textfield" id="e_empty" value="<? echo $_POST['email-reg']; echo $em; ?>" /> (Wymagany właściwy adres w celu weryfikacji) </td>


Nie wrzuciłem wszystkiego.
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




1) Zacznij proszę używać właściwe bbcode. Do kodu co tu masz używa się bbcode PHP
2) Zapoznaj się proszę z tematem i zastosuj do podanych tam wskazówek
Temat: Jak poprawnie zada pytanie
3) Przenosze


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 07:50