Nabestel systeempje
Ik ben al eens geweldig geholpen met een fotoscript waar ik niet uit kwam. Dit werkt nu helemaal perfect.
Helaas ben ik nu weer in de panarie geraakt! Ik heb voor school de opdracht een nabestel systeem te maken. Simpelheid = nodig!
Ik ben fotograaf en doe rapportages voor mensen. Die mensen geef ik een kaartje met een gebruikersnaam en wachtwoord en een link:
www.blaat.nl/klant
Ik heb nu een database met gebruikers die toegevoegd kunnen worden en verwijderd worden. Dit werkt. Ik heb gebruiker "test" met wachtwoord "test". Ik heb index.php waar een form staat om in te loggen voor de klant, als die eenmaal inlogt komt hij op de pagina main.php waar alleen de foto's staan voor die rapportage met onder elke individueele foto een CHECKbox en een DROPDOWNbox staat. Als de klant bijvoorbeeld 10 foto's Vinkt met verschillende opties uit de DROPDOWNbox dan moet hij nog even gegevens invullen en kan hij op bestel drukken. Ik krijg een mail waar in staat welke klantgegevens dit zijn en welke foto's met welke opties.
INDEX.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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
include('dbinfo.php');
// ALS ER SUBMIT WORDT GEKLIKT...
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
mysql_connect($sqlhost, $sqluser, $sqlpass) or die ($sqler1);
mysql_select_db($sqldb) or die ($sqler2);
$resultaat = mysql_query('SELECT * FROM gebruikers') or die ($sqler3);
$num = mysql_numrows($resultaat);
mysql_close();
$i = 0;
while ($i < $num)
{
$gebruiker = mysql_result($resultaat, $i, 'gebruiker');
$wachtwoord = mysql_result($resultaat, $i, 'wachtwoord');
if ($_POST['gebruiker'] == $gebruiker and $_POST['wachtwoord'] == $wachtwoord)
{
$redirect = "Location:main.php?id=".$gebruiker;
header($redirect);
}
$i++;
}
}
?>
include('dbinfo.php');
// ALS ER SUBMIT WORDT GEKLIKT...
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
mysql_connect($sqlhost, $sqluser, $sqlpass) or die ($sqler1);
mysql_select_db($sqldb) or die ($sqler2);
$resultaat = mysql_query('SELECT * FROM gebruikers') or die ($sqler3);
$num = mysql_numrows($resultaat);
mysql_close();
$i = 0;
while ($i < $num)
{
$gebruiker = mysql_result($resultaat, $i, 'gebruiker');
$wachtwoord = mysql_result($resultaat, $i, 'wachtwoord');
if ($_POST['gebruiker'] == $gebruiker and $_POST['wachtwoord'] == $wachtwoord)
{
$redirect = "Location:main.php?id=".$gebruiker;
header($redirect);
}
$i++;
}
}
?>
MAIN.PHP:
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
$naam = $_GET['id'];
if ($naam == "")
{
die();
}
$i = 0;
$j = 1;
while ($i < 3 and $j < 3)
{
$imgtag = '<td><a href="#"><img src="rapportages/'.$naam.'/'.$j.'.jpg" width="99" height="99" border="0"></a><br><input type="checkbox"><select name="formaatFotonaam_'.$j.'"><option value="geen"><option value="10x15">10x15<option value="7x12">7x12<option value="poster">poster</select></td>';
echo $imgtag;
$i++;
$j++;
}
?>
$naam = $_GET['id'];
if ($naam == "")
{
die();
}
$i = 0;
$j = 1;
while ($i < 3 and $j < 3)
{
$imgtag = '<td><a href="#"><img src="rapportages/'.$naam.'/'.$j.'.jpg" width="99" height="99" border="0"></a><br><input type="checkbox"><select name="formaatFotonaam_'.$j.'"><option value="geen"><option value="10x15">10x15<option value="7x12">7x12<option value="poster">poster</select></td>';
echo $imgtag;
$i++;
$j++;
}
?>
Als iemand mij kan helpen en daar dan ook echt tijd voor heeft, graag!
Ik kom niet verder :(
voorbeeld:
http://school.nickobrien.nl
test:test
test2:test2
Gewijzigd op 15/03/2006 19:56:00 door Nick
Kan je beter de functie isset() of empty() voor gebruiken.
edit: en een id controleren met de functie is_numeric()
Gewijzigd op 15/03/2006 20:04:00 door Kalle P
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
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<input type=checkbox name=fotos[] value='foto1'> Foto 1<br>
<input type=checkbox name=fotos[] value='foto2'> Foto 2<br>
<input type=checkbox name=fotos[] value='foto3'> Foto 3<br>
<input type="submit" value="voorbeeld" name="voorbeeld">
</form>
<?php
if(isset($_POST['voorbeeld']))
{
$array = $_POST['fotos'];
$aantal = count($array);
$i = 0;
for($i = 0; $i < $aantal; $i++)
{
echo $array[$i].'<br>';
}
}
?>
<input type=checkbox name=fotos[] value='foto1'> Foto 1<br>
<input type=checkbox name=fotos[] value='foto2'> Foto 2<br>
<input type=checkbox name=fotos[] value='foto3'> Foto 3<br>
<input type="submit" value="voorbeeld" name="voorbeeld">
</form>
<?php
if(isset($_POST['voorbeeld']))
{
$array = $_POST['fotos'];
$aantal = count($array);
$i = 0;
for($i = 0; $i < $aantal; $i++)
{
echo $array[$i].'<br>';
}
}
?>
Bedankt voor jouw snelle reactie.
Het inlog systeem is zo enzo niet veilig je komt er ter allertijden in. Als je gewoon main.php?id=test intypt hoef je al geen wachtwoord in te voeren.
Dit is een beetje dubbelop
$i = 0;
for($i = 0;
Door jou ben ik een stuk verder. Ik kan van die action="bestel.php" maken en dan zie ik daar het formulier met alles ingevulde gegevens en dat mailen.
Slim.
Hoe kan ik nu alleen ervoor zorgen dat deze pagina's beveiligd blijven?
Je zou bijv. mijn nieuwssysteem kunnen downloaden en kijken hoe ik dat gedaan heb. Het gemakkelijkste is een sessie aanmaken met een random code, code in de database zetten en bij iedere f5 vergelijken en vervangen.
hmm.. sessie's lijken me het makkelijkst, ook omdat er meerdere klanten tegelijk zullen gaan bestellen. Hartstikke bedankt voor jou mooie regels die veel betekenen :)
Ik heb nu een voorbeeld op
school.nickobrien.nl
test:test
test2:test2
Ik kan inplaats van een weergave van de bestelling natuurlijk ook een mail versturen met de gegevens.
Uiteindelijk heb je het toch zelf gedaan en daar kan je trots op zijn. Ik duw je alleen de goede richting in.
Dat ik vind een wijs commentaar! Dankjewel!
Nog een kleine vraag. Is het mogelijk dat hij om de 4 foto's een nieuwe rij pakt?
Code (php)
Ik weet niet zeker of dit kan, het is een ideetje.
Gewijzigd op 15/03/2006 21:28:00 door Arjan Kapteijn
en bij 8 foto's bijvoorbeeld springt er geen nieuwe regel tussen
juist, ik wist dat het met rekenen te maken had :P
Als je het klant systeem binnenkomt(index.php) moet je inloggen. Na het inloggen kom je op de bestel pagina, waar de foto's van (ingevoerde)gebruikersmap wordt uitgelezen en weergeven. Deze foto's worden automatisch geteld en genaamd en boven krijgt elke foto een checkbox en een selectbox met opties. Op dezelfde pagina kun je BESTEL drukken. Dan kom je op de VERWERK pagina (verwerk.php). Daar staat een overzicht van wat de klant heeft ingevuld in een tabel (die automatische <tr> en <td> toevoegd) doormate van ARRAYS in de bestel pagina. De klant kan ook hieronder de tabel gegevens invullen en vervolgens op AKKOORD drukken welke moet gaan mailen wat is ingevoerd en daarna een succesvol bericht krijgt.
Bijna alles werkt want:
De mail werkt alleen laat die maar 1 foto zien in de tabel omdat ik in de mail() functie zelf geen for($i etc. kan gebruiken om de variable $bericht aan te maken (kijk hieronder en je begrijpt mijn arabisch)
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
session_start();
if(!isset($_SESSION["gebruiker"])){
header("Location: login.php");
}
else {
?>
session_start();
if(!isset($_SESSION["gebruiker"])){
header("Location: login.php");
}
else {
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="css/main.css">
<title>nickobrien.nl</title>
</head>
<body bgcolor="#333333">
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<?php
if($_SERVER['REQUEST_METHOD'] == "POST")
{
$fotos = $_GET['fotos'];
$formaat = $_GET['formaat'];
$maal = $_GET['maal'];
$aantalfotos = count($fotos);
$aantalformaat = count($formaat);
$aantalmaal = count($maal);
for($i = 0; $i < $aantalfotos and $aantalformaat and $aantalmaal; $i++)
{
if ($maal[$i] == "")
{
$maal[$i] = 1;
}
}
$header = "MIME-Version: 1.0\n";
$header .= "Content-type: text/html; charset=iso-8859-1\n";
$header .= "From: hannekemeijerink.nl<[email protected]>\n";
$header .= "Message-Id: <".time()."@".$_SERVER['SERVER_NAME'].">\n";
$header .= "X-Mailer: php-mail-function-0.2\n";
$bericht =
"<font face='Tahoma' size='2'>".
"Beste Hanneke, er is een bestelling gedaan met de volgende gegevens:<br>".
"<br><b>Volledige naam</b>: ".$_POST['naam'].
"<br><b>Adres</b>: ".$_POST['adres'].
"<br><b>Postcode</b>: ".$_POST['postcode'].
"<br><b>Woonplaats</b>: ".$_POST['plaats'].
"<br><b>Tel</b>: ".$_POST['telefoon'].
"<br><b>E-Mail</b>: <a href='#'>".$_POST['email']."</a>".
"<br><b>Beveiliging</b>: ".$_SERVER['REMOTE_ADDR'].
"<br>".
"<br><table width='400' cellspacing='0' cellpadding='0'><tr>".
"
<td><font face='Tahoma' size='2'><b>Fotonaam</b></font></td>
<td><font face='Tahoma' size='2'><b>Formaat</b></font></td>
<td><font face='Tahoma' size='2'><b>Aantal</b></font></td></tr>".
"<tr>".
"
<td> </td>
<td> </td>
<td> </td>".
"</tr>".
"<tr><td><font face='Tahoma' size='2'>".$fotos[$i]."</font></td><td><font face='Tahoma' size='2'>".$formaat[$i]."</font></td><td><font face='Tahoma' size='2'>".$maal[$i]."</font></td></tr>".
"<tr>".
"
<td> </td>
<td> </td>
<td> </td>".
"</tr>".
"<tr>".
"
<td></td>
<td align='right'><font face='Tahoma' size='2'><b>Totaal </b></font></td>
<td><font face='Tahoma' size='2'>€0,00</font></td>".
"</tr>".
"</table>".
"</font>";
mail(
"[email protected]",
"Contact formulier",
$bericht,
$header
);
echo "Uw bestelling is succesvol toegevoegd. U krijgt zo spoedig mogelijk een reactie.<br>";
echo "<meta http-equiv='REFRESH' content='3;url=bestellen.php'>";
}
else {
?>
if($_SERVER['REQUEST_METHOD'] == "POST")
{
$fotos = $_GET['fotos'];
$formaat = $_GET['formaat'];
$maal = $_GET['maal'];
$aantalfotos = count($fotos);
$aantalformaat = count($formaat);
$aantalmaal = count($maal);
for($i = 0; $i < $aantalfotos and $aantalformaat and $aantalmaal; $i++)
{
if ($maal[$i] == "")
{
$maal[$i] = 1;
}
}
$header = "MIME-Version: 1.0\n";
$header .= "Content-type: text/html; charset=iso-8859-1\n";
$header .= "From: hannekemeijerink.nl<[email protected]>\n";
$header .= "Message-Id: <".time()."@".$_SERVER['SERVER_NAME'].">\n";
$header .= "X-Mailer: php-mail-function-0.2\n";
$bericht =
"<font face='Tahoma' size='2'>".
"Beste Hanneke, er is een bestelling gedaan met de volgende gegevens:<br>".
"<br><b>Volledige naam</b>: ".$_POST['naam'].
"<br><b>Adres</b>: ".$_POST['adres'].
"<br><b>Postcode</b>: ".$_POST['postcode'].
"<br><b>Woonplaats</b>: ".$_POST['plaats'].
"<br><b>Tel</b>: ".$_POST['telefoon'].
"<br><b>E-Mail</b>: <a href='#'>".$_POST['email']."</a>".
"<br><b>Beveiliging</b>: ".$_SERVER['REMOTE_ADDR'].
"<br>".
"<br><table width='400' cellspacing='0' cellpadding='0'><tr>".
"
<td><font face='Tahoma' size='2'><b>Fotonaam</b></font></td>
<td><font face='Tahoma' size='2'><b>Formaat</b></font></td>
<td><font face='Tahoma' size='2'><b>Aantal</b></font></td></tr>".
"<tr>".
"
<td> </td>
<td> </td>
<td> </td>".
"</tr>".
"<tr><td><font face='Tahoma' size='2'>".$fotos[$i]."</font></td><td><font face='Tahoma' size='2'>".$formaat[$i]."</font></td><td><font face='Tahoma' size='2'>".$maal[$i]."</font></td></tr>".
"<tr>".
"
<td> </td>
<td> </td>
<td> </td>".
"</tr>".
"<tr>".
"
<td></td>
<td align='right'><font face='Tahoma' size='2'><b>Totaal </b></font></td>
<td><font face='Tahoma' size='2'>€0,00</font></td>".
"</tr>".
"</table>".
"</font>";
mail(
"[email protected]",
"Contact formulier",
$bericht,
$header
);
echo "Uw bestelling is succesvol toegevoegd. U krijgt zo spoedig mogelijk een reactie.<br>";
echo "<meta http-equiv='REFRESH' content='3;url=bestellen.php'>";
}
else {
?>
U bent van plan de volgende bestelling te doen:<br>
<br>
<table id="bestelling" width="200" cellspacing="0" cellpadding="2" border="0">
<tr>
<td><b>Fotonaam</b></td>
<td><b>Formaat</b></td>
<td><b>Aantal</b></td>
</tr>
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
$fotos = $_GET['fotos'];
$formaat = $_GET['formaat'];
$maal = $_GET['maal'];
$aantalfotos = count($fotos);
$aantalformaat = count($formaat);
$aantalmaal = count($maal);
for($i = 0; $i < $aantalfotos and $aantalformaat and $aantalmaal; $i++)
{
if ($maal[$i] == ""){
$maal[$i] = 1;
}
echo "<tr><td>".$fotos[$i]."</td><td>".$formaat[$i]."</td><td>".$maal[$i]."</td></tr>";
}
?>
$fotos = $_GET['fotos'];
$formaat = $_GET['formaat'];
$maal = $_GET['maal'];
$aantalfotos = count($fotos);
$aantalformaat = count($formaat);
$aantalmaal = count($maal);
for($i = 0; $i < $aantalfotos and $aantalformaat and $aantalmaal; $i++)
{
if ($maal[$i] == ""){
$maal[$i] = 1;
}
echo "<tr><td>".$fotos[$i]."</td><td>".$formaat[$i]."</td><td>".$maal[$i]."</td></tr>";
}
?>
<tr>
<td></td>
<td style="padding-top: 6px;" align="right"><b>Totaal</b></td>
<td style="padding-top: 6px;">€0,00</td>
</tr>
</table>
<br>
<form method="post">
<table cellspacing="0" cellpadding="2">
<tr>
<td valign="top">
Volledige naam:<br>
<input type="text" name="naam"><br>
Adres:<br>
<input type="text" name="adres"><br>
Telefoon en/of mobiel:<br>
<input type="text" name="telefoon"><br>
</td>
<td valign="top">
Postcode:<br>
<input type="text" name="postcode"><br>
Woonplaats:<br>
<input type="text" name="plaats"><br>
E-Mail:<br>
<input type="text" name="email"><br>
</td>
</tr>
</table>
<input type="submit" value="akkoord">
</form>
</body>
</html>
Kan iemand mij helpen :(
Gewijzigd op 21/03/2006 21:59:00 door Nick
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
$bericht = "Start bericht";
for($i=0; $i........){
$bericht.= $toevoeging[$i];
//maakt allemaal niet uit wat je er bij doet
}
$bericht.="Einde bericht";
mail('[email protected]','subject',$bericht,$headers);
?>
$bericht = "Start bericht";
for($i=0; $i........){
$bericht.= $toevoeging[$i];
//maakt allemaal niet uit wat je er bij doet
}
$bericht.="Einde bericht";
mail('[email protected]','subject',$bericht,$headers);
?>
edit: waar het dus om gaat is het uitbreiden van variabeles door het plaatsen van een punt voor het = teken.
thnxxx!