Inlog Systeem

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ventilatiesysteem Productontwikkelaar HBO WO Verwa

Samengevat: Zij bieden flexibele ventilatiematerialen, geluidsdempers, rookgasafvoer producten en industrieslangen. Ben jij een technisch productontwikkelaar? Heb jij ervaring met het ontwikkelen van nieuwe producten? Vaste baan: Technisch Productontwikkelaar HBO WO €3.000 - €4.000 Zij bieden een variëteit aan flexibele ventilatiematerialen, geluiddempers, rookgasafvoer producten, industrieslangen en ventilatieslangen voor de scheepsbouw. Met slimme en innovatieve materialen zorgen wij voor een gezonde en frisse leefomgeving. Deze werkgever is een organisatie die volop in ontwikkeling is met hardwerkende collega's. Dit geeft goede ontwikkelingsmogelijkheden. De branche van dit bedrijf is Techniek en Engineering. Functie: Voor de vacature als Technisch Productontwikkelaar Ede Gld HBO WO ga

Bekijk vacature »

Stefan Weck

Stefan Weck

06/09/2010 16:23:19
Quote Anchor link
Hallo allemaal,

ik probeer een login systeem te maken voor mijn website. Maar om de een of andere reden werkt de volgende code niet

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
if(isset($_GET['action']) && ($_GET['action'] == "login")){

  $Profile_Name = $_POST['Profile_Name'];
  $Profile_Password = $_POST['Profile_Password'];
  echo $Profile_Name;
  echo "<br/>";
  echo $Profile_Password;
  echo "<br/>";

  $Query_Login = mysql_query("SELECT Profile_Name FROM DB_Profiles WHERE Profile_Name ='$Profile_Name'", $connection);
    $Data_Login = mysql_fetch_array($Query_Login);
    
    echo $Data_Login['Profile_Name'];
    echo "<br/>";
  
  if(mysql_num_rows($Data_Login) < 1){

      die( 'Login is not valid!' );

   }
else{

      // login is geldig
     $_SESSION['Profile_Name'] = $Profile_Name;
     $_SESSION['Profile_Password'] = $Profile_Password;
     header( 'administrator.php' );
  }
}


?>


mysql_num_rows lijkt niet te werken, de rest van de code voert hij allemaal prima uit, en ik krijg ook steeds een echo terug. Maar op dat punt geeft hij altijd Login is not valid...

Alvast bedankt!
Gewijzigd op 06/09/2010 16:23:51 door Stefan Weck
 
PHP hulp

PHP hulp

20/04/2024 09:42:34
 
- Ariën  -
Beheerder

- Ariën -

06/09/2010 16:30:58
Quote Anchor link
if(mysql_num_rows($Query_Login) < 1){
Gebruik deze, dit moet werken.

Verder wat tips:
- Let op SQL Injection. Je bent erg jijik wat fout doe ga je toch ook niet dood.
- Wat is het nut achter variabelen overnemen:
$Profile_Name = $_POST['Profile_Name'];
- Variabelen buiten quotes. We kunnen het niet vaak genoeg zeggen ;-)
 
Niek s

niek s

06/09/2010 16:31:06
Quote Anchor link
Eeeeh....
Wat moet die header doen?
En: Als je de username weet kom je hier altijd in, want je checkt niet op password?
En: lees eens iets over variabelen buiten quotes, etc.

Als je dit stuk code netjes hebt gemaakt en het fatsoenlijk kan lezen kun je misschien ook beslissen wat er fout gaat.
Foutmelding?
 
Milo S

Milo S

06/09/2010 17:25:35
Quote Anchor link
Er zijn zoveel topic over hoe je een inlog systeem maakt, Niels & ik hebben beide laatst in 1 topic allebei een inlog systeem gemaakt gebruik de search ;).
 
Stefan Weck

Stefan Weck

06/09/2010 19:15:35
Quote Anchor link
Aar anoniem op 06/09/2010 16:30:58:
if(mysql_num_rows($Query_Login) < 1){
Gebruik deze, dit moet werken.

Verder wat tips:
- Let op SQL Injection. Je bent erg jijik wat fout doe ga je toch ook niet dood.
- Wat is het nut achter variabelen overnemen:
$Profile_Name = $_POST['Profile_Name'];
- Variabelen buiten quotes. We kunnen het niet vaak genoeg zeggen ;-)


Nou ik ben sinds een maandje of 2 echt met PHP bezig, en heb het merendeels mezelf aangeleerd. Daarom wil ik niet hier van de site een login script pakken en die gebruiken, want dan zal het wel werken. Ik wil echt zelf begrijpen hoe en wat.

En - Wat is het nut achter variabelen overnemen:
$Profile_Name = $_POST['Profile_Name'];

Dat is toch beter om te doen? Ipv telkens $_POST neer te zetten?

En hebben jullie dan een goede link/tutorial hier om m'n scripts wat veiliger te maken?
Heb ook erg last van spambots :(

Alvast hartelijk bedankt!
 
Dalando De Zuil

Dalando De Zuil

06/09/2010 20:04:27
Quote Anchor link
Stefan Weck op 06/09/2010 19:15:35:
Aar anoniem op 06/09/2010 16:30:58:
if(mysql_num_rows($Query_Login) < 1){
Gebruik deze, dit moet werken.

Verder wat tips:
- Let op SQL Injection. Je bent erg jijik wat fout doe ga je toch ook niet dood.
- Wat is het nut achter variabelen overnemen:
$Profile_Name = $_POST['Profile_Name'];
- Variabelen buiten quotes. We kunnen het niet vaak genoeg zeggen ;-)


Nou ik ben sinds een maandje of 2 echt met PHP bezig, en heb het merendeels mezelf aangeleerd. Daarom wil ik niet hier van de site een login script pakken en die gebruiken, want dan zal het wel werken. Ik wil echt zelf begrijpen hoe en wat.

En - Wat is het nut achter variabelen overnemen:
$Profile_Name = $_POST['Profile_Name'];

Dat is toch beter om te doen? Ipv telkens $_POST neer te zetten?



Nee, code wasting.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php

// Fout:

$user = $_POST['USER'];

if($user){

    // Enz...

}

// Maar wat goed is:

if($_POST['USER']){

    // Enz...

}
?>


Quote:
En hebben jullie dan een goede link/tutorial hier om m'n scripts wat veiliger te maken?
Heb ook erg last van spambots :(

Alvast hartelijk bedankt!


http://php.net/manual/en/function.mysql-real-escape-string.php
http://php.net/manual/en/function.htmlentities.php

Succes!
 
Niels K

Niels K

06/09/2010 21:02:56
Quote Anchor link
mysql_real_escape_string voor spambots?
Hoort dat bij de dalando release? :)

Ik kreeg pas geleden de tip akismet.
Voor de rest wel even kijken naar de linkjes die dalando geeft, want die zijn belangrijk.

Verder snap ik het volgende niet. Om het formulier te controleren gebruik je:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
if(isset($_GET['action']) && ($_GET['action'] == "login")){
?>

En voor de rest ga je verder op $_POST?
Controleren of de pagina zichzelf heeft aangeroepen doen we zo:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if( $_SERVER['REQUEST_METHOD'] == 'POST' ) {
    // hier de rest van je code
}
?>

Ook kan je nog achter de 'POST' dit plaatsen
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
 == 'POST' && isset( $_POST['username'], $_POST['password'] )
?>

Je snapt wel, alle formulier variablen.

Succes, als je vragen hebt, schroom je niet om het hier te vragen:)
Gewijzigd op 06/09/2010 21:03:46 door Niels K
 
Crude Oil

Crude Oil

06/09/2010 21:05:30
Quote Anchor link
session_start() moet er toch ook bij?
 
Stefan Weck

Stefan Weck

06/09/2010 22:05:33
Quote Anchor link
Ok ik ben nu bezig het stukje aan te passen en de nieuwe technieken van jullie toe te passen.

ik heb alleen 1 probleem,
Hoe schrijf ik dit stukje dan goed?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
  WHERE Profile_Name =$_POST['Profile_Name']
                             AND Profile_Password =$_POST['Profile_Password']"


Ik heb geen idee hoe ik de Post variables correct daar kan neerzetten.

En bedankt voor iedereen die geholpen heeft tot nu toe!
 
Elio vp

Elio vp

06/09/2010 22:12:48
Quote Anchor link
maak van die post variables eerst en vooral al eens een gewone variable

$profileName = $_POST['Profile_Name'];
$profilePass = $_POST['Profile_Password'];

Das al beetje netter scripten :)
Gewijzigd op 06/09/2010 22:23:53 door Elio vp
 
Stefan Weck

Stefan Weck

06/09/2010 22:25:43
Quote Anchor link
Elio vp op 06/09/2010 22:12:48:
maak van die post variables eerst en vooral al eens een gewone variable

$profileName = $_POST['Profile_Name'];
$profilePass = $_POST['Profile_Password'];

Das al beetje netter scripten :)


Hahah, dat had ik dus eerst. Maar volgens Dalando De Zuil is dat Code Wasting.
Zo zie je maar weer dat iedereen het anders doet.
 
Elio vp

Elio vp

06/09/2010 22:31:21
Quote Anchor link
Aha, ik lees het net..

Ach ik doe dat altijd.. vind het veel netter en overzichtelijker..

Mja ieder zo zijn manier :-)
 
Stefan Weck

Stefan Weck

06/09/2010 22:32:08
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php require_once("connection.php"); ?>

<?php
if($_SERVER['REQUEST_METHOD'] == 'POST' && isset( $_POST['Profile_Name'], $_POST['Profile_Password']) {

  $Profile_Name = $_POST['Profile_Name'];
  $Profile_Password = $_POST['Profile_Password'];

  $Query_Login = mysql_query("SELECT Profile_Name
                             FROM DB_Profiles
                             WHERE Profile_Name ='$Profile_Name'
                             AND Profile_Password ='$Profile_Password'"
,
                             mysql_real_escape_string($Profile_Name),
                             mysql_real_escape_string($Profile_Password),
                             $connection);
  
  if(mysql_num_rows($Query_Login) < 1){

      die( 'Login is not valid!' );

   }
else{

      // login is geldig
     $_SESSION['Profile_Name'] = $Profile_Name;
     $_SESSION['Profile_Password'] = $Profile_Password;
     header( 'administrator.php' );
  }
}
else{
    die( 'Er zit een fout in de Variabelen of de Request method!' );
}

?>

<?php
    // 5. Sluit database connectie
    mysql_close($connection);
?>


Oke, ik hoop dat ik zo alles heb begrepen en juist gedaan.
Maar ik krijg nog steeds een witte pagina..
Geen foutmelding of enige broncode.

Wat is er nou weer fout?

Alvast bedankt, Stefan
Gewijzigd op 06/09/2010 22:32:53 door Stefan Weck
 
- Ariën  -
Beheerder

- Ariën -

07/09/2010 09:04:40
Quote Anchor link
Elio vp op 06/09/2010 22:12:48:
maak van die post variables eerst en vooral al eens een gewone variable

$profileName = $_POST['Profile_Name'];
$profilePass = $_POST['Profile_Password'];

Das al beetje netter scripten :)

Kijk, en dat is nou geheugen verspillen op de server. Je hebt toch $_POST['Profile_Name']? Waarom zou je uberhaupt deze in: $profileName dubbel willen plaatsen? is $_POST al lastig te onthouden soms?

Zeg nu zelf, dit is totaal onzinnig....
Gewijzigd op 07/09/2010 09:05:16 door - Ariën -
 
Niels K

Niels K

07/09/2010 09:05:36
Quote Anchor link
Inderdaad, en zo overzichtelijk is dat ook niet want je code wordt zo steeds langer..
 
Mathijs -

Mathijs -

07/09/2010 11:35:23
Quote Anchor link
header( 'administrator.php' );

bedoel je niet iets als
header("Location: ./administrator.php");
?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.