Stuk script nakijken
ik weet niet of dit toegestaan is, of dat iemand er uberhaubt naar wil kijken, maar ik heb een stukje code geschreven die ik graag door iemand zou willen laten nakijken. Het werkt prima, maar of het netjes en veilig is, dat is mijn vraag. (het is niet een geheel script, maar een klein deel ervan)
de betreffende 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
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
<?php
//Strip whitespace (or other characters) from the beginning and end of the string
$search = trim($_GET['searchQuery']);
//If something from the form has been submitted
//Is the search string empty?
if( strlen($search) < 2 ) {
echo "Your search query is too small, please search with more than 1 character.";
} else {
//Put the search string in an array
$keywords = mysql_real_escape_string($search);
$crit = array();
foreach(array_filter(explode(' ',$keywords)) as $searchKeyWords)
//Create the WHERE statement
$crit[] = "(artist.artistname LIKE '%$searchKeyWords%' OR lyrics.songname LIKE '%$searchKeyWords%')";
$whereStatement = implode(' AND ',$crit);
$sql = "SELECT lyrics.lyricID, artist.artistID, artist.artistname, lyrics.songname
FROM lyrics
INNER JOIN artist
ON lyrics.artistID = artist.artistID
WHERE $whereStatement";
$result = mysql_query($sql);
//Check for problems with MySQL
if( mysql_error() ) {
trigger_error(' There seems to be a problem with the connection to the database, if this keeps appearing please. <br />' .mysql_error());
} else {
//Are there one or more results to show?
if( mysql_num_rows($result) >= 1 ) { ?>
<table id="myTable" class="tablesorter" border="0" cellpadding="0" cellspacing="1">
<thead>
<tr>
<th>Artist</th>
<th>Songtitle</th>
<th>Album</th>
</tr>
</thead>
<tbody>
<?php while($row = mysql_fetch_array($result)) { ?>
<tr>
<td><?php echo $row['artistname'];?></td>
<td class="result_click" onclick="window.location = "><?php echo $row['songname'];?></td>
<td><?php echo $row['artistname'];?></td>
</tr>
<?php } ?>
</tbody>
</table>
<?php } else {
echo "There are no results to show you.";
}
}
}
?>
//Strip whitespace (or other characters) from the beginning and end of the string
$search = trim($_GET['searchQuery']);
//If something from the form has been submitted
//Is the search string empty?
if( strlen($search) < 2 ) {
echo "Your search query is too small, please search with more than 1 character.";
} else {
//Put the search string in an array
$keywords = mysql_real_escape_string($search);
$crit = array();
foreach(array_filter(explode(' ',$keywords)) as $searchKeyWords)
//Create the WHERE statement
$crit[] = "(artist.artistname LIKE '%$searchKeyWords%' OR lyrics.songname LIKE '%$searchKeyWords%')";
$whereStatement = implode(' AND ',$crit);
$sql = "SELECT lyrics.lyricID, artist.artistID, artist.artistname, lyrics.songname
FROM lyrics
INNER JOIN artist
ON lyrics.artistID = artist.artistID
WHERE $whereStatement";
$result = mysql_query($sql);
//Check for problems with MySQL
if( mysql_error() ) {
trigger_error(' There seems to be a problem with the connection to the database, if this keeps appearing please. <br />' .mysql_error());
} else {
//Are there one or more results to show?
if( mysql_num_rows($result) >= 1 ) { ?>
<table id="myTable" class="tablesorter" border="0" cellpadding="0" cellspacing="1">
<thead>
<tr>
<th>Artist</th>
<th>Songtitle</th>
<th>Album</th>
</tr>
</thead>
<tbody>
<?php while($row = mysql_fetch_array($result)) { ?>
<tr>
<td><?php echo $row['artistname'];?></td>
<td class="result_click" onclick="window.location = "><?php echo $row['songname'];?></td>
<td><?php echo $row['artistname'];?></td>
</tr>
<?php } ?>
</tbody>
</table>
<?php } else {
echo "There are no results to show you.";
}
}
}
?>
Achter de window.location staat een lange link, die heeft een RewriteRule.
Nou, ik hoor het wel, ben benieuwd.
Serellyn
Gewijzigd op 01/01/1970 01:00:00 door Ernst Jacobs
Kan je het tussen code-tags plaatsen?
2. if( mysql_error() ) moet zijn if(!$result)
3. If this keeps appearing please. please WAT?
Persoonlijk zou ik alle output echoen.
Verder is het mooi script.
Gewijzigd op 01/01/1970 01:00:00 door Pepijn
Aar schreef op 26.12.2009 19:50:
Kan je het tussen code-tags plaatsen?
Graag, maar wat zijn de code tags?
Ik zal de aanpassingen even gaan doorvoeren.
Meer adviezen zijn altijd welkom
Is het niet zo, dat de like operator niet meer werkt als je string minder dan 3 tekens is?
Serellyn schreef op 27.12.2009 00:05:
Graag, maar wat zijn de code tags?
Aar schreef op 26.12.2009 19:50:
Kan je het tussen code-tags plaatsen?
Graag, maar wat zijn de code tags?
Je script in je post is nu niet echt leesbaar. Pas je post even aan en gebruik en tags om je code heen. Om php code zet je uiteraard dit:Gebruik je knop om dit te doen.
SanThe.
SanThe schreef op 27.12.2009 01:46:
Je script in je post is nu niet echt leesbaar. Pas je post even aan en gebruik en tags om je code heen. Om php code zet je uiteraard dit:Gebruik je knop om dit te doen.
SanThe.
Serellyn schreef op 27.12.2009 00:05:
Graag, maar wat zijn de code tags?
Aar schreef op 26.12.2009 19:50:
Kan je het tussen code-tags plaatsen?
Graag, maar wat zijn de code tags?
Je script in je post is nu niet echt leesbaar. Pas je post even aan en gebruik en tags om je code heen. Om php code zet je uiteraard dit:Gebruik je knop om dit te doen.
SanThe.
Thanks, geregeld!
``Joris,, schreef op 27.12.2009 01:13:
Ik weet niet precies hoe je dat bedoeld, maar ik krijg keurig de melding te zien als er minder dan 2 characters gegeven zijn. en als er 2 of meer characters worden gegeven gaat hij gewoon zoeken.