Valaki készítene nekem egy regisztrációs ürlapot? Regisztráció- (Név, Becenév, "speciális kód", jelszó, jelszó újra)
Még valami esetleg?
-----------------------
Kedves Barátom!
Az oldal címe: gyakorikérdések.hu , nem pedig bérniggerkereső.hu
Szóval az ilyen "valaki dolgozna helyettem tök ingyen?" kérdésekkel nem sokra mész..
De: természetesen segítséget tudunk adni: írd be a google-ba, hogy "php mysql login tutorial" esetleg a tutorial helyett azt, hogy "script download".
van úgy 245 ilyen kész, letölthető script a neten..
Ajánlom mondjuk a sourceforge.com-ot!
Köszönöm a választ!
Elhiheted, hogy nem egyszer futottam már neki de mikor századjára sem sikerül akkor...Én ha vágnám ezt a dolgot biztosan segítenék,javíts ki ha rosszul gondolom de nem tart tovább fél óránál!
attól függ... mármint a fél óra.. most, jelen pillanatban valóban nem tartana tovább fél óránál, hogy megírjuk.. ami tovább tart fél óránál, az az az idő, energia, amit abba fektetett az ember, hogy képes legyen fél óra alatt megcsinálni egy ilyet..
Szóval itt nem arról van szó, hogy fél élet lenne megcsinálni, csupán az elvről: hogy b@szol bármit is tanulni, egyszerűen azt hiszed, hogy bedobsz egy kérdést, és valaki ingyen, a saját szabadidejében ezt megoldja helyetted!
Szóval jöhet a piros kéz, nem zavar..
Segíteni segítünk szívesen, de: Helyetted nem fogunk dolgozni!
nézd, ha tényleg foglalkoztál vele, csak elakadtál, akkor mondjuk eleve kezdhetted volna úgy ezt az egészet, hogy idemásolod a forráskódot, megmondod, hogy milyen hibát tapasztalsz, és akkor vszleg már tegnap este lett volna egy működő rendszered...
Szóval ha tényleg így áll a dolog, akkor a.) másold ide, b.) elküldheted akár priviben is /kint van a link/ bár az első verzió azért jobb, mert akkor kb. még 10, idejáró szakmabeli segítségére is számíthatsz!
Nos, elvileg addig eljutottam, hogy működik a rendszer (adatbázis kezelés)viszont szeretném még kiegészíteni azzal amit a kérésben leírtam, hogy van egy számok halmaza Pl.:minden személyhez kapcsolódik egy azonosító szám ha ezt a számot reg-nál nem írja be akkor nem tud regisztráni az illető!
add.php
<?php //character test ÍíúőűáéóüöÚŐŰÁÉÓÜÖ ?><?php
include("connect.php");
if(isset($_POST["add"]))
{
include("added.php");
}
include("header.php");
?>
<form id="FormName" action="<?php echo $_SERVER["PHP_SELF"]?>" method="post" name="FormName">
<table width="448" border="0" cellspacing="2" cellpadding="0">
<tr><td width = "150"><div align="right"><label for="felhasználonev">felhasználonev</label></div></td>
<td><input id="textfield" name="felhasználonev" type="text" size="25" value="<?php echo p("felhasználonev") ?>" maxlength="255"></td></tr>
<tr><td width = "150"><div align="right"><label for="jelszo">jelszo</label></div></td>
<td><input id="jelszo" name="jelszo" type="password" size="25" value="<?php echo p("jelszo") ?>" maxlength="255"></td></tr>
<tr><td width = "150"><div align="right"><label for="emailcim">emailcim</label></div></td>
<td><input id="textfield" name="emailcim" type="text" size="25" value="<?php echo p("emailcim") ?>" maxlength="255"></td></tr>
<tr><td width="150"></td><td>
<input type="hidden" name="add" value="add">
<input type="submit" name="submitButtonName" value="Add"></td>
</tr></table></form>
<?php
include("footer.php");
?>
added.php
<?php //character test ÍíúőűáéóüöÚŐŰÁÉÓÜÖ ?>
<?php
$errors=array();
if(is_mail($_POST['emailcim'])==false)
$errors[]="emailcim nem email cím";
// check for duplication!
if(empty($_POST["felhasználonev"]))
$errors[]="felhasználonev üres!";
else
{
$felhasználonev = mres($_POST['felhasználonev']);
$sql="select count(*) from felhasznalok WHERE `felhasználonev`='$felhasználonev'";
$res=mysql_query($sql) or die(mysql_error() . " in query: $sql");
$rows=mysql_result($res , 0);
if($rows>0)
$errors[]="felhasználonev már szerepel a táblában";
}
// required!
if(empty($_POST["jelszo"]))
$errors[]="jelszo üres!";
else
$jelszo = sha1($_POST['jelszo']);
// required!
if(empty($_POST["emailcim"]))
$errors[]="emailcim üres!";
else
$emailcim = mres($_POST['emailcim']);
$csatlakozas = date("Y-m-d H:i:s");
if(count($errors)>0)
echo( "<center>". implode("<br />" , $errors)."</center>");
else
{
$query = "INSERT INTO felhasznalok (userid, `felhasználonev`,`jelszo`,`emailcim`,`csatlakozas`)
VALUES ('', '$felhasználonev','$jelszo','$emailcim','$csatlakozas' )";
$results = mysql_query($query);
if ($results)
{
echo "Beírtam sikeresen";
}
else
echo "Insert failed," . mysql_error();
}
?>
connect.php
<?php //character test ÍíúőűáéóüöÚŐŰÁÉÓÜÖ ?><?php
/// For the following details,
/// please contact your server vendor
$hostname='localhost'; //// specify host, i.e. 'localhost'
$user='root'; //// specify username
$pass=''; //// specify password
$dbase='phplogin'; //// specify database name
$connection = mysql_connect("$hostname" , "$user" , "$pass")
or die ("Can't connect to MySQL");
$db = mysql_select_db($dbase , $connection) or die ("Can't select database.");
mysql_query( "SET NAMES utf8");
function mres( $string ) {
if(get_magic_quotes_gpc())
$string= stripslashes($string);
return mysql_real_escape_string($string);
}
function req($index)
{
if(!empty($_REQUEST[$index]))
{
$string=$_REQUEST[$index];
return get_magic_quotes_gpc() ? stripslashes($string): $string ;
}
else
return NULL;
}
function p($index)
{
if(!empty($_POST[$index]))
{
$string=$_POST[$index];
return htmlspecialchars( get_magic_quotes_gpc() ? stripslashes($string): $string );
}
else
return NULL;
}
function is_username($input)
{
if(!preg_match('/^[a-zA-Z0-9]+$/' , $input ) )
return false;
else
return true;
}
function is_url($input)
{
if(!preg_match("/^[a-zA-Z]+[:\/\/]+[A-Za-z0-9\-_]+\.+[A-Za-z0-9\.\/%&=\?\-_]+$/i",$input))
return false;
else
return true;
}
function is_mail($var)
{
$pattern="/^[-_.[:alnum:]]+@((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i";
if ( !empty( $var ) )
{
if ( !preg_match ($pattern, $var ) )
{
return false;
}
else
return true;
}
else
return false;
}
/* Mail Functions Ends*/
/*
More info about recaptcha: http://recaptcha.net/plugins/php/
Get an API key here! http://recaptcha.net/api/getkey
*/
$publickey = "...";
$privatekey = "...";
?>
index.php
<?php //character test ÍíúőűáéóüöÚŐŰÁÉÓÜÖ ?>
<?php
include("connect.php");
include("header.php");
include("searchform.php");
$query="SELECT * FROM felhasznalok ";
if (req("q_search") != "") {
if (req("q_where") == "-1") {
foreach($f AS $k => $v) {
$where[] ="$k like '%". mysql_real_escape_string( req("q_search")) ."%'";
}
}
else
$where[] = req("q_where") . " like '%". mres( req("q_search") ) ."%'";
}
if(isset($where) AND count($where)>0)
$query .=" WHERE " . implode(" OR " , $where) ;
$result=mysql_query($query);
$num = mysql_num_rows ($result);
$row_per_page=10;
$numberofpages = ceil($num / $row_per_page);
$page= isset($_GET["page"])? intval($_GET["page"]) : 0 ;
$actual=$page*$row_per_page;
$query.=" LIMIT $actual,$row_per_page";
$result = mysql_query( $query );
mysql_close();
if ($num > 0 ) {
?>
<table border="1">
<tr>
<th>felhasználonev</th>
<th>jelszo</th>
<th>emailcim</th>
<th>csatlakozas</th>
<th>update</th>
<th>del</th>
</tr>
<?php
while($a=mysql_fetch_assoc($result))
{
echo "<tr>";
echo "<td> ".$a["felhasználonev"]."</td>";
echo "<td> ".$a["jelszo"]."</td>";
echo "<td> ".$a["emailcim"]."</td>";
echo "<td> ".$a["csatlakozas"]."</td>";
echo "<td> <a href='update.php?userid=".$a["userid"]."'>Update</a></td>";
echo "<td> <a href='delete.php?userid=".$a["userid"]."'>Delete</a></td>";
echo "</tr>";
}
echo "</table>";
echo "<p>";
$q_search=req("q_search");
$q_where=req("q_where");
for($i=0;$i<$numberofpages;$i++)
{
echo "<a href='?page=$i&q_search=$q_search&q_where=$q_where'>[".($i+1)."]</a>";
}
echo "</p>";
}
else
echo "<h3>No result!</h3>";
include("footer.php");
?>
Hm, na, akkor most már ezt is tudjuk...
Akkor álljunk neki némi tervezéselméletnek: az adatbázisod jelenleg egy darab tábla: felhasznalok
melyben van:
(userid, `felhasználonev`,`jelszo`,`emailcim`,`csatlakozas`)
Ha jól értem, azt akarod, hogy csak az regisztrálhasson, akit te meghívsz? A meghívás = küldesz neki egy "ABC123" szerű kódot, amit be kell adnia a regnél, máskülönben nem lehet regisztrálni, ugye???
Ha igen, én ezt úgy csinálnám, hogy: kell egy újabb tábla, amit elnevezel mondjuk 'biztonsag'-nak:
3 mező: id, email, kod
ebből az id legyen auto_increment és primary key
a kód pedig olyan varchar, ami pont olyan hosszú, mint a random kódod szeretne lenni...
Ezt ugye, ha majd feltöltöd /erre majd visszatérünk/ jelenleg képzeljük el, hogy akiket meghívtál, azokat beleírtad ebbe az adatbázis-táblába, tehát e táblában:
1 | pisti@gmail.com | AXS3H1
2 | bela@valami.hu | B43Ed5
3 | lilla@hotmail.nemtom | 1BNM53
jellegű adatsorok vannak..
ha ez megvan, nincs más dolgod, mint ezt leellenőrizni:
Első módosítás: kell a html form-ban egy kódmező..
A felhasználónevet, ugye úgy kéred most be, hogy:
<input id="textfield" name="felhasználonev" type="text" size="25" value="<?php echo p("felhasználonev") ?>" maxlength="255">
mondjuk, kezdésnél szerintem ne bonyolítsd így össze, elég, ha: <input name="felhasználonev" type="text" />
ennek mintájára egyszerűen csinálsz még egy ilyet, hogy:
<input name="kod" type="text" />
A feldolgozásnál, kb. oda, ahol azt írod:
$errors = array()
ugye, az után kezdődnek az ellenőrzések.. ellenőrzést végzel:
if(empty($_POST["kod"]))
$errors[]="Nem adtál meg kódot";
else
{
$kod = $_POST['kod'];
$sql="select count(*) from bizotnsag WHERE `kod`='$kod'";
$res=mysql_query($sql) or die(mysql_error() . " in query: $sql");
$rows=mysql_result($res , 0);
if($rows = 0)
$errors[]="nincs ilyen kód";
}
ezt most nem próbáltam ki, egyszerűen a felhasznalonev bekérést írtam át: az elv: ugye a felhasználónévnél azt ellenőrzöd, hogy volt-e már ilyen.. itt is ugyanezt kell tenni: ellenőrizni, hogy a megadott kód szerepel-e a biztonsag tábla kod mezőiben.. ha igen, akkor a $rows ugye 1 lesz, ha nincs, akkor nulla... végén az elágazás: ha = 0 ergó nincs találat, ergó nincs ilyen kód, akkor hibát dobjon.
}
Egyenlőre ezt értsd meg, szólj, ha elbsztam valamit, vagy írd ki a módosított kódot, ami működik...
Következő biztonsági lépésed az lesz, hogy ellenőrizd, azzal a címmel regisztrálnak-e, amivel kell... mivel ugye megtehetem, hogy megtippelem a kódot..
De erre visszatérünk, ha az eddigiekkel megvagy!
Szólj, ha valami nem világos!
Hűha Te aztán vágod ezt a témát!Köszönöm, hogy foglalkozol velem!
Nem teljesen ezt akarom!Még mindenek előtt adnám meg a "számsort" "Számokat" Pl.:02154,45628,46854,114579 na most ha regisztrálni szeretnél meg kell adnod valamelyik számot egy külön helyre a jelszo e-mail cím stb. résznél!
:D
Ugyanarról beszélünk!!!! Csak Te nem érted..
Tehát: az adatbekérés a form /form dologgal történik.. a te kódodban ezt itt láthatjuk:
<form id="FormName" action="<?php echo $_SERVER["PHP_SELF"]?>" method="post" name="FormName">
<table width="448" border="0" cellspacing="2" cellpadding="0">
<tr><td width = "150"><div align="right"><label for="felhasználonev">felhasználonev</label></div></td>
<td><input id="textfield" name="felhasználonev" type="text" size="25" value="<?php echo p("felhasználonev") ?>" maxlength="255"></td></tr>
<tr><td width = "150"><div align="right"><label for="jelszo">jelszo</label></div></td>
<td><input id="jelszo" name="jelszo" type="password" size="25" value="<?php echo p("jelszo") ?>" maxlength="255"></td></tr>
<tr><td width = "150"><div align="right"><label for="emailcim">emailcim</label></div></td>
<td><input id="textfield" name="emailcim" type="text" size="25" value="<?php echo p("emailcim") ?>" maxlength="255"></td></tr>
<tr><td width="150"></td><td>
<input type="hidden" name="add" value="add">
<input type="submit" name="submitButtonName" value="Add"></td>
</tr></table></form>
most ebbe teszek pár entert, hogy olvashatóbb legyen, és törlök pár dolgot, amit végül is benne hagyhatsz, csak hogy átlásd az elvet:
<form action="<?php echo $_SERVER["PHP_SELF"]?>" method="post">
<table>
<tr>
<td><div><label>felhasználonev</label></div></td>
<td><input name="felhasználonev" type="text"></td>
</tr>
<tr>
<td><div><label>jelszo</label></div></td>
<td><input name="jelszo" type="password"></td>
</tr>
<tr>
<td><div><label>emailcim</label></div></td>
<td><input name="emailcim" type="text"></td>
</tr>
<tr><td></td><td>
<input type="hidden" name="add" value="add">
<input type="submit" name="submitButtonName" value="Add"></td>
</tr>
</table>
</form>
ebben így láthatod, hogy a táblázatod sorai = a tr /tr ek között van két mező:
az elsőben a td /td között van egy label.. ez a címke, a közé írt szöveg jelenik meg.
a második td /td , tehát a második cella tartalmaz egy input nevű űrlapelemet.. ez az, amibe írni tudsz..
Szóval, ha akarsz bekérni egy kódot, akkor kell -esetünkben- egy újabb sor a táblázatban, tehát valamelyik </td> tag után beleírsz egy új sort..
ugye pl a felhasznalonev címkét és a hozzá tartozó inputmezőt ez hozza létre:
<tr>
<td><div><label>felhasználonev</label></div></td>
<td><input name="felhasználonev" type="text"></td>
</tr>
szóval ez után írj be egy újabb trtd /td/tr , magyarul táblázat sort pl így:
<tr>
<td><div><label>ellenőrző kód</label></div></td>
<td><input name="kod" type="text"></td>
</tr>
Amit itt látni kell, hogy a name tag-ja az lesz, hogy 'kod' , ez fontos, így hivatkozhatsz a beírt adatra feldolgozásnál...
eddig világos?
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!