Klein foutje in zoekmachine

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Open Source Developer Engineer Ontwikkelaar

Functieomschrijving Open Source Developer Engineer Ontwikkelaar Doorontwikkelen van de software; Het naadloos integreren van de verschillende componenten Het geven van advies over het inrichten; Het kiezen van methoden en technieken voor het realiseren (waarbij je gebruik maakt van Opensource); Het meedenken met de ontwikkelingen in de markt. Functie-eisen HBO werk- en denkniveau; Ervaring als Open Source Ontwikkelaar; Ruime ervaring met Open Source software (bijv. Zimbra, Alfresco, Nextcloud, Kopano etc, etc); Je hebt kennis van producten als Kubernetes, Openvswitch, Ceph, ZFS, Proxmox, Terraform, Puppet en Ansible; Nieuwsgierig en pro-actief /Out-of-the-box denken / Analytisch en conceptueel denken / Gepassioneerd, gedreven en bedreven

Bekijk vacature »

OutSystems Developer / International environment /

Functieomschrijving Would you like to work in a professional and international working environment and do you have experience in the field of OutSystems? Apply now! Translate wishes and requirements into technical designs; Design and develop new software feautures and technologies, mainly in the field of logistics/planning; Maintainance, administration and improvement of the OutSystems platform; Solving issues and bugs within the software; Define and run test plans; Documentation of development and bugfixes; Constant improvement of the OutSystems platform and follow-up of newest innovations within this field. Functie-eisen Knowledge of and experience with OutSystems is required. Experience with other low-code platforms is

Bekijk vacature »

Senior OutSystems Developer / International enviro

Functieomschrijving Would you like to work in a professional and international working environment and do you have extensive experience in the field of OutSystems? Apply now! Translate wishes and requirements into technical designs; Design and develop new software feautures and technologies, mainly in the field of logistics/planning; Maintainance, administration and improvement of the OutSystems platform; Solving issues and bugs within the software; Define and run test plans; Documentation of development and bugfixes; Constant improvement of the OutSystems platform and follow-up of newest innovations within this field. Functie-eisen Knowledge of and multiple of years experience with OutSystems is required. Experience with

Bekijk vacature »

Mark Coenie

Mark Coenie

29/12/2017 11:06:44
Quote Anchor link
Beste forumleden,

Ik heb een zoekfunctie op mijn website.
Maar sinds ik een ssl certificaat heb werkt de zoekfunctie niet goed meer.
Altans de resultaten verschijnen pas als ik de pagina eenmaal herlaad.
Ik ben een noob op gebied van javascript maar misschien wil iemand van jullie mij helpen.
De javascriptcode heb ik van de volgende website gedownload:
zoekmachine
Alleen werkt het forum op deze site helaas niet meer.

De code ziet er als volgt uit:
z_input.html :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<script language="JavaScript" type="text/javascript">
    veld = null;
    function EnterOpvangen(veld, event) {
    var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
        if (keyCode == 13) {
                if (veld == z_form.elements[0])
                {search_form(z_form)}
                return false;}
        else return true;}    
   </script>
<input id="invoer" type="text" name="d" onkeypress="return EnterOpvangen(this, event)" value=""><br>
<input id="reset" type="reset" value="delete all">
<input id="button" type="button" value="search" name="search button" onClick="search_form(z_form)">


z_form.js :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
var results_location = "z_output.php";
function search_form(z_form) {
   if (z_form.d.value.length > 0) {
       document.cookie = "d=" + escape(z_form.d.value);
       window.location = results_location;}}


z_data.js :

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
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
var sn = 0;
var s = new Array();

       // VOORBEELD -----------------------------------------------------------------------------------------------------------
s[sn++] =   /* AFBEELDING * /   '<img src="" alt="">^'+
       /* URL * /       '^<!-- leeg -->^'+
       /* ZOEKWOORDEN */       'zoek,woorden';
//hieronder niets wijzigen
var include_num = 0; // resultaten nummeren
var bold = 1; // vet weergeven
var cookies = document.cookie;
var p = cookies.indexOf("d=");
if (p != -1) {
   var st = p + 2;
   var en = cookies.indexOf(";", st);
   if (en == -1) {
       en = cookies.length;}
   var d = cookies.substring(st, en);
   d = unescape(d);}
var od = d;var m = 0;
if (d.charAt(0) == '"' && d.charAt(d.length - 1) == '"') {
   m = 1;}
var r = new Array();
var co = 0;
if (m == 0) {
   var woin = new Array();
   var w = d.split(" ");
   for (var a = 0; a < w.length; a++) {
       woin[a] = 0;
       if (w[a].charAt(0) == '-') {
           woin[a] = 1;}}
   for (var a = 0; a < w.length; a++) {
       w[a] = w[a].replace(/^\-|^\+/gi, "");}
   a = 0;
   for (var c = 0; c < s.length; c++) {
       pa = 0;
       nh = 0;
       for (var i = 0; i < woin.length; i++) {
           if (woin[i] == 0) {
               nh++;
               var pat = new RegExp(w[i], "i");
               var rn = s[c].search(pat);
               if (rn >= 0) {
                   pa++;} else {pa = 0;}}
           if (woin[i] == 1) {
               var pat = new RegExp(w[i], "i");
               var rn = s[c].search(pat);
               if (rn >= 0) {
                   pa = 0;}}}
       if (pa == nh) {
           r[a] = s[c];
           a++;}}
   co = a;}
if (m == 1) {
   d = d.replace(/"/gi, "");
   var a = 0;
   var pat = new RegExp(d, "i");
   for (var c = 0; c < s.length; c++) {
       var rn = s[c].search(pat);
       if (rn >= 0) {
           r[a] = s[c];
           a++;}}
   co = a;}
function return_query() {
   document.z_form.d.value = od;}
function num_jscript() {
   document.write(co);}
function out_jscript() {
   if (co == 0) {
       document.write('<b>Use other keywords or<br>');
       document.write('use more keywords or<br>');
       document.write('use cominations like:<br>');
       document.write('color of file, type of file, topic of file.<br>');
       document.write('and try again</b>');
       return;}
   for (var a = 0; a < r.length; a++) {
       var os = r[a].split("^");
       if (bold == 1 && m == 1) {
           var br = "<b>" + d + "</b>";
           os[2] = os[2].replace(pat, br);}
       if (include_num == 1) {
           document.write(a + 1, '. <a class="result" href="', os[1], '">', os[0], '</a>', os[2]);}
else {document.write('<a class="result" href="', os[1], '">', os[0], '</a>', os[2]);}}}


z_output.html :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<b><i>There were <script language="JavaScript1.3" type="text/javascript">num_jscript()</script> results found!</i></b>
  
<script language="JavaScript1.3" type="text/javascript">out_jscript()</script>


Ik hoop dat iemand mij kan helpen
Gewijzigd op 29/12/2017 12:12:07 door Mark Coenie
 
PHP hulp

PHP hulp

22/09/2020 12:49:36
 
- Ariën -
Beheerder

- Ariën -

29/12/2017 11:29:57
Quote Anchor link
Kan je de code tussen code-tags zetten? Dat maakt het wat beter leesbaarder.
Zelf vermoed ik dat er sprake is van 'mixed content' en dat je het pad naar je JS-bestand moet voorzien van een // als protocol. Dan wordt er gekeken of deze via HTTP of HTTPS wordt ingeladen.
Gewijzigd op 29/12/2017 11:32:16 door - Ariën -
 
Mark Coenie

Mark Coenie

29/12/2017 12:38:51
Quote Anchor link
Bedankt voor je reactie Ariën,

Hoe zou zo'n pad er dan uit moeten zien? Moet ik die // voor het pad plaatsen? want dat heb ik geprobeerd maar dan vind ie het js bestand niet meer.
Ik heb het ook geprobeerd met een absoluut pad. Dus https://pad/jsbestand.js maar hiermee is het nog steeds niet opgelost.

Bij mixed content verschijnt er meestal een uitroeptekentje bij het groene slotje in de url balk. Dat is nu ook niet het geval.
 
- Ariën -
Beheerder

- Ariën -

29/12/2017 12:48:02
Quote Anchor link
Wel apart.
Heb je een 'testcase' online staan?
 
Mark Coenie

Mark Coenie

29/12/2017 14:41:35
Quote Anchor link
Ik heb het voorlopig met een extra button die de pagina herlaad opgelost.
Hier is de url naar de zoekmachine:
https://background-tiles.com/search.php
 
Thomas van den Heuvel

Thomas van den Heuvel

29/12/2017 14:47:11
Quote Anchor link
Quote:
Laatste aanpassingen: 05.08.2005

Misschien werkt dit alles voor wat je er mee wilt bereiken, maar wellicht wordt/is het tijd om over een nieuwe oplossing na te denken die wellicht ook wat gebruiksvriendelijker is (en niet afhankelijk van JS is)?
 
Rob Doemaarwat

Rob Doemaarwat

29/12/2017 14:54:57
Quote Anchor link
Het gaat fout op de regel
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if(veld == z_form.elements[0])
Het 1e element in het form (met index 0) is namelijk de fieldset daarboven, en dus never nooit het "veld". Maar waarom controleer je dit hier? Deze functie is toch alleen maar gebonden aan dat "invoer" veld? Dan kun je deze controle net zo goed weglaten.
 
Mark Coenie

Mark Coenie

29/12/2017 15:37:09
Quote Anchor link
Bedankt voor je reactie Rob Doemaarwat,

Ik heb die controle eruit gehaald maar het probleem is nog niet opgelost.
Wat ik vergeten ben te vermelden is dat de zoekmachine wel goed werkt in localhost.
Gewijzigd op 29/12/2017 15:43:21 door Mark Coenie
 
Rob Doemaarwat

Rob Doemaarwat

29/12/2017 15:45:26
Quote Anchor link
Volgens mij heb je iets te grof gesnoeid, want de hele functie "EnterOpvangen()" is nu weg. Je had alleen die if(...) regel weg moeten halen (en de evt. sluitende accolade).
 
Mark Coenie

Mark Coenie

29/12/2017 16:21:49
Quote Anchor link
Ik had het eerst geprobeerd zoals jij het zei maar dit had geen effect.
Ik heb de functie EnterOpvangen() er maar helemaal uitgehaald omdat deze niet werkte.
 
Rob Doemaarwat

Rob Doemaarwat

29/12/2017 19:00:35
Quote Anchor link
Nou, zet 'm dan maar weer terug, want nu hebben we niks meer om op te schieten.
 
Mark Coenie

Mark Coenie

30/12/2017 12:19:03
Quote Anchor link
Oké Rob,
Ik heb de EnterOpvangen() functie weer terug geplaatst.
de regels: 'if (veld == z_form.elements[0])
{search_form(z_form)}'
heb ik niet meer terug geplaatst zoals je zei.
 
- Ariën -
Beheerder

- Ariën -

03/01/2018 13:15:14
Quote Anchor link
En werkt het nu?
 
Mark Coenie

Mark Coenie

03/01/2018 13:17:55
Quote Anchor link
Deze reactie is gewijzigd!

Helaas werkt het nog niet in chrome en edge.
wel in firefox.
Gewijzigd op 03/01/2018 13:59:11 door Mark Coenie
 
- Ariën -
Beheerder

- Ariën -

03/01/2018 13:22:21
Quote Anchor link
Krijg je geen syntax-error? In dat geval is je code gewoon fout.
Aan SSL kan het niet liggen, tenzij je iets via HTTP in zou laden op HTTPS, maar dat lijkt mij niet het geval.

Als ik op 'e' zoek krijg ik eerst een me,ding dat er niks gevonden is, en daarna als ik opnieuw zoek wel. dan lijkt het probleem mij meer in je PHP-script. Maar waarom gebruik je geen GET voor je zoekopdracht? Dat is een stuk gebruikelijker bij zoekopdrachten.
Gewijzigd op 03/01/2018 13:25:08 door - Ariën -
 
Mark Coenie

Mark Coenie

03/01/2018 13:57:59
Quote Anchor link
Ik snap er niks meer van.
Het werkt wel in firefox maar niet in ms edge of chrome.
In localhost werkt het wel in alle browsers.

Quote:
Krijg je geen syntax-error? In dat geval is je code gewoon fout.
Aan SSL kan het niet liggen, tenzij je iets via HTTP in zou laden op HTTPS, maar dat lijkt mij niet het geval.

Als ik op 'e' zoek krijg ik eerst een me,ding dat er niks gevonden is, en daarna als ik opnieuw zoek wel. dan lijkt het probleem mij meer in je PHP-script. Maar waarom gebruik je geen GET voor je zoekopdracht? Dat is een stuk gebruikelijker bij zoekopdrachten


Beste Ariën, ik ben geen programmeur. Ik kan hoogstens een beetje knippen en plakken.
In firefox werkt het nu wel maar het werkt nog niet in ms edge en chrome.
Ik krijg geen syntax error.
Gewijzigd op 03/01/2018 14:00:01 door Mark Coenie
 
- Ariën -
Beheerder

- Ariën -

03/01/2018 14:06:32
Quote Anchor link
Het script waar je heen linkt is een script van vier jaar oud, of misschien wel ouder.
Waarom zou je het niet geheel in PHP oplossen, en hoogstens JavaScript voor een validatie of hulp bij het invullen van het veld.

De vraag is eigenlijk: Hoe en waar wordt er gezocht?
Gewijzigd op 03/01/2018 14:13:37 door - Ariën -
 
Mark Coenie

Mark Coenie

03/01/2018 19:08:39
Quote Anchor link
De reden dat ik deze zoekmachine gebruik is dat deze zoekmachine precies naar mijn zin werkt.
Ik kan zelf de pagina's bepalen waar naar gezocht kan worden, ik kan zelf de zoekwoorden bepalen per pagina en ik kan de resultaten met afbeeldingen weergeven.
Zo ziet de data (array) eruit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
var sn = 0;
var s = new Array();
s[sn++] =   /* AFBEELDING * /   '<img src="" alt="">^'+
            /* URL * /       'https://url-naar-pagina-afbeelding-1^<!-- leeg -->^'+
            /* ZOEKWOORDEN */       'zoek,woorden';
s[sn++] =   /* AFBEELDING * /   '<img src="" alt="">^'+
            /* URL * /       'https://url-naar-pagina-afbeelding-2^<!-- leeg -->^'+
            /* ZOEKWOORDEN */       'zoek,woorden';
// etc...

Met behulp van de zoekmachine doorzoekt ie de array en geeft alleen de afbeeldingen weer waar de gezochte zoekwoorden staan.

Ik heb de zoekmachine nu verplaatst naar een andere website waar ik geen ssl certificaat heb. Hier werkt ie wel goed dus het moet iets te maken hebben met het certificaat of https.

Tijdelijke locatie zoekmachine:
zoekmachine
Gewijzigd op 03/01/2018 19:15:14 door Mark Coenie
 
- Ariën -
Beheerder

- Ariën -

03/01/2018 19:38:13
Quote Anchor link
Is het juist niet onhandig dat je steeds je data-array in JavaScript steeds moet aanpassen? Een typfout en je resultaten doen niet meer wat ze moeten doen.

Ik stel toch in op een pad, als het op HTTPS niet werkt.
Maar misschien is het zinvoller om een modernere zoekmachine te maken.
Gewijzigd op 03/01/2018 19:38:40 door - Ariën -
 



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.