vraagje over array_search()
ik heb zoals een paar van jullie weten een wargame, en daarin ben ik al een tijdje bezig met een referer systeem, nou is die klaar alleen kon je oneindig f5 drukken en kreeg je dus steeds meer geld.
nou heb ik gezet dat je ip-adres gelogd dat werkt ook goed.
je ipadres wordt opgeslagen met een "|" erachter, nou ga ik dus als je op die pagina komt checken of je ip adres al in de lijst staat door:
$arrayip = explode ("|,$ip");
nou wil ik in een keer die hele array door pluizen of je ipadres erin zit. dat doe ik met array_search(); dan zou die de hele array moeten doorzoeken, maar hij zoekt alleen de eerst waarde van de array.
kan iemand mij helpen?
hier is mijn script:
$ip = $_SERVER["REMOTE_ADDR"];
$arrayip = explode ("|", $referip);
$found = array_search($ip,$arrayip);
if ($found == "FALSE"){
echo "You voted for me";
$referip .= $ip;
$referip .= "|";
$result = mysql_query("UPDATE users SET referip = \"$referip\" WHERE id = \"$id\"", $db);
$result = mysql_query("UPDATE users SET money = money+100 WHERE id = \"$id\"", $db);
}else{
echo "You already have voted today";
}
Kijk dit is een foutje in jou systeem bas... Als iemand nu een berichtje plaatst staat deze reactie er al
$arrayip = explode ("|", $referip);
if($arrayip[0] == $_SERVER["REMOTE_ADDR"]){
"ip komt niet voor bla bla"
}else{
"ip komt al voor bla bla"
}
je stored ze ip gewoon on submit of iig als ie op je pagina is gekomen(weet niet hoe je script verder werkt)
$arrayip = explode ("|", $referip);
if($arrayip[0] == $_SERVER["REMOTE_ADDR"]){
"ip komt voor bla bla bla"
}else{
"ip komt niet voor bla bla"
}
$arrayip = explode ("|", $referip);
foreach ($arrayip as $ip){
if($ip == $_SERVER["REMOTE_ADDR"]){
"ip komt voor bla bla bla"
}else{
"ip komt niet voor bla bla"
}
}
tog?
gewoon strpos() loslaten op de string dan heb je het ook
In combobox 1 staat een automerken lijst, en in combobox 2 moeten alleen de modellen van het gekozen merk in combobox 1 komen te staan.
Het vullen van combobox 1 is niet het probleem, maar hoevul ik combobox twee? Ik heb een poging gedaan door php binnen javascript aan te roepen, zonder resultaat. (zie onderstaand)
<HTML>
<head>
<script language = "JavaScript">
<!-- hide me
var the_array_name = new Array("");
Function swapOptions(the_array_name)
{
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
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
<?php
$type= the_array_name;
// Verbinding maken, een database selecteren
$link = mysql_connect("localhost", "root", "")
or die("Kan geen verbinding maken");
//print "Verbinding succesvol gemaakt";
mysql_select_db("schuurmans")
or die("Kan geen database selecteren");
// haal de login van alle medewerkers uit de database
$result = mysql_query(
"SELECT model.model_naam FROM merk, model WHERE merk.merk_naam='$type' AND merk.id=model.merk_id ORDER BY model.model_naam");
// start off the javascript array stirng
$js_array = '[';
// loop into the first dimension
for($i = 0, $ic = (count($result)-1); $i < (count($result)-1); $i++)
{
// add the data to the js_array
$js_array .= '"'.$result[$i].'"';
// if its not the last peice of data, add a comma
if($i != $ic)
$js_array .= ',';
}
// finish the js_array string
$js_array .= '];';
// Resultaat-set vrij maken
mysql_free_result($result);
// Verbinding afsluiten
mysql_close($link);
?>
$type= the_array_name;
// Verbinding maken, een database selecteren
$link = mysql_connect("localhost", "root", "")
or die("Kan geen verbinding maken");
//print "Verbinding succesvol gemaakt";
mysql_select_db("schuurmans")
or die("Kan geen database selecteren");
// haal de login van alle medewerkers uit de database
$result = mysql_query(
"SELECT model.model_naam FROM merk, model WHERE merk.merk_naam='$type' AND merk.id=model.merk_id ORDER BY model.model_naam");
// start off the javascript array stirng
$js_array = '[';
// loop into the first dimension
for($i = 0, $ic = (count($result)-1); $i < (count($result)-1); $i++)
{
// add the data to the js_array
$js_array .= '"'.$result[$i].'"';
// if its not the last peice of data, add a comma
if($i != $ic)
$js_array .= ',';
}
// finish the js_array string
$js_array .= '];';
// Resultaat-set vrij maken
mysql_free_result($result);
// Verbinding afsluiten
mysql_close($link);
?>
var numbers_select = window.document.the_form.the_examples;
var the_array = eval(the_array_name);
setOptionText(window.document.the_form.the_examples, the_array);
}
function setOptionText(the_select, the_array)
{
for (loop=0; loop < the_select.options.length; loop++)
{
the_select.options[loop].text = the_array[loop];
}
}
// show me -->
</script>
<body>
<form name="the_form">
<select name="choose_category"
onChange="swapOptions(window.document.the_form.choose_category.options[selectedIndex].text);">
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
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
<?php
// Verbinding maken, een database selecteren
$link = mysql_connect("localhost", "root", "")
or die("Kan geen verbinding maken");
//print "Verbinding succesvol gemaakt";
mysql_select_db("schuurmans")
or die("Kan geen database selecteren");
$typekeuze = $type;
echo "$typekeuze";
// haal de login van alle medewerkers uit de database
$result = mysql_query(
"SELECT merk_naam FROM merk ORDER BY merk_naam");
if (!$result) {
echo("<P>fout bij uitvoeren aanvraag: " .
mysql_error() . "</P>");
exit();
}
print("<option value=\"null\">Kies een merk");
while($produkt=mysql_fetch_array($result))
{
print("<option value=\"$produkt[0]\">$produkt[0]\n");
}
echo "</select>";
// Resultaat-set vrij maken
mysql_free_result($result);
// Verbinding afsluiten
mysql_close($link);
?>
// Verbinding maken, een database selecteren
$link = mysql_connect("localhost", "root", "")
or die("Kan geen verbinding maken");
//print "Verbinding succesvol gemaakt";
mysql_select_db("schuurmans")
or die("Kan geen database selecteren");
$typekeuze = $type;
echo "$typekeuze";
// haal de login van alle medewerkers uit de database
$result = mysql_query(
"SELECT merk_naam FROM merk ORDER BY merk_naam");
if (!$result) {
echo("<P>fout bij uitvoeren aanvraag: " .
mysql_error() . "</P>");
exit();
}
print("<option value=\"null\">Kies een merk");
while($produkt=mysql_fetch_array($result))
{
print("<option value=\"$produkt[0]\">$produkt[0]\n");
}
echo "</select>";
// Resultaat-set vrij maken
mysql_free_result($result);
// Verbinding afsluiten
mysql_close($link);
?>
<select name="the_examples">
<option>kies eerst een merk
</select>
</form>
</BODY>
</HTML>
ik post het vanavond nog wel even denk ik
ik ga ervan uit dat de javascript goed is.
het is trouwens niet getest aangezien ik de database niet heb, volgende keer is het misschien handig om een sql dump neer te gooien zodat ik het kan testen :)
als je nog vragen hebt dan hoor ik het wel ;)
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
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
<?php
define('nl',"\n");
// Verbinding maken, een database selecteren
$link = mysql_pconnect()
or die("Kan geen verbinding maken");
//print "Verbinding succesvol gemaakt";
mysql_select_db("schuurmans")
or die("Kan geen database selecteren");
// haal de login van alle medewerkers uit de database
// Query voor de merken
$query='SELECT DISTINCT merk.merk_naam AS merk
FROM merk, model
WHERE merk.id=model.merk_id';
// Query voor de modellen
$query2='SELECT model.model_naam AS model, merk.merk_naam AS merk
FROM merk, model
WHERE merk.id=model.merk_id
ORDER BY merk.merk_naam';
$result = mysql_query($query);
$result2 = mysql_query($query2);
// data uit de resultaten halen (dit was je vergeten)
$merken=array();
while($row=mysql_fetch_assoc($result)){
$merken[]=$row['merk'];
$$row['merk']=array();
}
while($row=mysql_fetch_assoc($result)){
$$row['merk'][]=$row['model'];
}
// Resultaat-set vrij maken
mysql_free_result($result);
/****************************************************\
het script hieronder, uhm ik hoop dat je het snapt
ik vind het iets teveel werk om uit te leggen
kijk maar of het een beetje duidelijk is, zo niet
stuur me dan maar een berichtje :)
\****************************************************/
$output='<script type="text/javascript">'.nl.'<!-- poof'.nl;
$js_merken=nl.'var merken = new Array(';
foreach($merken as $value){
$js_merken.='"'.$value.'",';
$tmp_value='js_'.$value;
$$tmp_value=nl.'var '.$value.' = new Array(';
foreach($$value as $value2){
$$tmp_value[]='"'.$value2.'",';
}
$$tmp_value=substr($$tmp_value,0,-1).');'.nl;
$output.=nl.$$tmp_value;
}
$js_merken=substr($js_merken,0,-1).');'.nl;
$output.=nl.$js_merken.nl;
?>
define('nl',"\n");
// Verbinding maken, een database selecteren
$link = mysql_pconnect()
or die("Kan geen verbinding maken");
//print "Verbinding succesvol gemaakt";
mysql_select_db("schuurmans")
or die("Kan geen database selecteren");
// haal de login van alle medewerkers uit de database
// Query voor de merken
$query='SELECT DISTINCT merk.merk_naam AS merk
FROM merk, model
WHERE merk.id=model.merk_id';
// Query voor de modellen
$query2='SELECT model.model_naam AS model, merk.merk_naam AS merk
FROM merk, model
WHERE merk.id=model.merk_id
ORDER BY merk.merk_naam';
$result = mysql_query($query);
$result2 = mysql_query($query2);
// data uit de resultaten halen (dit was je vergeten)
$merken=array();
while($row=mysql_fetch_assoc($result)){
$merken[]=$row['merk'];
$$row['merk']=array();
}
while($row=mysql_fetch_assoc($result)){
$$row['merk'][]=$row['model'];
}
// Resultaat-set vrij maken
mysql_free_result($result);
/****************************************************\
het script hieronder, uhm ik hoop dat je het snapt
ik vind het iets teveel werk om uit te leggen
kijk maar of het een beetje duidelijk is, zo niet
stuur me dan maar een berichtje :)
\****************************************************/
$output='<script type="text/javascript">'.nl.'<!-- poof'.nl;
$js_merken=nl.'var merken = new Array(';
foreach($merken as $value){
$js_merken.='"'.$value.'",';
$tmp_value='js_'.$value;
$$tmp_value=nl.'var '.$value.' = new Array(';
foreach($$value as $value2){
$$tmp_value[]='"'.$value2.'",';
}
$$tmp_value=substr($$tmp_value,0,-1).');'.nl;
$output.=nl.$$tmp_value;
}
$js_merken=substr($js_merken,0,-1).');'.nl;
$output.=nl.$js_merken.nl;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Automerken dinges</title>
var the_array_name = new Array("");
Function swapOptions(the_array_name)
{
var numbers_select = window.document.the_form.the_examples;
var the_array = eval(the_array_name);
setOptionText(window.document.the_form.the_examples, the_array);
}
function setOptionText(the_select, the_array)
{
for (loop=0; loop < the_select.options.length; loop++)
{
the_select.options[loop].text = the_array[loop];
}
}
// show me -->
</script>
</head>
<body>
<form name="the_form" id="the_form">
<select name="choose_category" onchange="swapOptions(window.document.the_form.choose_category.options[selectedIndex].text);">
Code (php)
</select>
<select name="the_examples">
<option>kies eerst een merk</option>
</select>
</form>
</body>
</html>
Gewijzigd op 13/03/2004 23:44:00 door Rick
Quote:
als je het nou niet explode dan is het toch een stuk makkelijker?
gewoon strpos() loslaten op de string dan heb je het ook
gewoon strpos() loslaten op de string dan heb je het ook
Dank je man ik ben door die strpos() er ook meteen achter gekomen waardoor die andere niet werkte:D, ik had als vergelijkenis bij if($array_ip = "false") en het moet false zijn zonder "".
maar ik ga nu jouw manier gebruiken thx man!
Greetz serpent