onhandig script
ik heb een nogal onhandig script gemaakt:
het werkt allemaal prima maar het is heel veel code
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<h2>a</h2>
<div class="panel-group" id="accordion">
<div class="panel-body">
<p>
<?php
$sql = "
SELECT id, artiest, sort
FROM artiesten
WHERE sort='a'
ORDER BY artiest
";
$result = mysqli_query($con, $sql);
while($row = mysqli_fetch_array($result)) {
echo '<a href="artiest.php?id=', $row['id'], '">';
echo $row['artiest'];
echo '</a><br /> ';
}
?>
</p>
</div></div>
<?php
if(isset($_SESSION['username']) and $_SESSION['groep']==$admin or $_SESSION['groep']==$muziek) { ?>
<input type="button" class="btn btn-default" onclick="javascript:document.location='http://web-stars.nl/muziek/addartiest.php?sort=a';" value="voeg artiest toe"/>
<?php } ?>
</div>
<div class="col-md-3">
<h2>B</h2>
<div class="panel-group" id="accordion">
<div class="panel-body">
<p>
<?php
$sql = "
SELECT id, artiest
FROM artiesten
WHERE sort='b'
ORDER BY artiest
";
$result = mysqli_query($con, $sql);
while($row = mysqli_fetch_array($result)) {
echo '<a href="artiest.php?id='; echo $row['id']; echo '">';
echo $row['artiest'];
echo '</a><br /> ';
}
?>
</p>
</div>
</div>
<?php if(isset($_SESSION['username']) and $_SESSION['groep']==$admin or $_SESSION['groep']==$muziek) { ?>
<input type="button" class="btn btn-default" onclick="javascript:document.location='http://web-stars.nl/muziek/addartiest.php?sort=b';" value="voeg artiest toe"/>
<?php } ?>
</div>
<div class="col-md-3">
<h2>C</h2>
<div class="panel-group" id="accordion">
<div class="panel-body">
<p>
<?php
$sql = "
SELECT id,artiest
FROM artiesten
WHERE sort='c'
ORDER BY artiest
";
$result = mysqli_query($con, $sql);
while($row = mysqli_fetch_array($result)) {
echo '<a href="artiest.php?id='; echo $row['id']; echo '">';
echo $row['artiest'];
echo '</a><br /> ';
}
?>
</p>
</div></div>
<?php if(isset($_SESSION['username']) and $_SESSION['groep']==$admin or $_SESSION['groep']==$muziek) { ?>
<input type="button" class="btn btn-default" onclick="javascript:document.location='http://web-stars.nl/muziek/addartiest.php?sort=c';" value="voeg artiest toe"/>
<?php } ?>
</div>
weet iemand hoe ik dit een stuk handiger kan aanpakken?
groetjes
Fabian
Gewijzigd op 11/07/2015 12:48:43 door Fabian webstars
zetten? Sorry ik heb nog nooit met arrays gewerkt
Toevoeging op 11/07/2015 13:16:57:
of moet dat dan:
tis wel netter, maar is het niet mogelijk om niet steeds die select op te moeten roepen?
oh nice, maar wat moet ik dan in de Toevoeging op 11/07/2015 13:16:57:
of moet dat dan:
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
$result = mysqli_query($con, $sql);
$a= array(SELECT id, artiest, sort
FROM artiesten
WHERE sort='a'
ORDER BY artiest);
$b= array(SELECT id, artiest, sort
FROM artiesten
WHERE sort='b'
ORDER BY artiest);
while($row = mysqli_fetch_array($result)) {
$a[] = $row;
}
while($row = mysqli_fetch_array($result)) {
$b[] = $row;
}
?>
$result = mysqli_query($con, $sql);
$a= array(SELECT id, artiest, sort
FROM artiesten
WHERE sort='a'
ORDER BY artiest);
$b= array(SELECT id, artiest, sort
FROM artiesten
WHERE sort='b'
ORDER BY artiest);
while($row = mysqli_fetch_array($result)) {
$a[] = $row;
}
while($row = mysqli_fetch_array($result)) {
$b[] = $row;
}
?>
tis wel netter, maar is het niet mogelijk om niet steeds die select op te moeten roepen?
Gewijzigd op 11/07/2015 13:17:34 door Fabian webstars
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
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
<?php
$sql = "
SELECT id, artiest, sort
FROM artiesten
WHERE sort='a'
ORDER BY artiest
";
$result = mysqli_query($con, $sql);
$a = array();
while($row = mysqli_fetch_array($result)) {
$a[] = $row;
}
$sql = "
SELECT id, artiest, sort
FROM artiesten
WHERE sort='b'
ORDER BY artiest
";
$result = mysqli_query($con, $sql);
$b = array();
while($row = mysqli_fetch_array($result)) {
$b[] = $row;
}
?>
$sql = "
SELECT id, artiest, sort
FROM artiesten
WHERE sort='a'
ORDER BY artiest
";
$result = mysqli_query($con, $sql);
$a = array();
while($row = mysqli_fetch_array($result)) {
$a[] = $row;
}
$sql = "
SELECT id, artiest, sort
FROM artiesten
WHERE sort='b'
ORDER BY artiest
";
$result = mysqli_query($con, $sql);
$b = array();
while($row = mysqli_fetch_array($result)) {
$b[] = $row;
}
?>
- Je maakt een lege array aan.
- Vervolgens vul je de array met de row in de while loop.
Dan tussen je html in met een foreach loop de waardes ophalen om in de HTML te zetten.
om te zien wat er in de array zit kan je print_r($array); gebruiken.
Om die select niet steeds te hoeven schrijven, kan je functies of classes schrijven of ergens van het internet vandaan plukken. Voorbeeld functie
Je kan ze ook in een apart bestand zetten, en dan includen in de gewenste pagina.
Gewijzigd op 11/07/2015 13:36:22 door Randy vsf
Waarom dan niet zo?
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
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
<?PHP
$alfabet=Array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
foreach ($alfabet as $i => $value) {
echo '<div class="col-md-3">
<h2>'.ucfirst($value).'</h2>
<div class="panel-group" id="accordion">
<div class="panel-body">
<p>';
$sql = "
SELECT id, artiest
FROM artiesten
WHERE sort='".$value."'
ORDER BY artiest
";
$result = mysqli_query($con, $sql);
while($row = mysqli_fetch_array($result)) {
echo '<a href="artiest.php?id='; echo $row['id']; echo '">';
echo $row['artiest'];
echo '</a><br /> ';
}
echo '
</p>
</div>
</div>
';
if(isset($_SESSION['username']) and $_SESSION['groep']==$admin or $_SESSION['groep']==$muziek) {
echo '<input type="button" class="btn btn-default" onclick=\"javascript:document.location="http://web-stars.nl/muziek/addartiest.php?sort='.$value.'";\" value="voeg artiest toe"/>';
}
echo '</div>';
}
?>
$alfabet=Array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
foreach ($alfabet as $i => $value) {
echo '<div class="col-md-3">
<h2>'.ucfirst($value).'</h2>
<div class="panel-group" id="accordion">
<div class="panel-body">
<p>';
$sql = "
SELECT id, artiest
FROM artiesten
WHERE sort='".$value."'
ORDER BY artiest
";
$result = mysqli_query($con, $sql);
while($row = mysqli_fetch_array($result)) {
echo '<a href="artiest.php?id='; echo $row['id']; echo '">';
echo $row['artiest'];
echo '</a><br /> ';
}
echo '
</p>
</div>
</div>
';
if(isset($_SESSION['username']) and $_SESSION['groep']==$admin or $_SESSION['groep']==$muziek) {
echo '<input type="button" class="btn btn-default" onclick=\"javascript:document.location="http://web-stars.nl/muziek/addartiest.php?sort='.$value.'";\" value="voeg artiest toe"/>';
}
echo '</div>';
}
?>
Edit:
Gelieve in het vervolg een constructief beargumenteerde reactie te geven waar een ander ook iets aan heeft.
Alvast bedankt!
Alvast bedankt!
Gewijzigd op 11/07/2015 19:45:01 door - Ariën -
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
$sql = "SELECT id, artiest
FROM artiesten
ORDER BY artiest";
$result = mysqli_query($con, $sql);
$first = true;
while ($row = mysql_fetch_assoc($result)) {
if ($eerste_letter !== strtoupper(substr($row['artiest'], 0, 1)) {
$eerste_letter = strtoupper(substr($row['artiest'], 0, 1));
echo '<div class="col-md-3">
<h2>'.$eerste_letter.'</h2>
<div class="panel-group" id="accordion">
<div class="panel-body">
<p>';
}
echo '<a href="artiest.php?id='; echo $row['id']; echo '">';
echo $row['artiest'];
echo '</a><br /> ';
if(!first) {
echo '</p></div></div>';
if(isset($_SESSION['username']) and $_SESSION['groep']==$admin or $_SESSION['groep']==$muziek) {
echo '<input type="button" class="btn btn-default" onclick=\"javascript:document.location="http://web-stars.nl/muziek/addartiest.php?sort='.$eerste_letter.'";\" value="voeg artiest toe"/>';
}
echo '</div>'
}
$first = false;
}
?>
$sql = "SELECT id, artiest
FROM artiesten
ORDER BY artiest";
$result = mysqli_query($con, $sql);
$first = true;
while ($row = mysql_fetch_assoc($result)) {
if ($eerste_letter !== strtoupper(substr($row['artiest'], 0, 1)) {
$eerste_letter = strtoupper(substr($row['artiest'], 0, 1));
echo '<div class="col-md-3">
<h2>'.$eerste_letter.'</h2>
<div class="panel-group" id="accordion">
<div class="panel-body">
<p>';
}
echo '<a href="artiest.php?id='; echo $row['id']; echo '">';
echo $row['artiest'];
echo '</a><br /> ';
if(!first) {
echo '</p></div></div>';
if(isset($_SESSION['username']) and $_SESSION['groep']==$admin or $_SESSION['groep']==$muziek) {
echo '<input type="button" class="btn btn-default" onclick=\"javascript:document.location="http://web-stars.nl/muziek/addartiest.php?sort='.$eerste_letter.'";\" value="voeg artiest toe"/>';
}
echo '</div>'
}
$first = false;
}
?>
edit: indent, en typfoutje whoops
Gewijzigd op 11/07/2015 15:04:38 door Victor -
Victor - op 11/07/2015 14:54:04:
Op de volgende manier hoef je niet elke keer een query uit te voeren, wat je dus ongeveer 25 queries per pagina bespaart:)
Dan zou ik wel ff de query aanpassen, want zo doet hij nog niks ;)
Oeps, aangepast
Shamrock Modelbouw op 11/07/2015 13:27:45:
Ik neem aan dat je voor elke letter in het alfabet dezelfde code wil uitvoeren?
Waarom dan niet zo?
Waarom dan niet zo?
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
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
<?PHP
$alfabet=Array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
foreach ($alfabet as $i => $value) {
echo '<div class="col-md-3">
<h2>'.ucfirst($value).'</h2>
<div class="panel-group" id="accordion">
<div class="panel-body">
<p>';
$sql = "
SELECT id, artiest
FROM artiesten
WHERE sort='".$value."'
ORDER BY artiest
";
$result = mysqli_query($con, $sql);
while($row = mysqli_fetch_array($result)) {
echo '<a href="artiest.php?id='; echo $row['id']; echo '">';
echo $row['artiest'];
echo '</a><br /> ';
}
echo '
</p>
</div>
</div>
';
if(isset($_SESSION['username']) and $_SESSION['groep']==$admin or $_SESSION['groep']==$muziek) {
echo '<input type="button" class="btn btn-default" onclick=\"javascript:document.location="http://web-stars.nl/muziek/addartiest.php?sort='.$value.'";\" value="voeg artiest toe"/>';
}
echo '</div>';
}
?>
$alfabet=Array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
foreach ($alfabet as $i => $value) {
echo '<div class="col-md-3">
<h2>'.ucfirst($value).'</h2>
<div class="panel-group" id="accordion">
<div class="panel-body">
<p>';
$sql = "
SELECT id, artiest
FROM artiesten
WHERE sort='".$value."'
ORDER BY artiest
";
$result = mysqli_query($con, $sql);
while($row = mysqli_fetch_array($result)) {
echo '<a href="artiest.php?id='; echo $row['id']; echo '">';
echo $row['artiest'];
echo '</a><br /> ';
}
echo '
</p>
</div>
</div>
';
if(isset($_SESSION['username']) and $_SESSION['groep']==$admin or $_SESSION['groep']==$muziek) {
echo '<input type="button" class="btn btn-default" onclick=\"javascript:document.location="http://web-stars.nl/muziek/addartiest.php?sort='.$value.'";\" value="voeg artiest toe"/>';
}
echo '</div>';
}
?>
yes thanx het werkt super!!!
PHP Range
Kan je ook gebruiken ipv $alfabet=Array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
Kan je ook gebruiken ipv $alfabet=Array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
dit script is om een nieuw ww op te vragen, als je je email invult krijg je een nieuw ww opgestuurd. Heb echt super veel geprobeerd, maar het wil steeds niet lukken
Weet iemand wat ik fout doe?
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
<?php
include('config.php');
$Error = false;
$Message = array();
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if(empty($_POST['email']))
{
$Message[] = 'Vul een email adres in.';
$Error = true;
}
if(preg_match( $_POST['email']))
{
$Message[] = 'Vul een geldig email adres in.';
$Error = true;
}
if($Error == false)
{
# Query uitvoeren
$Query =
"
SELECT id, email
FROM users
WHERE email = '".mysql_real_escape_string(trim($_POST['email']))."'
";
$Result = mysql_query($Query);
if(!$Result)
{
$Message[] = 'Er is een fout opgetreden, fout is: '.mysql_error();
}
else
{
if(mysql_num_rows($Result) == 0)
{
$Message[] = 'Dit email adres komt niet voor in onze database.';
}
else
{
$Row = mysql_fetch_assoc($Result);
$Nieuw_ww = mt_srand((double)microtime()*100000);
while(strlen($Nieuw_ww) <= 6)
{
$i = chr(mt_rand(0,255));
if(preg_match('/^[a-z0-9]$/', $i))
{
$Nieuw_ww = $Nieuw_ww.$i;
}
}
$Query = "
UPDATE users
SET password = '".sha1($Nieuw_ww)."'
WHERE id = '".intval($Row['id'])."'
";
$Result = mysql_query($Query);
if($Result)
{
$Receiver = $Row['email'];
$Subject = 'Wachtwoord Reset';
$Headers = 'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'MIME-Version: 1.0' . "\r\n" .
'Content-Type: text/html; charset=ISO-8859-1' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
'X-Priority: 1' . "\r\n" .
$Mail = '<h3>Wachtwoord Reset</h3>
<p>Beste '.$Row['email'].',</p>
<p>U nieuwe wachtwoord: '.$Nieuw_ww.'<br/>
Werkt het nieuwe wachtwoord niet? Neem dan zo snel mogelijk contact op (http://web-stars.nl/contact.php). <br />
Is deze mail niet van u afkomstig, negeer deze mail en meldt het bij web-stars!</p>
<p>Met vriendelijke groet,</p>
<p>Web-stars!</p>';
?>
<script type="text/javascript">
function myFunction() {
window.open('http://gmail.com');
}
</script>
<?php
}
else
{
$Message[] = 'Er is een fout opgetreden, fout is: '.mysql_error();
}
}
}
}
}
?>
<?php
include('header.php')
?>
<div class="header"></div>
<div class="container">
<h2>Nieuw wachtwoord opvragen</h2>
<?PHP
# Kijken of er berichten zijn
if(!empty($Message))
{
# Berichten laten zien
foreach($Message as $Msg)
{
echo $Msg.'<br/>';
}
}
?>
</script>
<div class="col-md-3">
<form id="form1" name="form1" method="post" onsubmit="myFunction();">
<div class="form-group">
<label for="email">E-mailadres</label>
<input type="email" name="email" class="form-control" id="email">
</div>
<input type="submit" value="verzenden" class="btn btn-primary" />
</form></div>
</body>
</html>
include('config.php');
$Error = false;
$Message = array();
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if(empty($_POST['email']))
{
$Message[] = 'Vul een email adres in.';
$Error = true;
}
if(preg_match( $_POST['email']))
{
$Message[] = 'Vul een geldig email adres in.';
$Error = true;
}
if($Error == false)
{
# Query uitvoeren
$Query =
"
SELECT id, email
FROM users
WHERE email = '".mysql_real_escape_string(trim($_POST['email']))."'
";
$Result = mysql_query($Query);
if(!$Result)
{
$Message[] = 'Er is een fout opgetreden, fout is: '.mysql_error();
}
else
{
if(mysql_num_rows($Result) == 0)
{
$Message[] = 'Dit email adres komt niet voor in onze database.';
}
else
{
$Row = mysql_fetch_assoc($Result);
$Nieuw_ww = mt_srand((double)microtime()*100000);
while(strlen($Nieuw_ww) <= 6)
{
$i = chr(mt_rand(0,255));
if(preg_match('/^[a-z0-9]$/', $i))
{
$Nieuw_ww = $Nieuw_ww.$i;
}
}
$Query = "
UPDATE users
SET password = '".sha1($Nieuw_ww)."'
WHERE id = '".intval($Row['id'])."'
";
$Result = mysql_query($Query);
if($Result)
{
$Receiver = $Row['email'];
$Subject = 'Wachtwoord Reset';
$Headers = 'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'MIME-Version: 1.0' . "\r\n" .
'Content-Type: text/html; charset=ISO-8859-1' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
'X-Priority: 1' . "\r\n" .
$Mail = '<h3>Wachtwoord Reset</h3>
<p>Beste '.$Row['email'].',</p>
<p>U nieuwe wachtwoord: '.$Nieuw_ww.'<br/>
Werkt het nieuwe wachtwoord niet? Neem dan zo snel mogelijk contact op (http://web-stars.nl/contact.php). <br />
Is deze mail niet van u afkomstig, negeer deze mail en meldt het bij web-stars!</p>
<p>Met vriendelijke groet,</p>
<p>Web-stars!</p>';
?>
<script type="text/javascript">
function myFunction() {
window.open('http://gmail.com');
}
</script>
<?php
}
else
{
$Message[] = 'Er is een fout opgetreden, fout is: '.mysql_error();
}
}
}
}
}
?>
<?php
include('header.php')
?>
<div class="header"></div>
<div class="container">
<h2>Nieuw wachtwoord opvragen</h2>
<?PHP
# Kijken of er berichten zijn
if(!empty($Message))
{
# Berichten laten zien
foreach($Message as $Msg)
{
echo $Msg.'<br/>';
}
}
?>
</script>
<div class="col-md-3">
<form id="form1" name="form1" method="post" onsubmit="myFunction();">
<div class="form-group">
<label for="email">E-mailadres</label>
<input type="email" name="email" class="form-control" id="email">
</div>
<input type="submit" value="verzenden" class="btn btn-primary" />
</form></div>
</body>
</html>
Gewijzigd op 11/07/2015 19:55:35 door Fabian webstars
Thomas van den Heuvel op 11/07/2015 13:42:36:
EGADS, MY EYES!
Thomas wat bedoel je hier eigenlijk mee??
(Heb je ook echt een 'sort' kolom? je kunt toch ook een LIKE gebruiken?)
- queries in een loop... really?
- echo'en van HTML heeft geen enkele meerwaarde, behalve dan dat alles moeilijker leesbaar wordt
- het niet escapen van output, noch in de queries (met een _real_escape_string() functie) noch in de HTML (met htmlspecialchars)
- en ja, array uitschrijven in plaats van een range() is ook nogal omslachtig
Edit:
*knip*
Daar zijn moderatie-pm's voor bedoeld!
Daar zijn moderatie-pm's voor bedoeld!
Gewijzigd op 11/07/2015 20:00:50 door - Ariën -
Gewijzigd op 11/07/2015 20:05:56 door Fabian webstars