sessions
Pagina: « vorige 1 2 3 volgende »
Helaas weet de TS bijna niets van PHP (geeft hij zelf aan) en zijn de scripts die hij hier post 1-op-1 overgenomen.
Het lijkt me het verstandigst dat de TS zich eerst eens verdiept in PHP en MySQL zodat hij op z'n minst de basics onder de knie heeft. Dan zal hem ook geleerd zijn waarom hij encryptie op bepaalde gegevens moet gebruiken, en wat het verschil is tussen bijvoorbeeld =, == en ===.
Mensen zonder enige kennis kun je in mijn mening niet helpen met dit soort dingen. Je kunt het alleen maken voor ze. Dit soort dingen verkopen of online zetten voor de wereld is vragen om problemen, tevens kun je het zelf niet troubleshooten.
@TS:
TIP: Koop of leen een PHP 5/6 en MySQL boek waar alles stap voor stap wordt uitgelegd.
Ik ben zelf begonnen met PHP 6 en MySQL, het complete HANDBoek - De echte Wiley Bible hier wordt echt alles behandeld. Het is 100% nederlands (vertaald) en een echte aanrader!
Gewijzigd op 09/05/2012 10:02:27 door Chris PHP
Chris NVT op 09/05/2012 10:02:01:
Het lijkt me het verstandigst dat de TS zich eerst eens verdiept in PHP en MySQL zodat hij op z'n minst de basics onder de knie heeft.
Uiteraard moet dat inderdaad wel stap 1 zijn, anders is elk advies overbodig...
Ik heb inderdaad een boek php6 en mysql maar kom er toch niet helemaal uit dus mijn vraag hier
PHP6 is waarschijnlijk slechts alleen een fabeltje. Even dachten we PHP6 te introduceren, maar toen zijn ze maar overgestapt op het perfectioneren van PHP5 (wat erg is gelukt!). Of PHP6 er ooit nog gaat komen is maar zeer de vraag.
Er is geen enkele reden om dat boek weg te gooien, de stof die erin behandeld wordt (in mijn link) is uitstekend. Alles wordt op de juiste manier uitgelegd en voorgedaan, met een hoop voorbeeld codes in het boek.
@Stefan,
Dat komt omdat je 1-op-1 code overneemt. Als je het zelf schrijft (mag uiteraard wel afgeleid zijn van voorbeelden) snap je het zoiezo veel beter en weet je 9 van de 10 keer ook wat je doet.
Het is duidelijk dat je het verschil tussen =, == en === nog niet helemaal onder de knie hebt. Dit valt echt onder de basics, het zelfde als hoe je $_SESSION, $_POST, variabelen, operators, MySQL, if statements, while statements, for statements, en nog veel meer moet gebruiken. Dit kom je allemaal bijna in elk script tegen (MySQL uiteraard alleen als je het aanroept of gebruikt).
Nogmaals toch echt het advies om je boek goed door te lezen, wat bij mij ook helpt is simpelweg de voorbeeldjes overtypen en uitvoeren. Je ziet op die manier veel sneller waarom en hoe ze nu precies iets doen.
HTML en CSS kun je veel makkelijker leren omdat je letterlijk ziet wat er fout gaat als je iets wijzigd (styling). Echter PHP is een programmeer taal wat op de server wordt uitgevoerd. Dat houdt in wanneer je geen correcte foutafhandeling gebruikt je simpelweg een witte pagina krijgt.
Code (php)
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
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
<?php
session_start ();
if $SESSION['email']==$email;
echo 'u bent al ingelogt';
else{
if( $_SERVER['REQUEST_METHOD'] == 'POST') // Controle of er op de knop is gedrukt.
{
if(!empty($_POST['email']) AND !empty($_POST['wachtwoord'])) // Controle of alles is ingevult.
{
include_once 'config.php'; // Connectie met database.
$email = mysql_real_escape_string($_POST['email']); // Gevaren voor sql injectie weren dmv. mysql_real_.......
$wachtwoord = mysql_real_escape_string($_POST['wachtwoord']);
$sql = ("SELECT email, wachtwoord FROM members WHERE email='". $email . "' AND wachtwoord='" . $wachtwoord . "'"); // Selecteer user waar de gebruiker overeenkomt met ingevoerde pas
$uitvoer = mysql_query($sql);
$controle = mysql_num_rows($uitvoer); //Uitvoer van inlog
if($controle == 1)
($SESSION['email'] = $email);{
echo 'u bent nu ingelogt';
}
else{
echo 'U email komt niet overeen met de database of er is een veld niet ingevuld';
}
}
}
}
?>
session_start ();
if $SESSION['email']==$email;
echo 'u bent al ingelogt';
else{
if( $_SERVER['REQUEST_METHOD'] == 'POST') // Controle of er op de knop is gedrukt.
{
if(!empty($_POST['email']) AND !empty($_POST['wachtwoord'])) // Controle of alles is ingevult.
{
include_once 'config.php'; // Connectie met database.
$email = mysql_real_escape_string($_POST['email']); // Gevaren voor sql injectie weren dmv. mysql_real_.......
$wachtwoord = mysql_real_escape_string($_POST['wachtwoord']);
$sql = ("SELECT email, wachtwoord FROM members WHERE email='". $email . "' AND wachtwoord='" . $wachtwoord . "'"); // Selecteer user waar de gebruiker overeenkomt met ingevoerde pas
$uitvoer = mysql_query($sql);
$controle = mysql_num_rows($uitvoer); //Uitvoer van inlog
if($controle == 1)
($SESSION['email'] = $email);{
echo 'u bent nu ingelogt';
}
else{
echo 'U email komt niet overeen met de database of er is een veld niet ingevuld';
}
}
}
}
?>
ik kom er nog niet uit hoe ik hier de session start ook weet ik niet hoe ik het nu op een andere pagina werkend krijg zoals hieronder op de inlogpagina hoe krijg ik hier de else werkend
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
if ($_SESSION['email'] == true);{
echo 'U bent al ingelogd';
}
else{
<form method="POST" action='loginverwerk.php'>
<input type="hidden" name="submit" value="1">
Email adres:<br>
<input type="text" name="email" size="30"><br>
Wachtwoord:<br>
<input type="password" name="wachtwoord" size="12" maxlength="12"><br>
<input type="submit" value="inloggen"></p>
</form>
[code]<?php
}
?>
hoop dat iemand mij kan helpen
alvast bedankt
if ($_SESSION['email'] == true);{
echo 'U bent al ingelogd';
}
else{
<form method="POST" action='loginverwerk.php'>
<input type="hidden" name="submit" value="1">
Email adres:<br>
<input type="text" name="email" size="30"><br>
Wachtwoord:<br>
<input type="password" name="wachtwoord" size="12" maxlength="12"><br>
<input type="submit" value="inloggen"></p>
</form>
[code]<?php
}
?>
hoop dat iemand mij kan helpen
alvast bedankt
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?
if $SESSION['email']==$email;
//$email bestaat daar helemaal nog niet..
//je bedoelt waarschijnlijk iets van
if(isset($_SESSION['email'])){
//ingelogd, eigenlijk moet je deze daarna weer controleren met je database.
}
//$email en $wachtwoord zijn eigenlijk onnodig, omdat je dit ook recht in je query kan zetten.
//altijd controleren of je query goed gaat (mysql_error();)
//
$controle = mysql_num_rows($uitvoer); //Uitvoer van inlog
if($controle == 1) {
$_SESSION['email'] = $email;
echo 'u bent nu ingelogt';
}
else{
echo 'U email komt niet overeen met de database of er is een veld niet ingevuld';
}
// In je tweede stuk code moet je je php en html gescheiden houden
?>
if $SESSION['email']==$email;
//$email bestaat daar helemaal nog niet..
//je bedoelt waarschijnlijk iets van
if(isset($_SESSION['email'])){
//ingelogd, eigenlijk moet je deze daarna weer controleren met je database.
}
//$email en $wachtwoord zijn eigenlijk onnodig, omdat je dit ook recht in je query kan zetten.
//altijd controleren of je query goed gaat (mysql_error();)
//
$controle = mysql_num_rows($uitvoer); //Uitvoer van inlog
if($controle == 1) {
$_SESSION['email'] = $email;
echo 'u bent nu ingelogt';
}
else{
echo 'U email komt niet overeen met de database of er is een veld niet ingevuld';
}
// In je tweede stuk code moet je je php en html gescheiden houden
?>
maar hoe krijg ik mijn 2e stuk script dan werkend ? enig idee ?
alvast bedankt
Als dat 2de stukje een apart bestand is moet je daar wel session_start(); bovenaan zetten, en doe anders print_r($_SESSION); kijk wat er in zit.
waarom krijg ik nu een unexpected T-ELSE ????
Die puntkomma moet daar weg
Toevoeging op 15/05/2012 16:45:06:
toch nog even een kleine vraag
nu wil ik ook dat er een sessie gemaakt word van meer gegevens uit de database als deze persoon inlogt. dus achter het email adres en wachtwoord(waar ik geen sessie van maak) hangen nog meer gegevens aan.
kan ik deze dan weer selecteren met mysql SELECT from members WHERE email ??
of zoiets ?
ik hoop dat je begrijpt wat ik bedoel
alvast bedankt
Dat kan inderdaad maar dan moet je wel zeker weten dat je email uniek is. Beter is om dit met ID's te doen
oke ja email is uniek en wordt ook gecontroleerd of deze al bestaat
je doet dan simpelweg zoiets als deze query:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
$query =
"SELECT
email,
wachtwoord,
meerzooi,
nogmeerzooi
FROM
members
WHERE
email = '" . mysql_real_escape_string($email);
if (($result = mysql_query($query)) === false)
{
trigger_error(mysql_error());
}
else
{
$results = mysql_fetch_assoc($result);
$_SESSION['email'] = $results['email'];
$_SESSION['meerzooi'] = $results['meerzooi'];
$_SESSION['nogmeerzooi'] = $results['nogmeerzooi'];
}
?>
$query =
"SELECT
email,
wachtwoord,
meerzooi,
nogmeerzooi
FROM
members
WHERE
email = '" . mysql_real_escape_string($email);
if (($result = mysql_query($query)) === false)
{
trigger_error(mysql_error());
}
else
{
$results = mysql_fetch_assoc($result);
$_SESSION['email'] = $results['email'];
$_SESSION['meerzooi'] = $results['meerzooi'];
$_SESSION['nogmeerzooi'] = $results['nogmeerzooi'];
}
?>
Gewijzigd op 15/05/2012 16:58:08 door Jeroen VD
eerst werkte het wel zonder de extra sessie's iemand een idee
ik denk dat het te maken heb met de $controle iemand een idee om dit op te lossen ?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
include_once 'config.php'; // Connectie met database.
$email = mysql_real_escape_string($_POST['email']);
$wachtwoord = mysql_real_escape_string($_POST['wachtwoord']);
$sql = ("SELECT email, wachtwoord, bedrijfsnaam, telefoonnummer,contactpersoon, FROM members WHERE email='". $email . "' AND wachtwoord='" . $wachtwoord ."','".$bedrijfsnaam ."','".$telefoonnummer."','".$contactpersoon."'"); // Selecteer user waar de gebruiker overeenkomt met ingevoerde pas
$uitvoer = mysql_query($sql);
$controle = mysql_num_rows($uitvoer);
if($controle == 1) {
$_SESSION ['email'] = $email;
$_SESSION ['bedrijfsnaam'] = $bedrijfsnaam;
$_SESSION ['telefoonnummer']= $telefoonnummer;
$_SESSION ['contactpersoon']= $contactpersoon;
echo 'u bent nu ingelogt';
?>
include_once 'config.php'; // Connectie met database.
$email = mysql_real_escape_string($_POST['email']);
$wachtwoord = mysql_real_escape_string($_POST['wachtwoord']);
$sql = ("SELECT email, wachtwoord, bedrijfsnaam, telefoonnummer,contactpersoon, FROM members WHERE email='". $email . "' AND wachtwoord='" . $wachtwoord ."','".$bedrijfsnaam ."','".$telefoonnummer."','".$contactpersoon."'"); // Selecteer user waar de gebruiker overeenkomt met ingevoerde pas
$uitvoer = mysql_query($sql);
$controle = mysql_num_rows($uitvoer);
if($controle == 1) {
$_SESSION ['email'] = $email;
$_SESSION ['bedrijfsnaam'] = $bedrijfsnaam;
$_SESSION ['telefoonnummer']= $telefoonnummer;
$_SESSION ['contactpersoon']= $contactpersoon;
echo 'u bent nu ingelogt';
?>
je hebt een komma teveel staan net voor FROM in je query.... bouw foutafhandeling in, dan krijg je daar een melding over. en waar komen de variabelen op regels 12/15 vandaan?
regel 5 en 6 zijn niet nodig --> mysql_real_escape_string doe je in je query.
kan ik zo niet de variabelen selecteren uit de query SELECT ?
en als ik error inbouw krijg ik
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''','',''' at line 1
gegevens uit de database zul je eerst moeten fetchen, dit doe je met (bij voorkeur) mysql_fetch_assoc(). alles komt dan in een array te staan, en kun je dan opvragen door de arraynaam['kolomnaam'] aan te halen. zie mijn code