vraagje over array_search()

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

SerpenT

SerpenT

12/03/2004 14:53:00
Quote Anchor link
heey ik heb dus een 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";
}
 
PHP hulp

PHP hulp

25/11/2024 14:35:14
 

11/03/2004 21:24:00
Quote Anchor link
Kijk dit is een foutje in jou systeem bas... Als iemand nu een berichtje plaatst staat deze reactie er al
 

12/03/2004 16:34:00
Quote Anchor link
Waarom wil je die array searchen? als je nou gewoon zo doet

$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)
 

12/03/2004 16:36:00
Quote Anchor link
ugh, kan niet editten, moet natuurlijk zijn:

$arrayip = explode ("|", $referip);
if($arrayip[0] == $_SERVER["REMOTE_ADDR"]){
"ip komt voor bla bla bla"
}else{
"ip komt niet voor bla bla"
}
 
SerpenT

SerpenT

12/03/2004 16:46:00
Quote Anchor link
jah maar er kunnen dus meerdere ipadressen in een array staan dus dan checkt hij nog steeds alleen de eerst:S dus dan moet het iets zijn van
$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?
 
Rick

Rick

12/03/2004 17:02:00
Quote Anchor link
als je het nou niet explode dan is het toch een stuk makkelijker?

gewoon strpos() loslaten op de string dan heb je het ook
 

13/03/2004 16:02:00
Quote Anchor link
Ik wil graag een combobox vullen uit een MySQL database op basis van een andere combobox. Ik wil hiervoor geen gebruik maken van frames.
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("
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $js_array; ?>
");

Function swapOptions(the_array_name)
{
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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);
            ?>


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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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);
                ?>


<select name="the_examples">
<option>kies eerst een merk
</select>
</form>
</BODY>
</HTML>
 
Rick

Rick

13/03/2004 20:59:00
Quote Anchor link
ik schrijf zo wel eventjes een scriptje, ik zit nu met 56k (vraag maar niet waarom) dus blijf liever niet te lang online ;)

ik post het vanavond nog wel even denk ik
 
Rick

Rick

13/03/2004 23:44:00
Quote Anchor link
zoals beloofd hier het script
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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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;
?>

<!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>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?=$output;?>


var the_array_name = new Array("
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $js_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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
            echo '<option value="null">Kies een merk'.nl;
            foreach($merken as $value){
                echo'<option value="$value">$value'.nl;
            }

            ?>

</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
 
SerpenT

SerpenT

15/03/2004 00:35:00
Quote Anchor link
rick schreef:
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

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
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.