ugrás a tartalomhoz

Belepes Rendszer

tysonkiller · 2011. Jan. 31. (H), 13.49
Sziasztok,mar regi vagyam egy sajat belepo rendszer.Ezt nagyabol megis oldottam de a PHP ban nem talalok hibat vagy vak vagyok es nem latom.A segitsegeteket kernem ,hogy hol lehet a hiba vagy hibak a PHP kod:
<?php

session_start();
include ('config.php');
//MYSQL
$passw = md5($_POST['pass']);
$db = mysql_num_rows(mysql_query("SELECT * FROM `zl` WHERE user = '".mysql_real_escape_string($_POST['nev'])."' AND pass = '".mysql_real_escape_string($passw)."'"));
if ($db == 1){
$_SESSION['nev'] = $_POST['nev'];
header ('Location:'.$location);
}else{
header ('Location:index.php');
}
?>


(bocsanat az ekezetekert)
 
1

Mi a probléma

Poetro · 2011. Jan. 31. (H), 15.22
Mi a probléma? Milyen hibaüzenetet kapsz? Mit vársz, mi történjen? Helyette mi történik? Miért nem használod a kód színezőt?
2

A problema

tysonkiller · 2011. Jan. 31. (H), 15.39
A problema ,hogy nem enged belepni,ezt a hibauzenetet kapom:

Warning: session_start() [function.session-start]: open(/tmp/sess_bb1888c204ffdcacefd45e3b87688b1f, O_RDWR) failed: No such file or directory (2) in /login2.php on line 3

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /login2.php:3) in /login2.php on line 3

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /login2.php:3) in /login2.php on line 3

Warning: Cannot modify header information - headers already sent by (output started at /login2.php:3) in /login2.php on line 12

Warning: Unknown: open(/tmp/sess_bb1888c204ffdcacefd45e3b87688b1f, O_RDWR) failed: No such file or directory (2) in Unknown on line 0

Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp) in Unknown on line 0


Azt varmam hogy be tugyak lepni
Nagyon koszonom hogy visza irtal:D
3

Nincs jól beállítva

Poetro · 2011. Jan. 31. (H), 16.07
A PHP telepítés valószínűleg nincsen jól beállítva, és a /tmp könyvtárba szeretne írni, de az nem létezik vagy nincs hozzáférése a PHP-nek ahhoz a könyvtárhoz. Innentől kezdve nem fog működni a session kezelés, a többi hibaüzenetet is ugyanez generálja. Beszélj a rendszergazdával, és írd le neki a kapott hibaüzeneteket.
4

Ilyen nincs...

tysonkiller · 2011. Jan. 31. (H), 16.32
Mar ket hetemet azal toltom hogy egy fos login redszert keszitsek.A neten vegig neztem minden login rendszert es peldaul a hozaszolasban azt irtak hogy jol mukodik minden csak egy baj van vele hogy nem megy.Az egesz interneten nem talalni egy szimpla login rendszert nekem csak anyi kellene ,hogy valaki regisztralni tudjon aztan belepni.Nem kellenek ilyen dolgok mind peldaul elfelejetettem a jelszot vagy vallami egy sima belepes.php ebben egy form Felhasznalonev es Jelszo textel es egy belepes gomb.Ja meg egy ellenor is jolfogna es meg persze a regisztracio.php abban is egy form benne ami kell.Na szoval csak enyit akartam volna de nem sikerult es onliine segitseget sem talaltam aki ert jol az ilyen dolgokhoz.Aki tudna segiteni az vegyen fel az ID m killer_tyson##kukac##yahoo.com
Elore is koszonom szepen.
5

ATW?

janoszen · 2011. Jan. 31. (H), 17.32
Ez nem véletlenül ATW-s ingyenes tárhely?
6

Beállítás

Poetro · 2011. Jan. 31. (H), 17.32
Amíg a PHP nincs rendesen beállítva, addig nem is fog működni. Mit mondott a rendszergazda, aki a PHP-t telepítette?
7

Ujbol

tysonkiller · 2011. Jan. 31. (H), 18.36
Ujbolkeztem egy egyszerubb login rendszert de aval is baj van tutorial alapjan csinaltam.Fel is toltotem ftp re de ez egy sima login nincs regisztracio benne.Mikor be irom a felhasznalo nevet es a jelszot akor ki ad egy hibauzenetet hogy baj van a login_success el itt a login_success:
<?
session_start();
if(!session_is_registered(myusername)){
header("location:main_login.php");
}
?>

<html>
<body>
Login Successful
</body>
</html>
evel lehet gond?vagy az adatbazisal?az adatbazis a tutorial alapjan bealitottam.
8

Ja es..

tysonkiller · 2011. Jan. 31. (H), 18.43
A hibauzenetet el is felejtetem:





Warning: session_start() [function.session-start]: open(/tmp/sess_fd6d6ea1b9fcba324f66e96671d5e61c, O_RDWR) failed: No such file or directory (2) in /login_success.php on line 2

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /login_success.php:2) in /login_success.php on line 2

Warning: Cannot modify header information - headers already sent by (output started at /login_success.php:2) in /login_success.php on line 4
Login Successful
Warning: Unknown: open(/tmp/sess_fd6d6ea1b9fcba324f66e96671d5e61c, O_RDWR) failed: No such file or directory (2) in Unknown on line 0

Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp) in Unknown on line 0
9

A probléma ugyanaz

Poetro · 2011. Jan. 31. (H), 18.49
Ameddig a PHP nem lesz rendesen beállítva, addig semmilyen session-t használó beléptető rendszer nem fog működni. Pont.
10

:D

tysonkiller · 2011. Jan. 31. (H), 19.06
Poetro ha meg kerlek szepen felveszel mert itt a komunikacio elleg lasu....az ID killer_tyson##kukac##yahoo.com...Es ha fel veszel el mondanad nekem hogyan alicsam be a php vagy mond ell itt.Nagyon szeretnek egy ilyen login rendszert vagyis csak megerteni a logikajat es ha sikerul megoldanom ujbol irok egy sajat csak sajat loginrendszert es ahoz egy regisztraciot is remelem az nem lesz enyire bonyolult...Elore is kosz szepen szeretnem mar lezarni ezt a temat.
11

php.ini

Poetro · 2011. Jan. 31. (H), 19.16
A php.ini-ben kell beállítani a session.save_path értékét egy olyan könyvtárra, ahová a PHP írni tud. Ez operációs rendszer, felhasználói jogosultságok, HTTP szerver stb. függő.

off:
És nem foglak felvenni sehova (nem mintha írtad volna, hogy hova). Aki lusta, illetve nem fizeti meg az árát, az nem érdemli meg, hogy ő diktálja a feltételeket.
12

m1

tysonkiller · 2011. Jan. 31. (H), 19.32
Nem gondoltam volna hogy enyire bonyolult egy szimpla login rendszert kesziteni es azt se hogy enyire nehez egy kibaszott segitseget kapni gondolj bele milyen szar erzes ha helyembe lennel egesz nap keresel egy szar loginrendszert es nem talalsz kersz a forumon egy kis segitseget es nem kapsz:P.Gondolj egy picit bele es nem azt kertem hogy ird le helyettem az egeszet csak anyit kertem hogy segics.Kosz szepen sokat segitetel(vagyis semit ugyan ott tartok ahol vagyok)
13

Nem bonyolult

Poetro · 2011. Jan. 31. (H), 19.42
Amennyiben a PHP be van állítva. Telepíts a gépedre egy XAMPP, WampServer, EasyPHP vagy hasonló rendszert, amennyiben Windows alatt vagy, és működni fog (Linux alatt pedig használd a disztribúciód csomagkezelőjét). De nem írtad le, milyen környezetben, hol, milyen URL-en NEM működik, így ebben nem tudok segíteni. Arra se válaszoltál, hogy mit mondott a rendszergazda a fenti kérdésre, mert ez leginkább nem a programod hibája, hanem a futtatási környezet beállítási problémája. Hangsúlyozom, semmilyen szimpla login rendszer NEM fog működni, ameddig ez a környezet nincsen megfelelően beállítva, és távgyógyításban ez nem orvosolható. Információ nélkül nem lesz megoldás.
14

valaszok

tysonkiller · 2011. Jan. 31. (H), 21.11
Sok valaszt nem tudok adni mert nem ertek anyira ezekhez inkabb a grafikahoz ertek mar elegge regota modelezek.ATW s oldalra akarok egy login rendszert kesziteni de nem sikerult.Nezegettem atw-n oldalakat es talaltam par mukodokepes login rendszeres oldalakat ezert akarok enis csinalni egy grafkai oldal ahol a kesz munkakat kep formatumban fel lehesen tolteni es lesz forum is meg chat is na es ezert szeretem volna egy login rendszert kesziteni.le toltotem egy kesz alitolag mukodokepes szimpla login rendszer regisztracio nincsen.ahogy a tulajdonos aki keszitete a kis progit le irta hogyan alicsuk be a mysql be is allitotam mindent.Mikor be irom az urt be jon a FORM es be irom a megadott felhasznalonevet es jelszot mikor ra kattolok a mehet gombra akor ki ad egy hibauzenetet.Azt szeretnem ha valaki le irna mi a gond es hogy olgyam meg mert amitt itt leirtatok az nekem kinai ezert akartam hogy felvegyetek.Ha valaki csinalna egy tutorialt a-z ig es mukodjonis azt nagyon megkoszonem nem kell elbonyolittaani.Vagy meg ugy is meglehet oldani hogy el magyaraza nekem hogyan javicsam ki a hibat.
15

Megoldva

tysonkiller · 2011. Jan. 31. (H), 21.34
A problema megoldva ezek voltak a hibak:
Három dolog van, amire oda kell figyelni.
1) Az elsõ parancs, amit elküldesz, az a session_start() legyen!
2) Rakj elé egy @ jelet! Valahogy így fog kinézni:
<?
@session_start();
//forráskód
?>
3) Csinálj a tárhelyeden egy tmp könyvtárat!
Nekem ezek után mûködött a dolog.
23

Tessék: "kibaszott segítség"

imdawe · 2011. Dec. 11. (V), 10.38
Tessék: "kibaszott segítség" ként itt egy rövidke kód útmutatónak :)
Azért azt nem tanácsolom hogy copy paste módon bemásold magadnak, lehet nem járnál jól egy rosszindulatú látogató után.
Gyorsba írnám is.

<?php
$sql = new mysqli("host", "user", "pass", "db");
if(array_key_exists('login', $_POST))
 {
 $user = $sql->Query("SELECT id, password FROM users WHERE username='".$_POST['username']."'");
 if($user->num_rows == 0)
  {
  echo "Nincs ilyen felhasználó";
  }else{
  $user = $user->Fetch_object();
  if($user->password == $_POST['password'])
   {
   $chars = "0123456789qwertzuiopasdfghjklyxcvbnm";
   for($i=0;$i<50;++$i)
   $key .= $chars[rand(0, strlen($chars))];
   setcookie("userkey", $key, time()+(60*24*7), "/")
   $sql->Query("UPDATE users SET userkey='".key."' WHERE id='".$user->id."'");
   header("Location:".$_SERVER['REQUEST_URI']);
  }else{
   echo "Hibás jelszó";
  }
 } 
if($sql->Query("SELECT * FROM users WHERE userkey='".$_COOKIE['userkey']."'")->num_rows == 1)
 {
 echo "Bevagy jelentkezve!";
 }
?>

Üdv Dénes.
24

Ez mire jó?

Pepita · 2011. Dec. 16. (P), 03.41
Ezért uppoltad a témát?
Minek?
16

ATW tmp

Thom · 2011. Feb. 1. (K), 09.31
Azt írod lentebb, hogy az ATW tárhelyszolgáltatónál jelentkezett a hiba. Ott magam is belefutottam ilyen problémába egyszer.
A tárhelyed gyökerében létre kell hoznod egy tmp nevű mappát és adj neki írásjogot. Ez után meg kell szűnnie a hibának.
Ha figyelmesen elolvasod az ATW helpjét, meg fogod találni a hibajelenséget és a javítást, leírják..
17

Ez egy működő kód.Én irtam és teszteltem!

mauladam · 2011. Feb. 7. (H), 23.21
Login.html

<html>

<head>

<title>Belépés</title>

</head>

<body>

<form id="legin" name="login" method="post" action="log.php">
<table width="295" align="center">
<tr>
<td><div align="center">Felhasználónév:
  <input name="felhasznalonev" type="text" size="50">
</div></td>
</tr>
<tr>
<td height="74"><div align="center">Jelszó:
  <input name="jelszo" type="password" size="50">
</div></td>
</tr>
</table>
<p align="center">
  <label>
  <input type="submit" name="Submit" value="Bel&eacute;p&eacute;s">
  </label>
</p>
</form>

</body>

</html>
Log.php

<?php
session_start();

function unapletezik($felhasznalonev, $jelszo){
    $eredmenyem= mysql_query("select COUNT(*) from users WHERE felhasznalonev='$felhasznalonev' and jelszo='$jelszo'") or die(mysql_error());
return mysql_result($eredmenyem ,0);
}

$felhasznalonev= $_POST['felhasznalonev'];
$jelszo= $_POST['jelszo'];

$kapcsolat= mysql_connect("localhost","felh","jelszo");
$adatbazis= mysql_select_db("dbnev", $kapcsolat);
$errors = array();

if (empty($felhasznalonev) or empty($jelszo))
{
$errors[]= "A felhasználónév és/vagy jelszó mező üres! <br />";
} 
if (unapletezik($felhasznalonev,$jelszo) < 1)
{
$errors[]= "Hibás felhasználónév/jelszó!";
} 
if(count($errors) == 0)
{
    mysql_close($kapcsolat);
    print "Sikeres belépés <br /> Belépve: " . $felhasznalonev . " !<br />";
    $_SESSION["belepve"] = true;
    print "<a href='index.php'>Tovább a kezdőlapra!</a>";
}
else
{
foreach($errors as $error)
        echo $error;
}
?>
Register.html

<html>

<head>

<title></title>

</head>

 
 <body>
 <div align="center">Regisztr&aacute;ci&oacute;</div>
 <form id="regisztracio" method="post" action="reg.php">
 <p align="center">
 
 <table width="800" height="346" border="0" align="center" cellpadding="1" cellspacing="1">
   <tr>
     <td width="220"><div align="right">N&eacute;v</div></td>
     <td width="573"><label>
       <input name="nev" type="text" id="nev" size="40">
     </label></td>
   </tr>
   <tr>
     <td><div align="right">Felhaszn&aacute;l&oacute;n&eacute;v:</div></td>
     <td><label>
       <input name="felhasznalonev" type="text" id="felhasznalonev" size="40">
     </label></td>
   </tr>
   <tr>
     <td><div align="right">Jelsz&oacute;:</div></td>
     <td><label>
       <input name="jelszo" type="password" id="jelszo" size="40">
     </label></td>
   </tr>
   <tr>
     <td><div align="right">Jelsz&oacute; m&eacute;gegyszer: </div></td>
     <td><label>
       <input name="jelszo2" type="password" id="jelszo2" size="40">
     </label></td>
   </tr>
   <tr>
     <td><div align="right">E-mail c&iacute;m: </div></td>
     <td><label>
       <input name="email" type="text" id="email" size="40">
     </label></td>
   </tr>
   <tr>
     <td height="144"><div align="right">Bemutatkoz&aacute;s:</div></td>
     <td><label>
     <textarea name="bemutatkozas" cols="37" rows="5" id="bemutatkozas"></textarea>
     <br>
     <input type="submit" name="Submit" value="Regisztr&aacute;lok">
     </label></td>
   </tr>
 </table>
 </form>
 
 </body>
 
 </html>
Log.php

<?php
session_start();

function unapletezik($felhasznalonev, $jelszo){
    $eredmenyem= mysql_query("select COUNT(*) from users WHERE felhasznalonev='$felhasznalonev' and jelszo='$jelszo'") or die(mysql_error());
return mysql_result($eredmenyem ,0);
}

$felhasznalonev= $_POST['felhasznalonev'];
$jelszo= $_POST['jelszo'];

$kapcsolat= mysql_connect("localhost","felh","jelszo");
$adatbazis= mysql_select_db("dbnev", $kapcsolat);
$errors = array();

if (empty($felhasznalonev) or empty($jelszo))
{
$errors[]= "A felhasználónév és/vagy jelszó mező üres! <br />";
} 
if (unapletezik($felhasznalonev,$jelszo) < 1)
{
$errors[]= "Hibás felhasználónév/jelszó!";
} 
if(count($errors) == 0)
{
    mysql_close($kapcsolat);
    print "Sikeres belépés <br /> Belépve: " . $felhasznalonev . " !<br />";
    $_SESSION["belepve"] = true;
    print "<a href='index.php'>Tovább a kezdőlapra!</a>";
}
else
{
foreach($errors as $error)
        echo $error;
}
?>
Index.php

<?php
session_start();

if (isset($_SESSION["belepve"]))
{
Print "Ha ezt olvasod akkor be vagy lépve! <br> <a href='logout.php'>Kijelentkezés</a>";
}

else
{
Print "Az oldal tartalma csak a belépett felhasználóknak érhető el! 
<br> <a href='register.html'>Regisztrálj most!</a> vagy <a href='login.html'>Lépj be</a>";
}
?>
Logout.php

<?php

session_start();

unset($_SESSION['belepve']);

print "Kijelentkeztél! <a href='index.php'>Tovább a fő oldalra!</a>";

?>
Remélem ezzel megoldódik a probléma...
18

Nem jó

Poetro · 2011. Feb. 7. (H), 23.28
Én erre bizony nem bíznám rá a bejelentkezést. Képzeld el, hogy a felhasználó azt írja be a jelszó mezőbe, hogy jelszo' OR 1 és már be is jelentekezett.
19

Próbáld ki...

mauladam · 2011. Feb. 7. (H), 23.37
Ide van feltöltve:

eoldal.eu

Nekem működik...
20

Magic quotes

Poetro · 2011. Feb. 8. (K), 00.09
Mivel be van kapcsolva a magic quotes, ezért ez nem működik, viszont! helyette bejönnek más problémák majd, valamint ha valaki valamilyen olyan karaktert használ a nevében, illetve jelszavában, amit a magic quotes kódol, akkor nem tud belépni.

A másik dolog, hogy a szerverek nagy részén nincs is bekapcsolva a magic quotes mert csak a baj van vele.
21

Ok. Igazad van.

mauladam · 2011. Feb. 10. (Cs), 16.02
Igazad van, de még nincs benne megadható karaktereket korlátozó kód és akkor menni fog.
22

Ha a sessionokal problémád

imdawe · 2011. Feb. 10. (Cs), 19.13
Ha a sessionokal problémád van miért nem használsz sütiket?
Session is ugyanúgy sütivel azonosítja a felhasználót.
Egy rsa kulcsot eltárolsz sütiben és azzal párosítod össze a felhasználót hogy valóban ő van belépve. Még 1 előnye van hogy rákényszerülsz arra hogy oldal letöltésenként ellenőrizd a felhasználót. Én így oldottam meg. Szerintem ez egy precíz és egyszerű megoldás:)