|
TreamX
|
 |
« Válasz #40 Dátum: 2008. 02. 13. - 19:24:23 » |
|
Most itt tartok. Eddig jó úton haladok? <style> @import url(css/header.css); @import url(css/left.css); @import url(css/news.css); @import url(css/right.css); @import url(css/footer.css); </style>
<div id="news"> <div id="bannerh"> <div id="banner"> <a href="http://vtpc.extra.hu" class="bl"><img src="banners/gif/vtpc.gif" /></a> </div> </div> <div id="newsheader"> <p class="newssz">Elfelejtetted a jelszavad?</p> </div> <div id="newst"> <p class="ntt">
<?php print "<form method=post action='index.php?page=kuld'>"; print "<ul class='ulreg'>Felhasználóneved: <input type=text name='nick'></ul>"; print "<ul class='ulreg'>E-mail címed: <input type=password name='mail'></ul>"; print "<ul class='ulreg'><input type=submit name='mehet'></form>"; ?> <?php include ("config.php"); $table = mysql_query("SELECT `nev`, `mail` FROM `felhasznalo` WHERE `nev` = '$nick' AND `email` = '$mail' LIMIT 1"); $ellenoriz = mysql_query("select nev from nick where nev = '$nick'"); $ellenoriz2 = mysql_query("select mail from nick where mail = '$mail'"); $szam = mysql_num_rows($ellenoriz); $szam2 = mysql_num_rows($ellenoriz2); if ( isset($_POST['adat'])) { if ( $nick == "" && $mail == "" ) { print "A jelszót sikeresen kiküldtük!"; } else { if ( $nick != "" && $mail != "" ); { print "A felhasználónév és az email cím nem egyezik!"; } { if ( $nick == "" && $mail != "" ); { print "Az e-mail cím nem jó!"; } { if ( $nick != "" && $mail == ""); { print "A felhasználónév nem jó!"; } } } ?> </p> </div> </div>
|
|
|
|
|
Naplózva
|
|
|
|
|
|
Tupacko
|
 |
« Válasz #41 Dátum: 2008. 02. 13. - 20:17:49 » |
|
Nem. Meg mindig nem dontod el, ahogy irtam, hogy mikor kell ellenorizd a bekuldott adatot es mikor nem. Te minden esetben probalod ellenorizni. Masik dolog, nem helyes igy atvenni valtozot POSTbol vagy GETbol, hogy $valtozo, hanem igy kell (sok helyen nem is mukodik direkt modon a $valtozo): $GET['valtozo'], $_POST['valtozo'] ... Hajra!
|
|
|
|
|
Naplózva
|
|
|
|
|
|
|
|
Tupacko
|
 |
« Válasz #43 Dátum: 2008. 02. 13. - 20:24:19 » |
|
Nem zartad be a PHP reszt? ( a file vegen van "?>" ??)
|
|
|
|
|
Naplózva
|
|
|
|
|
|
TreamX
|
 |
« Válasz #44 Dátum: 2008. 02. 13. - 20:38:41 » |
|
Van. Megpróbáltam egy új kódot irni, nagyjából magamtól. Lehet hogy nagyon nagy hülyeség. <?php print "<form method=post action='index.php?page=kuld'>"; print "<ul class='ulreg'>Felhasználóneved: <input type=text name='nick'></ul>"; print "<ul class='ulreg'>E-mail címed: <input type=password name='mail'></ul>"; print "<ul class='ulreg'><input type=submit name='mehet'></form>"; ?> <?php include ("config.php"); $sql="SELECT * FROM nick WHERE nick='$nick' and mail='$mail' and pass='$password"; $result=mysql_query($sql); $count=mysql_num_rows($result); if($count==1) { $selectnick=$_GET['nick']; $selectmail=$_GET['mail']; if ( $_POST != "" ) { mail($selectmail , "Elfelejtett jelszó" , "Próba" ); } else { echo "Nem sikerült elküldeni az üzenetet"; } }
?>
|
|
|
|
|
Naplózva
|
|
|
|
|
|
Tupacko
|
 |
« Válasz #45 Dátum: 2008. 02. 13. - 20:55:56 » |
|
Az SQLben nem zartad be az utolso karakterlancot: $sql="SELECT * FROM nick WHERE nick='$nick' and mail='$mail' and pass='$password'"; Miert zarod be a PHPt es nyitod ujra a config beolvasasa elott? Semmi ertelme.
|
|
|
|
|
Naplózva
|
|
|
|
|
|
TreamX
|
 |
« Válasz #46 Dátum: 2008. 02. 13. - 21:09:31 » |
|
|
|
|
|
|
Naplózva
|
|
|
|
|
|
Tupacko
|
 |
« Válasz #47 Dátum: 2008. 02. 13. - 21:47:26 » |
|
Nincs olyan tabla/oszlop, hogy "nick". Adatbazist kivalasztottad valahol? Csatlakoztal a MySQL szerverre? [a kdoban nem, de gondolom a config.phpban, ami viszon nem jo otlet ... konfiguracios fileban csatalakozni :-S ]
|
|
|
|
|
Naplózva
|
|
|
|
|
|
TreamX
|
 |
« Válasz #48 Dátum: 2008. 02. 14. - 09:40:50 » |
|
értem. dde ha meg itt kapcsolódok, oda is kell jelszó, akkor már simán feltörik. nem?
|
|
|
|
|
Naplózva
|
|
|
|
|
|
TreamX
|
 |
« Válasz #49 Dátum: 2008. 02. 14. - 09:55:44 » |
|
Nos. Sikerült annyit csinálnom, hogy lehet már regelni, meg belépni. De azt hogy tudom megcsinálni, hogy ha belépett, akkor pl védett oldalakat is lásson, és a belépés helyén pedig legyenek a lehetőségei (Admin, Kilépés, Profil stb..) <?php include ("config.php"); ?> <div id="alap"> <div id="header"> <div id="login"><br /> <?php if ($_GET[csinal] == kilep){ session_unset(); session_destroy(); }
if ( isset($_POST["nick"]) ){ include("config.php"); $nev = htmlspecialchars($_POST[nick]); $jelszo = md5($_POST["pass"]); $jelszo = substr($jelszo, 0,20); $lekerdezes = mysql_query("SELECT * FROM tag where nev = '$nev' and jelszo = '$jelszo'"); $vanelekerdezes = mysql_num_rows($lekerdezes); if ($vanelekerdezes==1)//Ha van ilyen felhasználónév, jelszó páros { session_register( "nick" ); $time = time(); $frissit= mysql_query("UPDATE tag SET utlog = '$time' where nev = '$_POST[nick]'"); header("Location: index.php"); }else{ print 'Rossz felhasználónév vagy jelszó!'; print '<ul class="ulreg"><form action="#" method="post">Név:<input type="text" name="nev" class="inputlogin"></ul>'; print '<ul class="ulreg">Jelszó:<input type=password name="jelszo" class="inputlogin"></ul>'; print '<ul class="ulreg"><input type="submit" value="Belépés"></ul></form>'; }
}else if (session_is_registered(nev)){ print "Üdvözöllek ".$_SESSION["nick"]."<a href=index.php?csinal=kilep>Kilépés</a>"; }else { print '<ul class="ulreg"><form action="index.php?module=belepve" method="post">Név:<input type="text" name="nev" class="inputlogin"></ul>'; print '<ul class="ulreg">Jelszó:<input type=password name="jelszo" class="inputlogin"></ul>'; print '<ul class="ulreg"><input type="submit" value="Belépés"></ul></form>'; print '<ul class="ulreg"><a href="index.php?module=reg">Regisztráció</a></ul>'; print '<ul class="ulreg"><a href="index.php?module=newpass">Elfelejtetted a jelszavad?</a></ul>'; }
ob_end_flush(); ?>
|
|
|
|
|
Naplózva
|
|
|
|
|
|
Tupacko
|
 |
« Válasz #50 Dátum: 2008. 02. 14. - 13:13:10 » |
|
Elméletileg kellene müködjön, bár a session függvények elvaultak. Használd ezeket: <?php if ( isset($_SESSION['valtozo']) ){ echo "vedett"; }
//session_register helyett siman:
$_SESSION['valtozo'] = "a valtozo erteke"; ?>
|
|
|
|
|
Naplózva
|
|
|
|
|
|
TreamX
|
 |
« Válasz #51 Dátum: 2008. 02. 14. - 14:10:06 » |
|
Bocsi, ezt nem nagyon értem. 
|
|
|
|
|
Naplózva
|
|
|
|
|
|
Tupacko
|
 |
« Válasz #52 Dátum: 2008. 02. 14. - 14:43:31 » |
|
Melyik reszet nem erted?  Munkamenet kezelesrol az oldalon is van egy leiras, olvasd at, hatha segit. Tovabba meg innen is kiindulhatsz: http://www.php.net/session_register
|
|
|
|
|
Naplózva
|
|
|
|
|
|
TreamX
|
 |
« Válasz #53 Dátum: 2008. 02. 14. - 15:22:33 » |
|
egy magyar oldalon épp előbb olvastam át, naggyából értem miről van szó. de megcsinálni még mindig nem tudnám. Szóval ha nembaj még kérdeznék párat. Az elképzelésem a következő: <?php session_start() $lekerdezes = mysql_query(" SELECT * FROM nick WHERE 'nick' and 'jelszo'"); //Lekerdezi a nevet es jelszot $halekerdezi = mysql_num_rows($lekerdezes"); //ez nemtom mit csinal.. if ($halekerdezi==1) //ha a nev es a jelszo megegyezik //itt kene valahogy tovabbkuldeni az uj oldalra, ahol mar a lehetosegei vannak kiirva, de nemtom hogy } else { echo "Rossz felhasználónév, vagy jelszó" } session_write_close() ?>
Bár szerintem ez egy bejelentkezésnek elég kevés
|
|
|
|
|
Naplózva
|
|
|
|
|
|
Tupacko
|
 |
« Válasz #54 Dátum: 2008. 02. 14. - 16:13:05 » |
|
Szerintem amit tenned kellene az, hogy az elolvasott anyagokat felhasználva nekiállj és próbálj írni egyszerü dolgokat, pl. elküldesz egy űrlapot egy másik oldalnak, az elmenti a munkamenetbe az adatokat és átirányít egy másik oldalra, ott kiszeded a munkamenetből. Ha ez megvan, akkor tudod kezelni a munkamenetet, és nekiállhatsz az SQL részének, hogy ott tárold az adataidat. Semmi képpen ne tedd azt, amit úgy látok, hogy teszel: fejetlenűl, sietve, próbálsz megtanulni mindent. Nem lehet, nem vezet sehova. Rendszerezd magadban a dolgokat. Ma megtanulom ezt a részt. Ha megvan pihenek egyet. Esetleg másnap még átnézed, s megpróbálsz megtanulni mégvalamit. Egyszerre nem fog menni, vagy csak kínkeserves úton. Nem éri meg.
U.i.: már többször is figyelmeztettelek, hogy a fórum az nem chat. Légyszíves és offtopicot írj az offtopicba, használd a szerkeszt gombot és gondold át, amit írni szeretnél és csak aztkövetően írj. Köszönöm.
|
|
|
|
|
Naplózva
|
|
|
|
|
|
TreamX
|
 |
« Válasz #55 Dátum: 2008. 02. 14. - 16:32:22 » |
|
Megpróbálom megcsinálni amit mondtál. Csináltam egy index.php-t. Eddig ez jó? print ("<form action=lekerdez.php method=$_POST>Név: <input type=text name='nick'>"); print ("Jelszó: <input type=password name='pass'>"); print ("E-mail cím: <input type=text name='mail'>"); print ("Weboldalad: <input type=text name='oldalad'>"); print ("<input type=submit name='kuld'></form>"); $nev = $_POST['nick']; $jelszo = $_POST['pass']; $email = $_POST['mail']; $website = $_POST['oldalad']; $adatok = ("$nev" , "$jelszo" , "$email" , "$website"); if ( isset($adatok) ) { session_register("$adatok"); } else { echo "Nem töltöttél ki mindden mezőt"; } ?>
|
|
|
|
|
Naplózva
|
|
|
|
|
|
Tupacko
|
 |
« Válasz #56 Dátum: 2008. 02. 14. - 16:41:51 » |
|
Kezdjük az elején. HTML. a form tag method attributumába nem $_POST-ot írunk, hanem simán "post"-ot. Ne printtel írasd ki a HTML részeket, fölösleges terhelés. Írjad simán, HTMLként, és csak oda tegyél PHP tragokat, ahol tényelges feldolgozás történik. Már írtam, mégegyszer írom. Ne használj fölösleges munkamenet függvényeket. Használd egyszerűen a szuperglobális $_SESSION[] tömböt. Az adatok ellenörzését te nem végezted el, csak beleraktad egy tömbbe. Ne feledd, semmi is bele lehet tenni (üreshalmaz). Így lehet megnézni, egy módszer, hogy van értéke, vagy sem az adott mezőnek: <?php if ( isset($_POST['nev']) ){ // ha van deklaralva }
if ( strlen($_POST['nev']) > 0 ){ // ha valoban van benne valami }
if ( is_numeric($_POST['szam_mezo']) ){ // amennyiben szamot varsz } ?>
|
|
|
|
|
Naplózva
|
|
|
|
|
|
TreamX
|
 |
« Válasz #57 Dátum: 2008. 02. 14. - 17:03:50 » |
|
Hát nemtudom, nem sokat értettem meg belőle, a $_SESSION-ba hogy lehet többet beleirni? <body> <form action=lekerdez.php method=post>Név: <input type=text name='nick'> Jelszó: <input type=password name='pass'> E-mail cím: <input type=text name='mail'> Weboldalad: <input type=text name='oldalad'> <input type=submit name='kuld'></form> <?php $_SESSION['nick']=1; $_SESSION['pass']=1; $_SESSION['mail']=1; if ( isset($_POST['nick']) && isset($_POST['pass']) && isset($_POST['mail']) ) { if ( strlen($_POST['nick'] ) > 0 && strlen($_POST['pass']) > 0 && strlen($_POST['mail']) > 0 ) { session_register(); } else { session_unregister(); echo "Nem töltöttél ki mindden mezőt"; } } session_write_close() ?> </body>
|
|
|
|
|
Naplózva
|
|
|
|
|
|
Tupacko
|
 |
« Válasz #58 Dátum: 2008. 02. 14. - 18:31:52 » |
|
Ilnyenekre nincs szükség: session_write_close() ... fölösleges, ha egy szimpla tömbként kezeled a munkamenetet. Hogy írsz bele többet? Úgy, ahogy azt (ezek szerint nem tudatosan) eddig is tetted: $_SESSION['nick'] = 1; $_SESSION['pass'] = 1; $_SESSION['mail'] = 1;
//pl
$_SESSION['elsoValtozo'] = 234.34; $_SESSION["egyeb"] = "Mas valtozo, a munkamenet tombjen belol";
$_SESSION['tomb'] = array("valami", 1, 4, 5);
|
|
|
|
|
Naplózva
|
|
|
|
|
|
TreamX
|
 |
« Válasz #59 Dátum: 2008. 02. 14. - 18:38:40 » |
|
Értem. viszont van valami gond a kódban, közbe át is irtam néhány dolgot benne: <body> <form action=lekerdez.php method=post>Név: <input type=text name='nick'> Jelszó: <input type=password name='pass'> E-mail cím: <input type=text name='mail'> Weboldalad: <input type=text name='oldalad'> <input type=submit name='kuld'></form> <?php session_start(); $_SESSION['nick']= $_POST['nick'] ; $_SESSION['pass']= $_POST['pass'] ; $_SESSION['mail']= $_POST['mail'] ; $_SESSION['oldalad']= $_POST['oldalad'] ; if ( $_POST['nick'] = "" && $_POST['pass'] = "" && $_POST['mail'] = "" ) { if ( strlen($_POST['nick'] ) > 0 && strlen($_POST['pass']) > 0 && strlen($_POST['mail']) > 0 ) { session_register(); } else { echo "Nem töltöttél ki minden mezőt"; } } ?>
Nem értem, hogy ha nem irok valamelyik mezőbe, akkor mért nem irja ki hogy Nem töltöttél ki minden mezőt. És ha már itt tartunk, hogy ne irjak kétszer, amit ide megadott adatokat, azt a (jelen esetben lekerdez.php)-ben ugy kéne kiiratni hogy: <?php echo $_SESSION['nick']; ?>
De valamiért nem műküdik 
|
|
|
|
« Utoljára szerkesztve: 2008. 02. 14. - 18:48:38 írta TreamX »
|
Naplózva
|
|
|
|
|
|