werkt deze login???

Status
Niet open voor verdere reacties.

trical

Gebruiker
Lid geworden
17 mrt 2007
Berichten
40
kan dit werken, of kom ik erdoor met elk paswoord?(en hoe lang is een sha1 ijgenlijk ms is er niet genoeg plaats in de db)

PHP:
<?

$username="xxx";
$password="xxx";
$database="xxx";
$localhost="mysql4.freehostia.com";
mysql_connect($localhost,$username,$password);

@mysql_select_db($database) or die( "Unable to select database");
$user=$_POST['username'];
$pass=$_POST['password'];
$pass=sha1(pass);

  $query = "SELECT * FROM user WHERE username =  '$user' AND password = '$pass' ";
  $result = mysql_query( $query ) or die( mysql_error() );
  if( mysql_num_rows( $result ) == 0 )
  {
    
    echo 'wrong username or password';
  }
  else
  {
   
	session_start();
    $_SESSION['user'] = '$user';
	print(" you will be redirected in 5 seconds");
	?>
	<META HTTP-EQUIV="Refresh"
      CONTENT="5; URL=main.php">
      <?
  }

?>
 
(en hoe lang is een sha1 ijgenlijk ms is er niet genoeg plaats in de db)
PHP-site
If the optional raw_output is set to TRUE, then the sha1 digest is instead returned in raw binary format with a length of 20, otherwise the returned value is a 40-character hexadecimal number. Defaults to FALSE.

Daarnaast zal je script een foutmelding geven betreffende de functie session_start();
Die functie verdient de voorkeur om helemaal bovenaan gezet te worden direct na de PHP-open-tag.

Ik begrijp eigenlijk niet waarom je vraagt aan ons of dit zal gaan werken.

Waarom voer je het niet gewoon uit?

Een simpele echo of beter nog de functie strlen() zou je zo kunnen vertellen hoelang een SHA1-encryptie wordt.
 
ik wou zeker zijn of het wel veilig genoeg was... nu het geeft geen fouten dus ik mag de
session_start();
wel laten staan
en als ik nu naar da pagina main ga dan moet ik daar gewoon de variabelle user uit dat session ding halen , en dan ben ik vertrokken? of werkt het zo niet?
 
Daarnaast zal je script een foutmelding geven betreffende de functie session_start();
Die functie verdient de voorkeur om helemaal bovenaan gezet te worden direct na de PHP-open-tag.

Volgens mij geeft het script enkel een foutmelding wanneer er output boven de session_start() staat toch? :)
 
Volgens mij geeft het script enkel een foutmelding wanneer er output boven de session_start() staat toch? :)

output die gebruik maakt van session variabellen of elke output?:p
en moet ik op mijn main page opnieuw session start doen of niet?
 
@AJT: Klopt inderdaad, zo grondig had ik het script niet doorgelezen. Ik zag gewoon de session_start(); halverwege staan en de kans acht ik dan groot dat die een foutmelding gaat geven.

@trical: elke output.

Op elke pagina waarin je sessies wilt gebruiken is session_start(); noodzakelijk. Tenzij je gebruik maakt van een include.
Voorbeeld:
pagina1.php
PHP:
<?php
session_start();
include('pagina2.php');
//etc
?>
In pagina2.php hoef je nu dus geen session_start(); neer te zetten tenzij je pagina2.php ook apart aanroept.

Dus bij http://jesite.domein/pagina1.php krijg je geen foutmeldingen maar bij http://jesite.domein/pagina2.php zou je die wel krijgen.
 
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/www/2pro4u.freehostia.com/main.php:8) in /home/www/2pro4u.freehostia.com/main.php on line 9

iets zoals dit:p ?? (het probleem is dat de session_start() net onder mijn php tags staat en toch deze fout geeft)
 
Laatst bewerkt:
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/www/2pro4u.freehostia.com/main.php:8) in /home/www/2pro4u.freehostia.com/main.php on line 9

iets zoals dit:p ?? (het probleem is dat de session_start() net onder mijn php tags staat en toch deze fout geeft)

Wordt dit bestand nog ergens anders geïnclude? Je moet ervoor zorgen dat session_start() als _eerste_ in je hoofdscript aangeroepen wordt en dus níet bovenaan een script dat alsnog geïnclude wordt.

Stel: index.php geeft allemaal HTML weer en die include halverwege ergens "blaat.php". In blaat.php staat de session_start() helemaal bovenaan, maar dan krijg je alsnog allemaal errors.


@ThaDevil: ik ben het met je eens dat 'ie gewoon voor de netheid helemaal bovenaan moet staan :)
 
@ThaDevil: ik ben het met je eens dat 'ie gewoon voor de netheid helemaal bovenaan moet staan :)

Niet alleen netjes ook voorkomt het errors :)

Waarschijnlijk komt deze error door een include
 
het is dus opgelost, bedankt allemaal(voortaan staat op elke pagina helemaal bovenaan session_start() :p:D:thumb:
 
ik heb net gemerkt dat ik met eender welk paswoord kan inloggen...
 
PHP:
$pass=sha1(pass);
Wijzigen in
PHP:
$pass=sha1($pass);
 
En vergeet zeker niet :
PHP:
$user=mysql_real_escape_string($_POST['user']);
Het is anders wel heel makkelijk om zonder gebruikersnaam & wachtwoord in te loggen
en om eventuele mysql injections te doen
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan