Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

Problema cu sesiunile
Vezi mesajul original
Du-te la pagina 1, 2  Următoare
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHP Incepători
Subiectul anterior :: Subiectul următor  
Autor Mesaj
Tudy



Data înscrierii: 22/Sep/2004
Mesaje: 482
Locație: Cluj-Napoca, Romania

Trimis: Sâm Apr 30, 2005 12:58 pm    Titlul subiectului: Problema cu sesiunile  

Stiu ca s-a mai vorbit despre asa ceva dar am intampinat si eu o problema si as dori o mica solutie pentru ea. Multumesc mult.

Problema mea este urmatoarea :

Am un formular cu user si parola care duce la login.php.

login.php arata asa (cred ca acesta este gresit si va rog sa-mi spuneti unde este greseala)

<? session_start(); if($_POST['nume']==""||$_POST['parola']=="") {     print 'Trebuie sa completati amandoua campurile! <br><a href="index.php">Inapoi </a>';     exit; } include("config.php"); $parola=$_POST['parola']; $sql="select users from celtis where nume='".$_POST['nume']."'and parola='".$parola."' "; $r=mysql_query($sql); //$row=mysql_fetch_array($r); $nr = mysql_num_rows($r); if ($nr == 0) {     echo 'Nume sau parola gresita! <a href="index.php?p=admin">Inapoi </a>';     exit; } session_start(); $_SESSION['nume']=$_POST['nume']; $_SESSION['parola']=$parola; header("Location: admin.php"); ?>

Rezultatul care mi-l da e ca tot timpul imi zice parola gresita, chiar daca e data corect (de asemenea, in baza de date este totul cum trebuie)
Sus  
bld



Data înscrierii: 01/Sep/2004
Mesaje: 284
Locație: Alaska

Trimis: Sâm Apr 30, 2005 1:33 pm    Titlul subiectului:  

banuiesc ca ai gresit la formular...
ai asa ceva in formular:
an style="color: #000000"><?php <input type="password" name="parola"> <input type="text" name="nume"> 
:?:
Sus  
bld



Data înscrierii: 01/Sep/2004
Mesaje: 284
Locație: Alaska

Trimis: Sâm Apr 30, 2005 1:38 pm    Titlul subiectului:  

P.S: scriptul acesta este pentru agentia ta de webdesign?
Sau faceti si webdevelopment pe acolo?
Sus  
Tudy



Data înscrierii: 22/Sep/2004
Mesaje: 482
Locație: Cluj-Napoca, Romania

Trimis: Sâm Apr 30, 2005 1:53 pm    Titlul subiectului:  

Nu, este pentru un mic site care il fac acuma...

Am in formular ceva de genul :

an style="color: #000000"><?php <form name="xxx" method="post" action="login.php"> <input type="text" name="nume"> <input type="password" name="parola"> 

Credeti ca de la formular e problema?
Sus  
Pirahna



Data înscrierii: 22/Aug/2004
Mesaje: 4526
Locație: la birou

Trimis: Sâm Apr 30, 2005 1:56 pm    Titlul subiectului:  

e de la if ...
parerea mea ...

Cod: if(isset($_POST['cacao']))
{
if(ce ai scris tu acolo)
{


}
}


sau daca ma uit mai bine e de la query ...
rearanjeaza-le un pic si eu cred ca o sa mearga ...
Sus  
Tudy



Data înscrierii: 22/Sep/2004
Mesaje: 482
Locație: Cluj-Napoca, Romania

Trimis: Sâm Apr 30, 2005 2:10 pm    Titlul subiectului:  

Am incercat. LA fel. Tot timpul imi da ca e incorecta.

Nu ai putea sa-mi dai tu un cod care sa functioneze? Ms mult
Sus  
bond



Data înscrierii: 15/Dec/2004
Mesaje: 201

Trimis: Sâm Apr 30, 2005 4:09 pm    Titlul subiectului:  

Nu stiu ce setezi in config asa ca sugerez sa pui Cod: include("config.php");
inainte de Cod: session_start(); Ar mai fi o idee sa faci:
Cod: echo $sql; si apoi sa rulezi sql-ul in phpmyadmin ca sa vezi ce returneaza.
Si inca ceva: de ce ai de doua ori Cod: session_start(); in cod?
Sus  
stealth



Data înscrierii: 21/Iun/2004
Mesaje: 304
Locație: Timisoara

Trimis: Dum Mai 01, 2005 9:59 pm    Titlul subiectului:  

Ai scris de 2 ori session_start();
si gandeste-te mai bine la vulnarabilitati de tip sql injection:
"select users from celtis where nume='".$_POST['nume']."'and parola='".$parola."' "

daca la nume si parola scrie -> x' OR 'a'='a

lasa spatiu inainte si dupa "and"

inlocuieste
Cod:
$r=mysql_query($sql);
//$row=mysql_fetch_array($r);
$nr = mysql_num_rows($r);
if ($nr == 0)
{
    echo 'Nume sau parola gresita! <a href="index.php?p=admin">Inapoi </a>';
    exit;
}

cu
Cod:
$r=mysql_query($sql);
if ($r)
{
    echo 'Nume sau parola gresita! <a href="index.php?p=admin">Inapoi </a>';
    exit;
}
Sus  
exael



Data înscrierii: 27/Apr/2005
Mesaje: 282
Locație: Slavui City

Trimis: Lun Mai 02, 2005 12:32 am    Titlul subiectului:  

ia incearca asta

formular.html

Cod: <html>
<form action="login.php" method="POST">
  <table>
  <tr>
    <td align="right">Nume: </td>
    <td><input type="text" name="nume"></td>
  </tr>
  <tr>
    <td align="right">Parola: </td>
   <td><input type="password" name="parola"></td>
  </tr>
  <tr>
    <td></td>
    <td><input type="submit" value="Autentificare"></td>
  </tr>
  </table>
</form>
</body>
</html>


login.php

Cod: <?
if($_POST['nume']==""||$_POST['parola']=="")
{
   print 'Trebuie sa completati amandoua campurile! <br><a href="index.php">Inapoi </a>';
   exit;
}
include("config.php");
$parolaEncriptata=md5($_POST['parola']);
$sql="select * from admin where admin_nume='".$_POST['nume']."'and admin_parola='".$parolaEncriptata."'";
$resursa=mysql_query($sql);
if(mysql_num_rows($resursa)!=1)
{
   echo 'Nume sau parola gresita! <a href="index.php">Inapoi </a>';
   exit;
}
session_start();
$_SESSION['nume_admin']=$_POST['nume'];
$_SESSION['parola_encriptata']=$parolaEncriptata;
$_SESSION['key_admin']=session_id();
header("location: admin.php");
?>
Sus  
Tudy



Data înscrierii: 22/Sep/2004
Mesaje: 482
Locație: Cluj-Napoca, Romania

Trimis: Lun Mai 02, 2005 7:46 pm    Titlul subiectului:  

Merci mult, baieti ! 8)
Sus  
Tudy



Data înscrierii: 22/Sep/2004
Mesaje: 482
Locație: Cluj-Napoca, Romania

Trimis: Mar Mai 03, 2005 2:05 pm    Titlul subiectului:  

Buna. Am reusit cat de cat dar am intampinat ceva :

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/tudy/public_html/new/index.php:7) in /home/tudy/public_html/new/admin/login.php on line 16

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/tudy/public_html/new/index.php:7) in /home/tudy/public_html/new/admin/login.php on line 16

Warning: Cannot modify header information - headers already sent by (output started at /home/tudy/public_html/new/index.php:7) in /home/tudy/public_html/new/admin/login.php on line 20

si nu imi apare ce e in admin.php.
Puteti sa ma ajutati si aici ? Multumesc
Sus  
Pirahna



Data înscrierii: 22/Aug/2004
Mesaje: 4526
Locație: la birou

Trimis: Mar Mai 03, 2005 3:27 pm    Titlul subiectului:  

pune

Cod: error_reporting(E_ERROR);
ini_set(“display_errors”, “off”);
Sus  
aurelian



Data înscrierii: 01/Iun/2003
Mesaje: 833
Locație: Bucuresti

Trimis: Mar Mai 03, 2005 8:33 pm    Titlul subiectului:  

Pirahna a scris: pune

Cod: error_reporting(E_ERROR);
ini_set(“display_errors”, “off”);

pff
Sus  
Tudy



Data înscrierii: 22/Sep/2004
Mesaje: 482
Locație: Cluj-Napoca, Romania

Trimis: Sâm Iun 04, 2005 11:49 am    Titlul subiectului:  

Am rezolvat cu logarea si merge.
Dar am o alta intrebare. Ar fi un fel de "acuma ce urmeaza?".

Adica,

Imi poate spune si mie cineva cam cum trebuie sa fac pentru a ramane tot timpul logat cand da pe alte butoane din meniu ? Si as vrea, ca inainte de a fi logat sa fie un meniu, iar dupa altul. (meniul e sa zicem un div in care se poate include o pagina meniulogout.php si meniulogin.php - adica meniul cand e logat si cand nu. se poate face cu GET ?)

Ce trebuie sa fac pentru a ramane logat la fiecare pagina, chiar daca dupaia tasteaza in url site-ul de la inceput. Multumesc anticipat.
Sus  
Pirahna



Data înscrierii: 22/Aug/2004
Mesaje: 4526
Locație: la birou

Trimis: Sâm Iun 04, 2005 12:11 pm    Titlul subiectului:  

pentru a ramane logat tot timpul joaca-te cu cookies (poate scrii si codul ca mi-a fost lene sincer sa fac asa ceva ... :D)

faza cu 2 pagini m-a suparat si pe mine vreo 2 zile pana i-am dat de cap cu o metoda simpla numita : IF

aka

if(isset($_SESSION['whatever']))
{
include "pagina1.php";
}
else include "pagina2.php";

sau

if($o_variabila_login==1)
{
include "pagina1.php";
}
else include "pagina2.php";

$o_variabila fiind 1 dupa ce e autentificat si 0 cand nu e ...



si pentru ca ai mai pus odata intrebarea , iti mai raspund odata : COOKIES :D
Sus  
PHPRomania Bot
Bot Member


Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google
Trimis: Mie Dec 26, 2007 7:01 pm   Titlul subiectului: Ad  

Sus  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHP Incepători Du-te la pagina 1, 2  Următoare
Pagina 1 din 2


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community