Een spel maken in - PHP
Ik moet voor school voor het vak informatica het spel zeeslag maken in o.a. PHP.
Ik loop al vast bij helaas al vast bij de eerste stap en hoop dat iemand mij daarmee kan helpen.
Van mijn docent moet ik eerst een pagina moet maken waar iemand kan inloggen (zonder wachtwoord!) of zich kan registreren (naam + alias in het spel).
Vervolgens moet je dus kunnen inloggen hiervoor moet je, je php koppelen aan je database met PDO (ik werk met phpmyadmin). Vervolgens is het de bedoeling dat je nadat je hebt ingelogd, je in een wachtrij komt en kan kiezen met wie je wilt spelen (bijv. de computer).
Ik snap gelukkig wel wat ik moet doen, maar in de praktijk vindt ik het lastig uit te voeren ik hoop echt dat iemand mij kan helpen...
Alvast bedankt :)
Wat heb je tot nu toe al gemaakt? En waar loop je precies op vast?
Op dit moment heb ik bij de index.php
Naam: <input type="text" name="name" value="">
<input type="submit" name="inloggen" value="inloggen" >
<br>
<a href="registreren.php">Of klik hier om je te registreren</a>
Maar volgens mij is dit niet echt php maar html.
Ik weet ook niet precies hoe je er nou voor kan zorgen dat als je uiteindelijk bij registreren.php komt dat je ook daadwerkelijk kunt registreren (met naam en alias) dus dat die in de database komen automatisch (phpmyadmin).
Ik heb op dit moment dit uitgezocht voor registreren.php, maar ook hiervan weet ik niet of het klopt...
Mijn docent zegt dat je het conecten met phpmyadmin moet doen via PDO
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
Alvast ontzettend bedankt dat je de moeite hebt genomen om mijn vraag te lezen :)
Gewijzigd op 30/03/2016 19:27:34 door Maaike Doornhein
Maaike Doornhein op 30/03/2016 18:50:04:
...
Vervolgens moet je dus kunnen inloggen hiervoor moet je, je php koppelen aan je database met PDO (ik werk met phpmyadmin).
Vervolgens moet je dus kunnen inloggen hiervoor moet je, je php koppelen aan je database met PDO (ik werk met phpmyadmin).
PHPMyAdmin is niet je database maar MySQL.
Je connectie met mysql zet je als volgt op:
Code (php)
1
2
3
2
3
<?php
$db= new PDO('mysql:host=localhost;dbname=db_name;charset=utf8mb4', 'db_user', 'db_pwd');
?>
$db= new PDO('mysql:host=localhost;dbname=db_name;charset=utf8mb4', 'db_user', 'db_pwd');
?>
PHPMyAdmin is een tool geschreven in PHP om MySQL-databases te beheren.
Gewijzigd op 30/03/2016 21:13:51 door Ger van Steenderen
Ik ben op dit moment al een stuk verder, heb wat uitleg van mijn docent gehad namelijk.
Nu heb ik voor registreren.php dit bestandje:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
include_once "connect.php";
$naam = filter_input(INPUT_POST,"naam" );
$alias = filter_input(INPUT_POST,"alias" );
$sql = "insert into acounts (naam,alias) values(:naam,:alias)";
$db -> prepare($sql);
$sql -> bindParam( ':naam', $naam );
$sql -> bindParam( ':alias', $alias );
$sql -> execute ();
include_once "index.php";
?>
include_once "connect.php";
$naam = filter_input(INPUT_POST,"naam" );
$alias = filter_input(INPUT_POST,"alias" );
$sql = "insert into acounts (naam,alias) values(:naam,:alias)";
$db -> prepare($sql);
$sql -> bindParam( ':naam', $naam );
$sql -> bindParam( ':alias', $alias );
$sql -> execute ();
include_once "index.php";
?>
Alleen blijf ik nu continu de foutmelding:
Fatal error: Call to a member function bindParam() on a non-object in /Applications/XAMPP/xamppfiles/htdocs/zeeslag/registreren.php on line 10
En ik heb geen idee wat ik er mee aan moet, iemand een idee??
$db->bindParam( ':naam', $naam );
Zelf ben ik helaas niet zo goed in informatica :(
Ik ben op dit moment bezig met het maken het registreren en het inloggen en vanuit het inloggen dat je dan uiteindelijk uitkomt in de 'wachtrij'. Helaas werkt mijn code nog niet zoals dat zou moeten, ik hoop dat jullie mij misschien willen helpen...
Ik heb op dit moment dit:
index.php
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<form method="post" action="wachtrij.php">
Naam: <input type="text" name="wie" />
<input type="submit" name="loginSubmit" value="Log in!" />
</form>
<BR>
<form method="post" action="registreren.php">
<input type="submit" name="loginSubmit" value="registreer je hier!" />
</form>
Naam: <input type="text" name="wie" />
<input type="submit" name="loginSubmit" value="Log in!" />
</form>
<BR>
<form method="post" action="registreren.php">
<input type="submit" name="loginSubmit" value="registreer je hier!" />
</form>
connect.php
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
$db = array (
'host' => 'localhost',
'dbname' => 'zeeslag_accounts',
'user' => 'root',
'pass' => ''
);
try
{
$db = new PDO('mysql:host=' . $db['host'] . ';dbname=' . $db['dbname'] , $db['user'], $db['pass']);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->query("SET SESSION sql_mode = 'ANSI,ONLY_FULL_GROUP_BY'");
}
catch(PDOException $e)
{
$sMsg = '<p>
Regelnummer: '.$e->getLine().'<br />
Bestand: '.$e->getFile().'<br />
Foutmelding: '.$e->getMessage().'
</p>';
trigger_error($sMsg);
}
?>
$db = array (
'host' => 'localhost',
'dbname' => 'zeeslag_accounts',
'user' => 'root',
'pass' => ''
);
try
{
$db = new PDO('mysql:host=' . $db['host'] . ';dbname=' . $db['dbname'] , $db['user'], $db['pass']);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->query("SET SESSION sql_mode = 'ANSI,ONLY_FULL_GROUP_BY'");
}
catch(PDOException $e)
{
$sMsg = '<p>
Regelnummer: '.$e->getLine().'<br />
Bestand: '.$e->getFile().'<br />
Foutmelding: '.$e->getMessage().'
</p>';
trigger_error($sMsg);
}
?>
registreren.php
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<form method="post" action="wachtrij.php">
Naam: <input type="text" name="wie" />
</form>
<BR>
Alias: <input type="text" name="alias" />
<BR>
<BR>
<input type="submit" name="loginSubmit" value="registreer!" />
</form>
<?php
include_once "connect.php";
$naam = filter_input(INPUT_POST,"naam" );
$alias = filter_input(INPUT_POST,"alias" );
$sql = "insert into acounts (naam,alias) values(:naam,:alias)";
$prep = $db -> prepare($sql);
$prep -> bindParam( ':naam', $naam );
$prep -> bindParam( ':alias', $alias );
$prep -> execute ();
?>
Naam: <input type="text" name="wie" />
</form>
<BR>
Alias: <input type="text" name="alias" />
<BR>
<BR>
<input type="submit" name="loginSubmit" value="registreer!" />
</form>
<?php
include_once "connect.php";
$naam = filter_input(INPUT_POST,"naam" );
$alias = filter_input(INPUT_POST,"alias" );
$sql = "insert into acounts (naam,alias) values(:naam,:alias)";
$prep = $db -> prepare($sql);
$prep -> bindParam( ':naam', $naam );
$prep -> bindParam( ':alias', $alias );
$prep -> execute ();
?>
wachtrij.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
include_once "connect.php";
$naam = filter_inpu(INPUT_POST, "wie");
$db -> prepare($sql)
$sql -> bindParam(':naam', $naam);
$sql -> execute( );
$aantalregels = $sql -> row(count();
if ($aantalregels == 0) {
include_once "index.php";
exit( );
}
$sql ="unpdat acounts set active = 1 where id = $id";
include_once "refreshwachtruimte.php"
?>
include_once "connect.php";
$naam = filter_inpu(INPUT_POST, "wie");
$db -> prepare($sql)
$sql -> bindParam(':naam', $naam);
$sql -> execute( );
$aantalregels = $sql -> row(count();
if ($aantalregels == 0) {
include_once "index.php";
exit( );
}
$sql ="unpdat acounts set active = 1 where id = $id";
include_once "refreshwachtruimte.php"
?>
wachtruimterefresh.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<head>
<meta http-equiv="refresh" content="3">
</head>
<?php
include_once "connect.php"
$id= input_filter(inout_get, "id");
$sql = "select * from acounts where active = 1"
$r = fetchAll(PDO::FETCH_ASSOC);
foreach($r as $regelnr => $regel) {
if ($regel ['id'] == $id
print
}
{
foreach ($r as $regel) {
if $regel ['id']; = $id) }
?>
<meta http-equiv="refresh" content="3">
</head>
<?php
include_once "connect.php"
$id= input_filter(inout_get, "id");
$sql = "select * from acounts where active = 1"
$r = fetchAll(PDO::FETCH_ASSOC);
foreach($r as $regelnr => $regel) {
if ($regel ['id'] == $id
}
{
foreach ($r as $regel) {
if $regel ['id']; = $id) }
?>
- Ariën -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Gewijzigd op 31/03/2016 19:48:16 door - Ariën -
Verder is de code in wachtruimterefresh.php best merkwaardig met afgebroken if'jes etc en loze print's.
In wachtrij.php gebeuren ook vreemde dingen.
Probeer je nu wat uit, in plaats van te weten wat je precies moet doen? Want daar lijkt het wel op.
En dat kan nooit de bedoeling zijn.
In mijn ervaring werkt dit veel beter in het begin dan telkens maar proberen dingen aan te passen zonder dat je echt begrijpt wat ze doen. Dat koste mij uren en uren en ik werd er nog niet wijzer van omdat ik dus dingen probeerde die ik al wist terwijl er dingen nodig waren die ik niet wist.
Als je een paar uur besteed aan het downloaden van inlog systemen en deze uit te proberen en de codes te bekijken en te volgen is het denk ik voor jou al snel een stuk duidelijker waar bepaalde dingen niet kloppen.
Plus wat anderen ook al hebben gezegd, zoals Frank dat je netbeans kan gebruiken wat heel veel scheelt omdat je dan gemakkelijker fouten kan traceren en sowieso direct kan zien als iets niet klopt.
Probeer PHP eens via codecanyon zodat je het in de vingers krijgt
Ik heb samen met mijn docent het voor mekaar gekregen om te registreren in de datebase.
Vervolgens heeft mijn docent me ook geholpen met mijn inlog.php, loop ik hier tegen een fout aan...
Want welke naam ik ook typ, of als ik zelfs geen naam typt wordt je toch doorgestuurd naar inlog.php, het is natuurlijk de bedoeling dat dit alleen kan als ook daadwerkelijk geregisteerd staat in de database, ook is het niet de bedoeling dat je wordt doorverwezen naar inlog.php maar naar wachtrij.php (op dit moment is dit alleen nog maar een wit scherm). Ik al enige dagen aan het proberen het werkend te krijgen maar het lukt gewoon niet...
Als iemand wil en kan helpen dank je!
Dit is het inlog formulier
Code (php)
1
2
3
4
2
3
4
<form method="post" action="inlog.php">
Naam: <input type="text" name="wie" />
<input type="submit" name="loginSubmit" value="Log in!" />
</form>
Naam: <input type="text" name="wie" />
<input type="submit" name="loginSubmit" value="Log in!" />
</form>
En dit is inlog.php
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
include_once "connect.php";
if (isset($_post['wie'])) {
if (empty($_post['wie'])) {
echo "Je hebt geen naam opgegeven";
echo "<a herf='index.php'> terug</a>";
} else {
$sql = "select * from accounts where naam = :naam";
$mijnSql = $db->prepare($sql);
$mijnSql->bindParam(':naam', filter_input(INPUT_POST, 'naam'));
$mijnSql->execute();
if ($mijnSql->rowCount() > 0) {
echo "Je bent ingelogd";
} else {
echo "Naam is verkeerd";
echo "<a herf='index.php'> terug</a>";
}
}
}
?>
include_once "connect.php";
if (isset($_post['wie'])) {
if (empty($_post['wie'])) {
echo "Je hebt geen naam opgegeven";
echo "<a herf='index.php'> terug</a>";
} else {
$sql = "select * from accounts where naam = :naam";
$mijnSql = $db->prepare($sql);
$mijnSql->bindParam(':naam', filter_input(INPUT_POST, 'naam'));
$mijnSql->execute();
if ($mijnSql->rowCount() > 0) {
echo "Je bent ingelogd";
} else {
echo "Naam is verkeerd";
echo "<a herf='index.php'> terug</a>";
}
}
}
?>
Gewijzigd op 05/04/2016 15:27:26 door Maaike Doornhein
Je komt dan op de volgende structuur uit:
Code (php)
1
2
3
4
5
2
3
4
5
<?php
if($_SERVER['REQUEST_METHOD']=="POST") {
// je formulier is verstuurd, voer hier je acties uit/
}
?>
if($_SERVER['REQUEST_METHOD']=="POST") {
// je formulier is verstuurd, voer hier je acties uit/
}
?>
En als je $_POST-variabelen gebruikt, let er dan op dat je deze in hoofdletters benoemt.
Ook de functies uit je query kan je het best in hoofdletters aanduiden voor het leesbare gemak:
SELECT * FROM accounts WHEREnaam = :naam
Daarnaast gebruik je in je link het attribuut herf dit moet zijn href
Gewijzigd op 05/04/2016 16:16:30 door - Ariën -
Ik kom er nu achter dat er dus nog wel een foutje zit in het registeren als ik registreer, registreerd de database alleen het alias terwijl ik ook graag wil dat de database de naam registreerd waarmee de gebruiker vervolgens moet inloggen...
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<form method="post" action="registreren.php">
Naam: <input type="text" name="wie" />
<br>
<BR>
Alias: <input type="text" name="alias" />
<BR>
<BR>
<input type="submit" name="loginSubmit" value="registreer!" />
</form>
Naam: <input type="text" name="wie" />
<br>
<BR>
Alias: <input type="text" name="alias" />
<BR>
<BR>
<input type="submit" name="loginSubmit" value="registreer!" />
</form>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
include_once "connect.php";
$naam = filter_input(INPUT_POST,"naam" );
$alias = filter_input(INPUT_POST,"alias" );
$sql = "insert into acounts (naam,alias) values(:naam,:alias)";
$prep = $db -> prepare($sql);
$prep -> bindParam( ':naam', $naam );
$prep -> bindParam( ':alias', $alias );
$prep -> execute ();
$msg = "je bent nu geregistreerd";
include_once "index.php";
echo $msg;
?>
include_once "connect.php";
$naam = filter_input(INPUT_POST,"naam" );
$alias = filter_input(INPUT_POST,"alias" );
$sql = "insert into acounts (naam,alias) values(:naam,:alias)";
$prep = $db -> prepare($sql);
$prep -> bindParam( ':naam', $naam );
$prep -> bindParam( ':alias', $alias );
$prep -> execute ();
$msg = "je bent nu geregistreerd";
include_once "index.php";
echo $msg;
?>
Wat is een sessie:
Het bijhouden van enkele gegevens van iedere client afzonderlijk voor de duur van een bepaalde periode. De sessie verloopt nadat de server een bepaalde periode niets meer van de client vernomen heeft. (bijvoorbeeld na een half uur).
Wat is technisch gezien ingelogd zijn?
Indien een client/gebruiker een pagina bij de server opvraagt dan kan de server niet weten wie de persoon erachter is.
Daarvoor heeft men dan al jaren geleden een systeem bedacht waarbij de gebruiker eerst maar eens zijn (login)naam en wachtwoord moet opgeven. Aan de hand van die gegevens kan een gebruiker geïdentificeerd worden, mits deze in de database gevonden worden. Als de gegevens inderdaad gevonden worden dan wordt er een variabele, waarschijnlijk het user ID in de sessie opgeslagen waardoor deze voor de duur van een bepaalde periode bewaard blijft (zie boven).
Als je bovenstaande goed in je opneemt en begrijpt dan begrijp je ook dat op iedere beveiligde pagina (achter de login) gekeken zal moeten worden of een dergelijke geldige variabele ook voorkomt IN DE SESSIE. Dit is dus de check of de gebruiker ingelogd is en (eventueel) ook over voldoende rechten beschikt om de desbetreffende pagina op te vragen.
Een gebruiker doorsturen
dit doe je met
De exit moet er (bijna altijd) achter omdat je script anders niet beëindigd wordt maar gewoon doorgaat.
Een header functie mag alleen gebruikt worden als er nog geen enkele output verstuurd is met bijvoorbeeld een echo of door HTML dat voor het php blok staat. Mede daardoor is het onverstandig om in het getoonde stukje php echo's te gebruiken.
Op regel 2 in de HTML gebruik je name="wie" en op regel 23 in je code gebruik je "naam" terwijl die twee wel moeten overeenkomen.
VOORBEELD:
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
35
36
37
38
39
40
41
42
43
44
45
46
47
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
36
37
38
39
40
41
42
43
44
45
46
47
<?php
// login.php
session_start();
include_once "connect.php";
//initialisatie (het aanmaken van variabelen en het toekennen van een waarde aan die variabelen)
$error = '';
if($_SERVER['REQUEST_METHOD']=="POST")
{
$sql = "select * from accounts where naam = :naam";
$mijnSql = $db->prepare($sql);
$mijnSql->bindParam(':naam', filter_input(INPUT_POST, 'naam'));
$result = $mijnSql->execute();
if($data = $result->fetch_assoc()){
// schrijf het user_id naar de sessie!
$_SESSION['user_id'] = $data['user_id'];
// stuur de gebruiker door naar de beveiligde pagina
header('Location: beveiligd.php');
exit;
} // ( een ELSE is hier niet nodig omdat het script beëindigd wordt in bovenstaande IF
$error = 'Gebruikersnaam niet gevonden';
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Login</title>
</head>
<body>
<?php echo $error; ?>
<form method="post" action="inlog.php">
Naam: <input type="text" name="naam" />
<input type="submit" value="Log in!" />
</form>
</body>
</html>
// login.php
session_start();
include_once "connect.php";
//initialisatie (het aanmaken van variabelen en het toekennen van een waarde aan die variabelen)
$error = '';
if($_SERVER['REQUEST_METHOD']=="POST")
{
$sql = "select * from accounts where naam = :naam";
$mijnSql = $db->prepare($sql);
$mijnSql->bindParam(':naam', filter_input(INPUT_POST, 'naam'));
$result = $mijnSql->execute();
if($data = $result->fetch_assoc()){
// schrijf het user_id naar de sessie!
$_SESSION['user_id'] = $data['user_id'];
// stuur de gebruiker door naar de beveiligde pagina
header('Location: beveiligd.php');
exit;
} // ( een ELSE is hier niet nodig omdat het script beëindigd wordt in bovenstaande IF
$error = 'Gebruikersnaam niet gevonden';
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Login</title>
</head>
<body>
<?php echo $error; ?>
<form method="post" action="inlog.php">
Naam: <input type="text" name="naam" />
<input type="submit" value="Log in!" />
</form>
</body>
</html>
beveiligd.php:
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
<?php
session_start();
if(!isset($_SESSION['user_id']))
{
header('Location: login.php');
exit;
}
$user_id = $_SESSION['user_id'];
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Beveiligde pagina</title>
</head>
<body>
<p>U bent ingelogd met user ID: <?php echo $user_id; ?></p>
</body>
</html>
session_start();
if(!isset($_SESSION['user_id']))
{
header('Location: login.php');
exit;
}
$user_id = $_SESSION['user_id'];
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Beveiligde pagina</title>
</head>
<body>
<p>U bent ingelogd met user ID: <?php echo $user_id; ?></p>
</body>
</html>
Toevoeging op 05/04/2016 16:47:51:
Bonus scriptje waarmee gebruikers kunnen uitloggen:
uitloggen.php
Gewijzigd op 05/04/2016 16:44:39 door Frank Nietbelangrijk
Nu zit ik alleen nog met mijn laatste vraag...
Ik hoop dat één van jullie mij misschien ook hiermee kunnen helpen/uitleggen waarom het niet werkt?
Ik zit namelijk met het probleem dat als iemand zich registreerd, alleen het alias in de database komt te staan en niet de naam waarmee degene zich registreerd, en dit is wel de bedoeling aangezien de naam van de persoon zijn inlog is. Ik ben nu al 3 dagen aan het zoeken en kan de fout niet vinden...
Ik heb nu:
registrerenFormulier.php
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<form method="post" action="registreren.php">
Naam: <input type="text" name="wie" />
<br>
<BR>
Alias: <input type="text" name="alias" />
<BR>
<BR>
<input type="submit" name="loginSubmit" value="registreer!" />
</form>
Naam: <input type="text" name="wie" />
<br>
<BR>
Alias: <input type="text" name="alias" />
<BR>
<BR>
<input type="submit" name="loginSubmit" value="registreer!" />
</form>
En dit is registreren.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
include_once "connect.php";
$naam = filter_input(INPUT_POST,"naam" );
$alias = filter_input(INPUT_POST,"alias" );
$sql = "insert into acounts (naam,alias) values (:naam,:alias)";
$prep = $db -> prepare($sql);
$prep -> bindParam( ':naam', $naam );
$prep -> bindParam( ':alias', $alias );
$prep -> execute ();
$msg = "je bent nu geregistreerd";
include_once "index.php";
echo $msg;
?>
include_once "connect.php";
$naam = filter_input(INPUT_POST,"naam" );
$alias = filter_input(INPUT_POST,"alias" );
$sql = "insert into acounts (naam,alias) values (:naam,:alias)";
$prep = $db -> prepare($sql);
$prep -> bindParam( ':naam', $naam );
$prep -> bindParam( ':alias', $alias );
$prep -> execute ();
$msg = "je bent nu geregistreerd";
include_once "index.php";
echo $msg;
?>
Het registreren werkt dus technisch gezien wel, maar alleen voor het alias en niet voor de naam...
Een voorbeeld van wat mijn phpadmin nu weergeeft:
id---------Naam----------alias---------active
50---------NULL--------Maaike3108---------0
49---------NULL--------Maaike3008---------0
48---------NULL-----------hoi-------------0
Gewijzigd op 05/04/2016 17:48:35 door Maaike Doornhein
Gewijzigd op 05/04/2016 17:51:37 door - Ariën -
doe maar eens het volgende in je code:
Code (php)
Gewijzigd op 05/04/2016 17:52:48 door Frank Nietbelangrijk
Ik ben er samen met mijn leraar tot aan de wachtrij uit gekomen.
Dit houdt dus in dat je, je nu kunt registreren, inloggen, in de wachtrij terecht komt en kunt kiezen met wie je wilt spelen en vervolgens door gestuurd wordt naar de pagina zeeslag.php.
Zoals ik al eerder heb vertelt ben ik helaas niet goed in php en waardeer jullie hulp en tips ook enorm.
Ik hoop dat jullie me misschien ook op weg zouden kunnen helpen met het spel zeeslag, ik heb namelijk geen idee hoe ik moet beginnen.
In het spel is het eerst de bedoeling dat er bepaald wordt wie er eerst mag, dit mag random wat dus inhoud dat de andere speler als het ware blokkeert en dus niks meer kan. Ik moet aangeven wie er aan de beurt is aan de hand van bijvoorbeeld het veranderen van de kleur van de naam van de speler. De wijzigingen op het scherm moeten door middel van ajax-technologie doorgegeven worden...
De database moet in CRUD benaderd worden, want het spel wordt namelijk via de database gespeeld worden. Het is de bedoeling dat ik met coördinaten in het spel naar de andere speler kan sturen wat de andere speler heeft gedaan.
Ik hoop echt dat iemand mij kan helpen alvast ontzettend bedankt!
Gewijzigd op 25/04/2016 16:31:31 door Maaike Doornhein
Ik stel me voor dat je een tabel games hebt met de volgende kolommen:
-game_id
-player1_id
-player2_id
-onturn_id (nummer van de speler die aan de beurt is).
De eerste keer maak je gebruik van de functie rand(1, 2);
Daarna swap je van 1 naar 2 en van 2 weer terug naar 1.
Hoe wil je het doen met het plaatsen van de schepen? Wil je dat gebruikers die zelf kunnen plaatsen of krijgen ze een random set geplaatste schepen?
Begin maar gewoon met de HTML. Een statische pagina die we later dynamisch gaan maken.
Naast PHP komt er een flinke dosis javascript bij kijken als je het een beetje leuk wilt maken. Daar zou je je dus alvast eens in kunnen verdiepen.
Hoe wil je de schepen weergeven? met een foto of mogen het gewoon gekleurde vakjes worden?
Je kunt kiezen om vakjes met <div>-jes te maken of als je van een uitdaging houdt zou je eens kunnen kijken naar HTML5 CANVAS.