ik ben bezig met een script en ik loop ergens tegen aan, het gaat als volgt:
ik moet er voor zorgen dat als de klant pagina 1 heeft ingevuld de data verstuurt word naar het database vervolgends, komt hij aan bij pagina 2 en daar moet zijn speciaal gegenereerde wachtwoord (die al in zijn database row staat) tevoorschijn kom. ik wil dit doen door middel van zijn userID die hij heeft meegekregen van pagina 1.
ik wil dus dat iedereen met een userid zijn password row te zien krijgt, (een ander script heeft zijn wachtwoord al gegenereerd en in zijn row geplaats dus dit heb ik al voor elkaar gekregen) ik er nog niet aan begonnen heb alleen een idee hoe ik het wil aanpakken maar ik weet simpel weg niet waar ik moet kijken, als ik zijn row probeer op te vragen via zijn userID lukt het simpel weg niet dus heb alles weer verwijderd en ben weer een aantal keer uit scratch begonnen maar ik kom voor mijn gevoel geen stap verder hopelijk kan iemand mij vertellen hoe ik zou moeten beginnen. ben nieuwe met session dus graag ook code en uitleg hoe ik mijn userID in me database krijg in een session het tergelijkertijd door passeer aan de volgende pagina en doormiddel van userID de klant zijn password kan aanvragen.
Mijn tip, begin met kleinere stapjes, eerst weten hoe sessions werken.
Als dat te behappen is, dan pas met database gaan werken.
Hier een stukje code met uitleg erin hoe het er ongeveer uit moet zien.
Let op! niet live gebruiken want het is zo lek als een mandje, ik heb het sec getikt om het een beetje begrijpelijk te maken.
<?php
//we starten een session
session_start();
// voor het gemak
$dummypassord = 'Hello World!';
// database connectie
$con=mysqli_connect("localhost","my_user","my_password","my_db");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_query($con,"INSERT INTO users (username, password , email)
VALUES ('".$_POST['username']."', '".$dummypassord."', '".$_POST['email']."')");
// auto-generated id, nu de funpart
$newUser = mysqli_insert_id($con);
//maken een session aan
$_SESSION['userid'] = $newUser;
// database sluiten
mysqli_close($con);
//automatisch naar volgende pagina
header('Location: wachtwoordpagina.php');
// einde oefening.
exit();
?>
wachtwoordpagina.php:
<?php
// ook hier starten we een session
session_start();
// connectie maken
$con=mysqli_connect("localhost","my_user","my_password","my_db");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
// och laten we een simpelere benadering geven, het kan ook zo:
$sql="SELECT username, password FROM users WHERE id = ''".$_SESSION['userid']."'";
$result = mysqli_query($con,$sql);
$row = mysqli_fetch_assoc($result);
echo $row['username'].' met wachtwoord: '.$row['password'];
?>
Mijn tip, begin met kleinere stapjes, eerst weten hoe sessions werken.
Als dat te behappen is, dan pas met database gaan werken.
Hier een stukje code met uitleg erin hoe het er ongeveer uit moet zien.
Let op! niet live gebruiken want het is zo lek als een mandje, ik heb het sec getikt om het een beetje begrijpelijk te maken.
<?php
//we starten een session
session_start();
// voor het gemak
$dummypassord = 'Hello World!';
// database connectie
$con=mysqli_connect("localhost","my_user","my_password","my_db");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_query($con,"INSERT INTO users (username, password , email)
VALUES ('".$_POST['username']."', '".$dummypassord."', '".$_POST['email']."')");
// auto-generated id, nu de funpart
$newUser = mysqli_insert_id($con);
//maken een session aan
$_SESSION['userid'] = $newUser;
// database sluiten
mysqli_close($con);
//automatisch naar volgende pagina
header('Location: wachtwoordpagina.php');
// einde oefening.
exit();
?>
wachtwoordpagina.php:
<?php
// ook hier starten we een session
session_start();
// connectie maken
$con=mysqli_connect("localhost","my_user","my_password","my_db");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
// och laten we een simpelere benadering geven, het kan ook zo:
$sql="SELECT username, password FROM users WHERE id = ''".$_SESSION['userid']."'";
$result = mysqli_query($con,$sql);
$row = mysqli_fetch_assoc($result);
echo $row['username'].' met wachtwoord: '.$row['password'];
?>
oke ik heb het getest maar ik zie denk ik iets over het hoofd aangezien niks in mijn database komt maar ik krijg geen foutmelding dus het ligt niet aan de connectie van me database want ik word gewoon door gestuurt naar de volgende pagina hier is mijn html code en mijn php hopelijk kun jij zien wat er fout gaat:
Dit levert je dus naar alle waarschijnlijkheid een vette (My)SQL-error op.
Het feit dat er niets in je database verschijnt is natuurlijk al een sterke indicatie dat er iets misgaat met de query.
NB: en als er quotes in $_POST['naam'] of $_POST['email'] zitten is je query ook om zeep. Maak dit soort karakters onschadelijk met de mysqli_real_escape_string() functie.
Dit levert je dus naar alle waarschijnlijkheid een vette (My)SQL-error op.
Het feit dat er niets in je database verschijnt is natuurlijk al een sterke indicatie dat er iets misgaat met de query.
NB: en als er quotes in $_POST['naam'] of $_POST['email'] zitten is je query ook om zeep. Maak dit soort karakters onschadelijk met de mysqli_real_escape_string() functie.
ik heb de value $code1 erbij gezet nu krijg ik alles in mijn database te zien dus dankjewel voor dat maar nu krijg ik dus het volgende probleem met me script op pagina 2 die ik gekregen heb van bart (van vorige reactie)ik gebruik dit script op mijn volgende pagina maar ik krijg niet mijn $code1 inhoud te zien wat ook later weer aangepast moet kunnen worden en ook weer later ingezien kan worden door de klant met die userID in zijn session. het script staat bij bart zijn reactie gebruik precies hetzelfde maar ik krijg die echo niet te zien in mijn html page:
<?php
// ook hier starten we een session
session_start();
// connectie maken
$con=mysqli_connect("localhost","root","","test");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
// och laten we een simpelere benadering geven, het kan ook zo:
$sql="SELECT naam, email FROM users WHERE id = ''".$_SESSION['userid']."'";
$result = mysqli_query($con,$sql);
nee in het veld staat standaard "een ogenblik geduld" maar ik zie geen echo verschijnen in me script. ik krijg alleen deze melding van xampp: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\r2_script\opvraag.php on line 17
code
dus moet ik me parameter nou veranderen naar mysqli_result of verhelpt dat het probleem niet?