1 (edited by Prosenelis 2012-02-26 10:15:22)

Topic: site registration username without spacing

Kaip padaryti web svetainės registraciją kad tikrintu tuščius simbolius įvedamuose duomenyse ir juos pašalintu. kodas:

<?php
//tikrinama ar ivydyta forma
if(isset($_POST['username']))
{
//priskiriami kintamieji
$user = $_POST['username'];
$umail = $_POST['umail'];
$pass = $_POST['password'];
$pass2 = $_POST['password2'];
$ip = $_SERVER["REMOTE_ADDR"];

//tikrina ar nera tusciu lauku
$user = str_replace (" ", "", $user);
$umail = str_replace (" ", "", $umail);
echo "IP ".$_SERVER["REMOTE_ADDR"];
if($user<>"" AND $umail<>"" AND $pass<>"" AND $pass2<>"")
{

//tikrina ar vienodi slaptazodziai
if($pass==$pass2)
{
if(strlen($pass)>=4)
{
$con = mysql_connect("localhost", "root", "");
if(!$con)
{
die("Nepavyko prisijungti prie serverio:".mysql_error());
}
mysql_select_db("test", $con);
$pass = md5($pass);
if(mysql_num_rows(mysql_query("select * from test where username = '$user'")))
{
echo "Vartotojas jau užimtas";
}else{


if(filter_var($umail, FILTER_VALIDATE_EMAIL)) 
    {
    //return TRUE;
    mysql_query("insert into test (uid, username, password, umail, hostname) VALUES ('', '$user', '$pass', '$umail', '$ip')");
    echo ($user.' sėkmingai prisiregistravo '.$umail);
    }
  else
    {
   // return FALSE;
    echo ($umail.' Pašto adresas neteisingas!');
    }
}
}else{
echo "Slaptažodis per trumpas!";
}
}else{
echo "Slaptažodziai nesutampa!";
}
}else{
echo "Ne visi laukai užpildyti!";
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="lt-lt" lang="lt-lt" >
<head>
<title>Registracija</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>

<body>
<fieldset >
<legend>Registracija</legend>
<form method='POST'>
Prisijungimo vardas <br><input type='text' name='username'><br>
El. paštas <br><input type='text' name='umail'><br>
Slaptažodis <br><input type='password' name='password'><br>
Pakartokite slaptažodį <br><input type='password' name='password2'><br>
<input type='hidden' name='hostname' value='<?php $IP ?>'><br>
<br>
<input type='submit' value='užRegister'>
</fieldset >
</form>
</body>
</html>

Warning: count(): Parameter must be an array or an object that implements Countable in /home/pasokime/domains/mysql.lt/public_html/forumas/include/parser.php on line 820

Re: site registration username without spacing

http://php.net/manual/en/function.preg-replace.php

3 (edited by Prosenelis 2012-02-25 20:48:30)

Re: site registration username without spacing

ar užtenka tiesiog iterpti:

$user = str_replace (" ", "", $user);

Ar nebus bėdų dėl kitų simbolių bei didžiųjų ir mažųjų raidžių?

Kaip gauti kliento ip addresa registruojantis?
bandžiau padaryti pagal kažkokį tutorialą bet negaunu tinkamų reikšmių gal kas ką patars?

<?php
...
$IP = $_SERVER['REMOTE_ADDR'];
$HOST = gethostbyaddr($IP);
...
?>
<html>
...
<input type='hidden' name='userip' value='<?php echo $IP ?>'><br>
<input type='hidden' name='hostname' value='<?php echo $HOST ?>'>
...
</html>

Re: site registration username without spacing

http://php.net/manual/en/reserved.variables.server.php

var_dump(0 == 'tekstas'); // TRUE. ar zinai kodel? :)

Re: site registration username without spacing

galvojat nemoku google naudotis? man konkreciu pavizdziu reikia ir atsakymu nes net google geriau atsako negu jus - tinginiai! :D sunku galva pasukt biski tik copy link adres sugebat? :) nieko naudingo ar naujo man neparodet deje

Re: site registration username without spacing

Pala pala. Kuris čia tinginys?
Kodas su rimtomis saugumo skylėmis, klausimas visiškai kvailas, antras postas rodo, kad net neskaitai dokumentacijos.
Kokio tu sprendimo nori? Konkretaus? Gal šitas tiks: http://answers.yahoo.com/question/index … 103AANuj6x

MongoDB Certified Developer
MongoDB Certified DBA
Zend Certified Engineer

Re: site registration username without spacing

kas blogai? nematau nei vienos klaidos gal prisigalvojat? tai klaidas taisykit ar gal google istaisys viska?:) dokumentacijas visas perskaiciau bet nieko nera ko man reik apie tai

Re: site registration username without spacing

zodziu su tavim viskas aisku...

var_dump(0 == 'tekstas'); // TRUE. ar zinai kodel? :)

9 (edited by md5 2012-02-26 13:57:20)

Re: site registration username without spacing

Prosenelis wrote:

kas blogai? nematau nei vienos klaidos gal prisigalvojat? tai klaidas taisykit ar gal google istaisys viska?:) dokumentacijas visas perskaiciau bet nieko nera ko man reik apie tai

O tai kas gerai? aš nieko gero nematau... Gal pavasarį planuoji į užsienį išvykti uogauti?:)
programuotojo daina:
Tu googles paklausk,
Tau goggle atsakys.
Tik jis mano,drauge,atsakys....

emigranto daina:
Pūsk vėjau pūsk,
Per žydrąsias marias...
/../Pūsk, neužpūsk, žiburėlių languos,
Smaluot valtį, tu vėjau, iš lengvo skalauk

Kiek maigyklių sudėvėjai ?

Re: site registration username without spacing

Prosenelis wrote:

kas blogai? nematau nei vienos klaidos gal prisigalvojat? tai klaidas taisykit ar gal google istaisys viska?:) dokumentacijas visas perskaiciau bet nieko nera ko man reik apie tai

Ko tau reikia, gal ir nėra. Bet tu net nežinai, kad tau reikia vieno ar kito dalyko, nes apie juos nieko neskaitei.
Ir nemeluok, kad visas dokumentacijas perskaitei, nes tam tiesiog neužtektų gyvenimo.
Pvz.: skaitei http://php.net/manual/en/function.mysql … string.php ? čia tie tarpai mažiausia problema skripte :D

MongoDB Certified Developer
MongoDB Certified DBA
Zend Certified Engineer

Re: site registration username without spacing

Tai sakai mes tinginiai?

štai gatavas kodas kur tau reikia kad pašalintų tarpus:

set_time_limit(0);
while(1) {
   echo str_replace(" ","",$POST['username']);
}

Kai baigs, pranešk kokį rezultatą gavai.

Re: site registration username without spacing

dabar susiduriau su kita problema sukuriu tuscia kintamaji $msg kuriame turetu rasyti klaidas ivedant registracijos duomenis, visus echo atsakymus pakeiciu i $msg ir bandau isvesti su <?php echo $msg; ?> bet man raso kad Notice: Undefined variable: msg in C:\Program Files\xampp\htdocs
tikriausiai vel kaska ne taip darau? :)

<?php
//tikrinama ar ivydyta forma
if(isset($_POST['username']))
{
//priskiriami kintamieji
$msg = '';
$user = strip_tags($_POST['username']);
$umail = strip_tags($_POST['umail']);
$pass = $_POST['password'];
$pass2 = $_POST['password2'];
$hostname = gethostbyaddr($_SERVER["REMOTE_ADDR"]);
$ip = $_SERVER["REMOTE_ADDR"];


$text = "Hi,\n\nHow are you?";

//tikrina ar nera tusciu lauku
//$user = strip_tags($user);
$user = str_replace (" ", "", $user);
$umail = str_replace (" ", "", $umail);
if($user<>"" AND $umail<>"" AND $pass<>"" AND $pass2<>"")
{

//tikrina ar vienodi slaptazodziai
if($pass==$pass2)
{
if(strlen($pass)>=4)
{
$con = mysql_connect("localhost", "root", "");
if(!$con)
{
die("Nepavyko prisijungti prie serverio:".mysql_error());
}
mysql_select_db("phpmysimplelogin", $con);
$pass = md5($pass);
if(mysql_num_rows(mysql_query("select * from user where username = '$user'")))
{
$msg = ("Dėje, vartotojas ".$user." jau užimtas. Mėginkite kitą!");
}else{


if(filter_var($umail, FILTER_VALIDATE_EMAIL)) 
    {
    //return TRUE;
    mysql_query("insert into user (username, id, password, umail, ip) VALUES ('$user', '', '$pass', '$umail', '$ip')");
//    mail('prosenelis@gmail.com', $text, $text);
    $msg = ('Vartotojas '.$user.' sėkmingai prisiregistravo '.$umail);
    }
  else
    {
   // return FALSE;
    $msg = ($umail.' Pašto adresas neteisingas!');
    }
}
}else{
$msg = "Slaptažodis per trumpas!";
}
}else{
$msg = "Slaptažodziai nesutampa!";
}
}else{
$msg = "Ne visi laukai užpildyti!";
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="lt-lt" lang="lt-lt" >
<head>
<title>Registracija</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link href="/./stilius.css" rel="stylesheet" type="text/css">
</head>

<body>
<fieldset style="width: 400px; height: 200px;" >
<legend>Registracija</legend>
<table border="0">
<form method='POST'>

<tr><td>Prisijungimo vardas:</td><td></td><td><input type='text' name='username' size="30" maxlength="25"></td></tr>
<tr><td>El. paštas:</td><td></td><td><input type='text' name='umail' size="30" maxlength="40"></td></tr>
<tr><td>Slaptažodis:</td><td></td><td><input type='password' name='password' size="30" maxlength="30"></td></tr>
<tr><td>Pakartokite slaptažodį:</td><td></td><td><input type='password' name='password2' size="30" maxlength="30"></td></tr>
<tr><td>&nbsp;</td><td>&nbsp;</td><td></td><td><input type="submit" size="30" value="Užsiregistruok!" onMouseDown="this.className='submitdown';" onMouseUp="this.className='submitup';" onMouseOver="this.className='submithover';" onMouseOut="this.className='submit';" /></td></tr>
<tr><td><?php echo $msg; ?></td><td></td><td><input type='hidden' name='hostname' value='<?php $IP ?>'></td></tr>


</td></tr>
</table>
</fieldset >
</form>
</body>
</html>

13 (edited by md5 2012-03-07 22:08:04)

Re: site registration username without spacing

kodas vykdomas nuo viršaus į apačią..., tai žiūrėk kur msg pradžia randasi, matau, kad if;e, kadangi if;o sąlyga gali būti ir neįvykdyta, tai msg kintamasis nesukuriamas.
Dažniausiai daroma klaida - if;as if;e
Geriausia praktika - visada vadovautis sąlyga IF NOT

Kiek maigyklių sudėvėjai ?

14 (edited by Prosenelis 2012-03-07 22:22:22)

Re: site registration username without spacing

ačiū jau veikia, kvaila klaida buvo :D gal dar kokiu pastebejimu bus del kodo?

15

Re: site registration username without spacing

Klaidas imti į masyvą, bus daugiau žinių apie masyvus ):

Kiek maigyklių sudėvėjai ?

Re: site registration username without spacing

Prosenelis wrote:

ačiū jau veikia, kvaila klaida buvo :D gal dar kokiu pastebejimu bus del kodo?

Ar laukeliai tušti siūlau tikrinti naudojant trim funkciją arba reguliarias išraiškas. Siūlau apriboti kokie username yra leistini, vėlgi reguliarių išraiškų pagalba arba filter_var pagalba.