WebPillangó főoldal
Oldalak: 1 2 [3] 4 5 ... 29   Le
  Nyomtatás  
Szerző Téma: PHP  (Megtekintve 207936 alkalommal)
TreamX
Tag
**
Nem elérhető Nem elérhető

Hozzászólások: 165


WWW
« Válasz #40 Dátum: 2008. 02. 13. - 19:24:23 »

Most itt tartok. Eddig jó úton haladok?
Kód:
<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
WebPillangó

Adminisztrátor
Törzstag
*****
Nem elérhető Nem elérhető

Hozzászólások: 966


WWW
« 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
TreamX
Tag
**
Nem elérhető Nem elérhető

Hozzászólások: 165


WWW
« Válasz #42 Dátum: 2008. 02. 13. - 20:23:00 »

Az a baj, tesztelni sem tudom.
Kiír valami hibát, de nemtom mért.
http://www.vtpc.extra.hu/index.php?module=newpass
Naplózva
Tupacko
WebPillangó

Adminisztrátor
Törzstag
*****
Nem elérhető Nem elérhető

Hozzászólások: 966


WWW
« Válasz #43 Dátum: 2008. 02. 13. - 20:24:19 »

Nem zartad be a PHP reszt? ( a file vegen van "?>" ??)
Naplózva
TreamX
Tag
**
Nem elérhető Nem elérhető

Hozzászólások: 165


WWW
« 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.

Kód:
<?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
WebPillangó

Adminisztrátor
Törzstag
*****
Nem elérhető Nem elérhető

Hozzászólások: 966


WWW
« 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
Tag
**
Nem elérhető Nem elérhető

Hozzászólások: 165


WWW
« Válasz #46 Dátum: 2008. 02. 13. - 21:09:31 »

Ezeket kijavítottam, de még most is ír hibát.
http://www.vtpc.extra.hu/index.php?module=newpass
Naplózva
Tupacko
WebPillangó

Adminisztrátor
Törzstag
*****
Nem elérhető Nem elérhető

Hozzászólások: 966


WWW
« 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
Tag
**
Nem elérhető Nem elérhető

Hozzászólások: 165


WWW
« 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
Tag
**
Nem elérhető Nem elérhető

Hozzászólások: 165


WWW
« 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..)

Kód:
<?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($jelszo0,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();
$frissitmysql_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
WebPillangó

Adminisztrátor
Törzstag
*****
Nem elérhető Nem elérhető

Hozzászólások: 966


WWW
« 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:

Kód:
<?php
  
if ( isset($_SESSION['valtozo']) ){
    echo 
"vedett";
  }

  
//session_register helyett siman:

  
$_SESSION['valtozo'] = "a valtozo erteke";
?>

Naplózva
TreamX
Tag
**
Nem elérhető Nem elérhető

Hozzászólások: 165


WWW
« Válasz #51 Dátum: 2008. 02. 14. - 14:10:06 »

Bocsi, ezt nem nagyon értem.  Zavart
Naplózva
Tupacko
WebPillangó

Adminisztrátor
Törzstag
*****
Nem elérhető Nem elérhető

Hozzászólások: 966


WWW
« Válasz #52 Dátum: 2008. 02. 14. - 14:43:31 »

Melyik reszet nem erted? Szomorú 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
Tag
**
Nem elérhető Nem elérhető

Hozzászólások: 165


WWW
« 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ő:
Kód:
<?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évvagy jelszó"
}
session_write_close()
?>


Bár szerintem ez egy bejelentkezésnek elég kevés
Naplózva
Tupacko
WebPillangó

Adminisztrátor
Törzstag
*****
Nem elérhető Nem elérhető

Hozzászólások: 966


WWW
« 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
Tag
**
Nem elérhető Nem elérhető

Hozzászólások: 165


WWW
« 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ó?
Kód:
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
WebPillangó

Adminisztrátor
Törzstag
*****
Nem elérhető Nem elérhető

Hozzászólások: 966


WWW
« 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:

Kód:
<?php
  
if ( isset($_POST['nev']) ){ // ha van deklaralva
  
}

  if ( 
strlen($_POST['nev']) > ){ // ha valoban van benne valami
  
}

  if ( 
is_numeric($_POST['szam_mezo']) ){ // amennyiben szamot varsz
  
}
?>

Naplózva
TreamX
Tag
**
Nem elérhető Nem elérhető

Hozzászólások: 165


WWW
« 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?

Kód:
<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'] ) > && strlen($_POST['pass']) > && strlen($_POST['mail'])  > )
{
session_register();
}
else {
session_unregister();
echo 
"Nem töltöttél ki mindden mezőt";
}
}
session_write_close()
?>

</body>
Naplózva
Tupacko
WebPillangó

Adminisztrátor
Törzstag
*****
Nem elérhető Nem elérhető

Hozzászólások: 966


WWW
« 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:

Kód:
$_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
Tag
**
Nem elérhető Nem elérhető

Hozzászólások: 165


WWW
« 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:
Kód:
<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'] ) > && strlen($_POST['pass']) > && strlen($_POST['mail'])  > )
{
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:
Kód:
<?php
echo $_SESSION['nick'];
?>

De valamiért nem műküdik Szomorú
« Utoljára szerkesztve: 2008. 02. 14. - 18:48:38 írta TreamX » Naplózva
Oldalak: 1 2 [3] 4 5 ... 29   Fel
  Nyomtatás  
 
Ugrás: