Post bewaren
Ik heb een begin gemaakt aan een formulier waarmee workshops aangemaakt kunnen worden.
Voordat de workshop wordt toegevoegd krijgt de persoon nog de vraag of alle gegevens goed zijn ( de ingevoerde gegevens staan onder de vraag vermeldt).
Nu heb ik 1 vraag en 1 probleem.
Het probleem:
Als de gebruiker op toevoegen drukt gaat het systeem over naar een ander bestand. Hier wordt gevraagd of de gegevens kloppen. Als er op 'Ja' geklikt wordt worden de gegevens opgeslagen.
Alleen neemt hij de post niet mee uit het vorige bestand waardoor er een lege rij in mijn database komt...
De vraag:
Als de gebruiker op nee klikt wordt de vorige pagina via een header opnieuw geladen. Hierdoor zijn alle gegevens die net ingevuld zijn verloren gegaan. Is het mogelijk om deze gegevens te behouden bij terug keer?
Hier beide bestanden:
workshops_toevoegen:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
/* Bestand: workshops_toevoegen.php
* Beschrijving: Hier kunnen workshops aangemaakt worden.
*/
//Verbinding met Database maken doormiddel van conn.php
include '../conn.php';
//---------------------------------------------------------------------------------------------------------------------
?>
/* Bestand: workshops_toevoegen.php
* Beschrijving: Hier kunnen workshops aangemaakt worden.
*/
//Verbinding met Database maken doormiddel van conn.php
include '../conn.php';
//---------------------------------------------------------------------------------------------------------------------
?>
<html>
<head>
<title>Workshops toevoegen</title>
<!--Stylesheet wordt geladen.-->
<link rel="stylesheet" type="text/css" href="../opmaak.css">
</head>
<body>
<form method="post" action="workshops_bevestigen.php">
<table border="1" width="100%" align="center">
<tr>
<th colspan="2">Workshops toevoegen</th>
</tr>
<tr>
<td> Username:</td>
<td><input type="text" name="username" size="20" maxlength="30""</td>
</tr>
<tr>
<td> Les1:</td>
<td><input type="text" name="les1" size="20" maxlength="30"</td>
</tr>
<tr>
<th colspan="2"><input type="submit" class="submit" name="action" value="Workshop toevoegen">
<form name ="input" action="index.php">
</tr>
</table>
</form>
<hr>
<Center>
<form name ="input" action="index.php">
<input type="submit" value="Terug naar keuze menu">
</form>
</center>
<hr>
</body>
</html>
workshops_bevestigen:
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
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
<?php
/* Bestand: workshops_bevestigen.php
* Beschrijving: Bevestigen of de gegevens correct zijn. Daarna zal de workshop toegevoegd worden.
*/
//Verbinding met Database maken doormiddel van conn.php
include '../conn.php';
//---------------------------------------------------------------------------------------------------------------------
/*Alles naar makkelijke variabelen omzetten.*/
$user = $_POST[username];
$les1 = $_POST[les1];
$ja = $_POST[ja];
$nee = $_POST[nee];
$sql = "INSERT INTO workshops (username, les1) " .
"VALUES ('" . $user . "','" . $les1 . "')";
if (isset($_POST[nee])){
header ('refresh: 2; url=workshops_toevoegen.php');
}
if (isset($_POST[ja])){
if ((mysql_query($sql, $conn))){
$message .= "Account is aangemaakt.";
header ('refresh: 2; url=../beheerder/index.php');
}
}
?>
/* Bestand: workshops_bevestigen.php
* Beschrijving: Bevestigen of de gegevens correct zijn. Daarna zal de workshop toegevoegd worden.
*/
//Verbinding met Database maken doormiddel van conn.php
include '../conn.php';
//---------------------------------------------------------------------------------------------------------------------
/*Alles naar makkelijke variabelen omzetten.*/
$user = $_POST[username];
$les1 = $_POST[les1];
$ja = $_POST[ja];
$nee = $_POST[nee];
$sql = "INSERT INTO workshops (username, les1) " .
"VALUES ('" . $user . "','" . $les1 . "')";
if (isset($_POST[nee])){
header ('refresh: 2; url=workshops_toevoegen.php');
}
if (isset($_POST[ja])){
if ((mysql_query($sql, $conn))){
$message .= "Account is aangemaakt.";
header ('refresh: 2; url=../beheerder/index.php');
}
}
?>
<html>
<head>
<title>Workshops toevoegen</title>
<!--Stylesheet wordt geladen.-->
<link rel="stylesheet" type="text/css" href="../opmaak.css">
</head>
<body>
<table border="1" width="100%" align="center">
<tr>
<td colspan="2" class="message">
</td>
<tr>
<th colspan="2">Zijn onderstaande gegevens correct?</th>
</tr>
<tr>
<td> Username:</td><td><b></b></td>
</tr>
<tr>
<td> Les1:</td><td><b></b></td>
</tr>
<tr>
<form method ="post" action="">
<th colspan="2"><input type="submit" class="submit" name="ja" value="Ja"> <input type="submit" class="submit" name="nee" value="Nee"></th>
</tr>
</table>
</form>
<hr>
<Center>
<form name ="input" action="index.php">
<input type="submit" value="Terug naar keuze menu">
</form>
</center>
<hr>
</body>
</html>
Hoop dat jullie mij wat verder kunnen helpen..
Alvast bedankt!
Je kan ze ook direct in een sessie zetten, maar ik vind een array in een sessie een net iets mooiere oplossing. Ik doe het zelf hier ook.
Thx! Zal is even gaan uitzoeken hoe dat precies werkt..
Ook als hiddenfield kan je ze meegeven.
Arjan:
Een makkelijke oplossing is de gegevens tijdelijk eventjes in een array zetten, en die array opslaan in een sessie.
Je kan ze ook direct in een sessie zetten, maar ik vind een array in een sessie een net iets mooiere oplossing. Ik doe het zelf hier ook.
Je kan ze ook direct in een sessie zetten, maar ik vind een array in een sessie een net iets mooiere oplossing. Ik doe het zelf hier ook.
En hoe ziet dit er dan uit een array in een sessie als ik vragen mag?
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$gebruiker = array('naam' => 'Arjan', 'leeftijd' => '19');
$_SESSION['gebruiker'] = $gebruiker;
?>
$gebruiker = array('naam' => 'Arjan', 'leeftijd' => '19');
$_SESSION['gebruiker'] = $gebruiker;
?>
Je maakt een array, vult hem eventueel en daarna schuif je die hele array in een sessie.
en als ik dan je naam wil hebben, hoe roep ik hem dan aan?
$array = //maak een array
$_SESSION['array'] = $array
Nu heb je een sessie met de array erin. Nu gaan we weer terug:
$array = $_SESSION['array']
Dan heb je weer een normale array :).
Kijk nu snap ik hoe je dit doet en hoe ik dit kan uitwerken!! Mijn dank voor deze zeer heldere uitleg is bijzonder GROOT!!!
bestand 1:
$user= $_POST['username'];
$workshop = array($user);
$_SESSION['workshop'] = $workshop;
Bestand 2:
$_SESSION['workshop'] = $workshop;
$workshop = $_SESSION['workshop'];
Let er wel op dat je session_start(); bovenaan beide bestanden nodig heb om sessies te laten werken.
Kan ik hem dan in bestand 2 aanroepen met
$user = $workshop['username'];
Of is dat niet mogelijk?
$_SESSION['naam'] = $naam;
$_SESSION['email'] = $email;
of
$array = array($naam,$email);
$_SESSION['array'] = $array;
of wat je zelf prettig vind kwa benamingen.
$workshop = array($user);
Zo wel
$workshop = array(username => $user);
Op 1 of andere manier werkt het nog niet.. session_start(); staat bij beide bestanden bovenaan..
Bestand 1:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$user = $_POST[username];
$test1 = $_POST[test1];
$workshop = array($user, $test1);
$_SESSION['workshop'] = $workshop;
?>
$user = $_POST[username];
$test1 = $_POST[test1];
$workshop = array($user, $test1);
$_SESSION['workshop'] = $workshop;
?>
Bestand 2:
Vannochtend nog wat gerommeld, maar kom niks verder.. Iemand een idee wat ik verkeerd doe?
Code (php)
1
2
3
2
3
<?php
$_SESSION['workshop'] = array(naam => $_POST['naam'], test1 => $_POST['test1']);
?>
$_SESSION['workshop'] = array(naam => $_POST['naam'], test1 => $_POST['test1']);
?>
Bestand 2:
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$user = $_SESSION['workshop']['naam'];
$test1 = $_SESSION['workshop']['test1'];
echo $user.' - '.$test1;
?>
$user = $_SESSION['workshop']['naam'];
$test1 = $_SESSION['workshop']['test1'];
echo $user.' - '.$test1;
?>
Probeer het eens
Ik heb je script in de mijn verwerkt. Het werkt jammer genoeg nog niet. Lijkt me dat dit gedeelte goed is, dus zal wel aan de rest liggen.. Ook je "echo $user.' - '.$test1;" wordt niet gevuld.
Dus ik neem aan dat de fout bij het posten zit..
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
/* Bestand: workshops_toevoegen.php
* Beschrijving: Hier kunnen workshops aangemaakt worden.
*/
//Verbinding met Database maken doormiddel van conn.php
include '../conn.php';
//Sessie starten
session_start();
//---------------------------------------------------------------------------------------------------------------------
if ($_SERVER['REQUEST_METHOD'] == 'POST'){
//formulier verzonden
/*Alles naar makkelijke variabelen omzetten.*/
$user = $_POST['username'];
$les1 = $_POST['les1'];
// array maken
$_SESSION['workshop'] = array(user => $_POST['user'], $les1 => $_POST['les1']);
}
?>
/* Bestand: workshops_toevoegen.php
* Beschrijving: Hier kunnen workshops aangemaakt worden.
*/
//Verbinding met Database maken doormiddel van conn.php
include '../conn.php';
//Sessie starten
session_start();
//---------------------------------------------------------------------------------------------------------------------
if ($_SERVER['REQUEST_METHOD'] == 'POST'){
//formulier verzonden
/*Alles naar makkelijke variabelen omzetten.*/
$user = $_POST['username'];
$les1 = $_POST['les1'];
// array maken
$_SESSION['workshop'] = array(user => $_POST['user'], $les1 => $_POST['les1']);
}
?>
<html>
<head>
<title>Workshops toevoegen</title>
<!--Stylesheet wordt geladen.-->
<link rel="stylesheet" type="text/css" href="../opmaak.css">
</head>
<body>
<form method="post" action="workshops_bevestigen.php">
<table border="1" width="100%" align="center">
<tr>
<th colspan="2">Workshops toevoegen</th>
</tr>
<tr>
<td> Username:</td>
<td><input type="text" name="username" size="20" maxlength="30""</td>
</tr>
<tr>
<td> Les1:</td>
<td><input type="text" name="les1" size="20" maxlength="30"</td>
</tr>
<tr>
<th colspan="2"><input type="submit" class="submit" name="action" value="Workshop toevoegen">
<form name ="input" action="workshops_bevestigen.php">
</tr>
</table>
</form>
<hr>
<Center>
<form name ="input" action="index.php">
<input type="submit" value="Terug naar keuze menu">
</form>
</center>
<hr>
</body>
</html>