FRIHOSTFORUMSFAQTOSBLOGSDIRECTORY
You are invited to Log in or Register a Frihost Account!

Alweer een scriptje dat niet helemaal goed is :P

 


jordi
Ik heb een scriptje gezocht en (een soort van) gevonden. Ik wil dat mensen als ze op mijn site zijn, dat ze dan verschillende pagina's kunnen 'opslaan' door middel van cookies. Nou heb ik het volgende script gevonden. Het probleem is alleen dat mensen hier hun tekst moeten invullen, en dat dat dan opgeslagen word in een cookie. Maar ik wil dat de desbetreffende pagina word opgeslagen in een cookie.
ps. ik wil best voor elke pagina de url veranderen ( in dat script ) .. als het nodig is Razz

Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
   <head><title></title>
      <script type="text/javascript">


      function lees_cookie()
      {
         var inhoud = "Je hebt nog niks opgeslagen!";

         if(document.cookie != "")
         {
            inhoud = document.cookie;
         }
         /* wat string aanpassingen die de expire inhoud weglaat */
         /*var expires_locatie_in_tekst = inhoud.indexOf("expires");
         inhoud = inhoud.substring(0, expires_locatie_in_tekst);*/
         var cookie_inh = document.getElementById("cookie_inhoud");
         cookie_inh.firstChild.nodeValue = inhoud;
      }

      function sla_op_in_cookie(tekst)
      {
         /* verval datum in cookie zetten */
         var verval_datum = new Date;
         verval_datum.setMonth(verval_datum.getMonth() + 3);
         document.cookie = tekst + "; expires =" + verval_datum.toGMTString() + ";";
         lees_cookie();
      }

      function voorbereiding()
      {
         var form = document.getElementById("cookie_knop");
         var input = document.getElementById("input");
         form.onclick = function()
         {
            sla_op_in_cookie(input.value);
            return false;
         }
         lees_cookie();
      }

      window.onload = voorbereiding;
         
      </script>

</head>
<body>
   <h3>Inhoud Cookie:</h3>
   <p id="cookie_inhoud">Inhoud van cookie..</p>
      <input type="text" id="input"></input>
      <a href="#" id="cookie_knop">[sla dit op]</a>
</body>
</html>
jordi
En trouwens, bijna vergeten te zeggen..

Er moeten natuurlijk wel meerdere pagina's op te slaan zijn Smile ..
Er komt een aparte pagina met wat uitleg (maak ik zelf) .. en dan daaronder staan dan alle links (daar moet dus iets komen om te lezen wat de bezoeker allemaal heeft opgeslagen Smile)
En ook achter die links op die pagina moet "delete" staan.. die moet ze dus de pagina niet meer zichtbaar maken in dat lijstje, eruit halen dus Smile
--------

ps. als je een ander script weet dat al goed is mag je het ook posten Very Happy
Museobanus
Een scriptje zetten is blijkbaar de nieuwe manier om veel punten te halen Cool
jordi
Museobanus wrote:
Een scriptje zetten is blijkbaar de nieuwe manier om veel punten te halen Cool


Jah, dat is het ook eigenlijk wel jah Razz Maar kep het toch nodig en weet geen andere plek om het te vragen dusjah Razz
Maar dit is geen antwoord op mijn vraag he Razz
jordi
*bump*

Weet niemand zo'n soort script anders te vinden Sad ??
Ecthelion
Hum... juist mijn bescheiden mening, maar is het geen beter idee om te werken met logins etc?
Cookies, die wis ik op regelmatige basis, om het niet _te_ gemakkelijk te maken om al mijn doel en laten op het internet te volgen.
Met logins kun je al die dingen eenvoudig opslaan in een mysql database en gaan ze niet verloren.
Bovendien kun je dan ook statistieken maken om te zien welke pagina's populair zijn enz.

Wat je probleempje betrefd,
Quote:
Het probleem is alleen dat mensen hier hun tekst moeten invullen, en dat dat dan opgeslagen word in een cookie. Maar ik wil dat de desbetreffende pagina word opgeslagen in een cookie.
ps. ik wil best voor elke pagina de url veranderen ( in dat script ) .. als het nodig is Razz

Lijkt me niet verschikkelijk moeilijk...

Naar ik begrijp wordt de variabele 'tekst' opgeslagen in het cookie, niet?
Nou, dan moet je die eenvoudig vervangen door de url, zoals je zelf voorsteld...

Met andere woorden:
Stel dat ik op de pagina 'superspelletjes.php' aan het surfen ben, en dat ik die pagina wil 'opslaan'
Wel dan klik ik op het woord 'pagina opslaan' (Een knop die je ergens duidelijk zichtbaar op de pagina hebt staan)
Door dat te doen activeer ik dus sla_op_in_cookie('http://www.mijnsupersite/superspelletjes.php');
Voila, opgeslagen...

Wat het verwijderen betrefd, gewoon de vervaldatum van de cookie veranderen naar 01/01/2000 (of een andere datum in het verleden) zal die cookie laten 'vervallen'.

Voila,
ik hoop dat ik niet teveel onzin vertel en dat dit je ietwat helpt...
jordi
Lijkt me een beetje overdreven om alleen voor het opslaan van die pagina een login te maken enzovoort .. Ik weet dat cookies vaak word verwijderd, maar dat maakt niet uit, ik zet het er ook bij op me site.
Ecthelion
Nuja hangt er natuurlijk van af wat voor site je maakt.
Het is inderdaad overdreven als het enkel voor een pagina op te slaan is.

Maar als je een community opbouwd, eventueel feedback wilt van mensen, misschien een forum, ...
Maargoed ik weet niet wat je juist doet dus kan ik enkel gissen.

Hoedanook, lukt het om te doen wat je wou na die kleine aanpassingen?
jordi
Ecthelion wrote:
Nuja hangt er natuurlijk van af wat voor site je maakt.
Het is inderdaad overdreven als het enkel voor een pagina op te slaan is.

Maar als je een community opbouwd, eventueel feedback wilt van mensen, misschien een forum, ...
Maargoed ik weet niet wat je juist doet dus kan ik enkel gissen.


Geen van die dingen doe ik met me site, het gaat ook echt om enkel en alleen die pagina's opslaan Smile


Ecthelion wrote:
Hoedanook, lukt het om te doen wat je wou na die kleine aanpassingen?

Uhh.. nee Sad .. kben ook nog steeds aan het googlen Razz .. maar nog geen resultaat
Met die url gewoon erin zetten werkt niet.. want dan werkt hij niet meer Confused
Ecthelion
jordi wrote:
Uhh.. nee Sad .. kben ook nog steeds aan het googlen Razz .. maar nog geen resultaat
Met die url gewoon erin zetten werkt niet.. want dan werkt hij niet meer Confused


Dat kan ik moeilijk geloven. Die url is ook gewoon een 'string' dus als het niet werkt is het dat je het slecht ingeeft.
Desnoods zeg je
$tekst = "www.dejuisteurl.frih.net";
sla_op_in_cookie($tekst);

Als dat niet werkt dan is er iets mis met je functies...

Hoedanook, als je slechts een beperkt aantal paginas hebt kun je gewoon dit gebruiken:

Stel, je hebt 5 paginas die je kunt opslaan:"www.kookkunst.frih.net", "www.kookkunst.frih.net/fruitsla.php", "www.kookkunst.frih.net/appeltaart.php", "www.kookkunst.frih.net/special_creme.php", "www.kookkunst.frih.net/coupe_special.php"

Op pagina "www.kookkunst.frih.net" heb je dan een knop die deze code activeert:
if(isset($_COOKIE['kook1'])){ //controleer dat het cookie er nog niet is
setcookie("kook1", "1",time()+3600000, "/"); //De waarde 1 omdat het opgeslagen is.
}// time()+3600000 is de levensduur en "/" zorgt ervoor dat de cookie geldt in alle paginas van je website

Op pagina "www.kookkunst.frih.net/fruitsla.php"
staat er dan eveneens een knop die ongeveer dezelfde code heeft:
if(isset($_COOKIE['kook2'])){ //controleer dat het cookie er nog niet is
setcookie("kook2", "1",time()+3600000, "/"); //De waarde 1 omdat het opgeslagen is.
}// time()+3600000 is de levensduur en "/" zorgt ervoor dat de cookie geldt in alle paginas van je website

.... en zo per pagina 1 cookie

Dan heb je 1 pagina, die alle cookies controleerd en als ze er zijn maakt hij een lijn zichtbaar:

echo "U heeft volgende pagina's opgeslagen:"
if(isset($_COOKIE['kook1'])){
echo <a href="www.kookkunst.frih.net"> Hoofdpagina </a>
}
if(isset($_COOKIE['kook2'])){
echo <a href="www.kookkunst.frih.net/fruitsla.php"> Fruitsla </a>
}
if(isset($_COOKIE['kook3'])){
echo <a href="www.kookkunst.frih.net/appeltaart.php"> Appeltaart </a>
}

enzovoort...


Last edited by Ecthelion on Fri Aug 17, 2007 5:17 pm; edited 1 time in total
jordi
Ecthelion wrote:
Hoedanook, als je slechts een beperkt aantal paginas hebt kun je gewoon dit gebruiken:

Stel, je hebt 5 paginas die je kunt opslaan:"www.kookkunst.frih.net", "www.kookkunst.frih.net/fruitsla.php", "www.kookkunst.frih.net/appeltaart.php", "www.kookkunst.frih.net/special_creme.php", "www.kookkunst.frih.net/coupe_special.php"

Op pagina "www.kookkunst.frih.net" heb je dan een knop die deze code activeert:
if(isset($_COOKIE['kook1'])){ //controleer dat het cookie er nog niet is
setcookie("kook1", "1",time()+3600000, "/"); //De waarde 1 omdat het opgeslagen is.
}// time()+3600000 is de levensduur en "/" zorgt ervoor dat de cookie geldt in alle paginas van je website

Op pagina "www.kookkunst.frih.net/fruitsla.php"
staat er dan eveneens een knop die ongeveer dezelfde code heeft:
if(isset($_COOKIE['kook2'])){ //controleer dat het cookie er nog niet is
setcookie("kook1", "1",time()+3600000, "/"); //De waarde 1 omdat het opgeslagen is.
}// time()+3600000 is de levensduur en "/" zorgt ervoor dat de cookie geldt in alle paginas van je website

.... en zo per pagina 1 cookie


Dit zou wel kunnen werken jah Smile .. ik heb het nog niet getest, vooraf ff een vraagje:
Als ik die code op mijn pagina zet, zal hij het meteen uitvoeren ....
Maar hij mag het pas uitvoeren als de bezoeker op het woord/plaatje 'opslaan' klikt ..
Dat kan dus dan toch niet Confused


Ecthelion wrote:

Dan heb je 1 pagina, die alle cookies controleerd en als ze er zijn maakt hij een lijn zichtbaar:

echo "U heeft volgende pagina's opgeslagen:"
if(isset($_COOKIE['kook1'])){
echo <a href="www.kookkunst.frih.net"> Hoofdpagina </a>
}
if(isset($_COOKIE['kook2'])){
echo <a href="www.kookkunst.frih.net/fruitsla.php"> Fruitsla </a>
}
if(isset($_COOKIE['kook3'])){
echo <a href="www.kookkunst.frih.net/appeltaart.php"> Appeltaart </a>
}

enzovoort...


Hmm.. laat hij dus die echo zien dan als de cookie bestaat ???
Ecthelion
Quote:
Dit zou wel kunnen werken jah Smile .. ik heb het nog niet getest, vooraf ff een vraagje:
Als ik die code op mijn pagina zet, zal hij het meteen uitvoeren ....
Maar hij mag het pas uitvoeren als de bezoeker op het woord/plaatje 'opslaan' klikt ..
Dat kan dus dan toch niet Confused


Ja, vandaar dat ik zeg dat "er een knop is die de code activeert"
Om knoppen enz te maken moet je <form> gebruiken.
Ik heb even geen zin om dat allemaal uit te leggen, dus geef ik je snel een link door die ik net gegoogled hebt, en die het uitlegd.
http://linuxuser.copyleft.be/php/htmlformsphp.php

Wat jij moet heben is een knop:
<form action="opslaan.php" method="post">
<input type="submit" name="kook1" value="Pagina opslaan" >;
</form>

Dit zal aan het scriptje "opslaan.php" de waarde "kook1" doorgeven. (Of een adere waarde die je kiest om naar die bepaalde pagina te verwijzen.)

Nuja, zoek eerst zelf een beetje op formulieren, ik heb effe geen tijd om uit te typen wat en hoe etc. Smile

Als het echt niet lukt, wil ik wel nog helpen

EDIT:
Vergeten te antwoorden op je laatste vraag.
>>Hmm.. laat hij dus die echo zien dan als de cookie bestaat ???
Inderdaad, als een cookie van de reeks bestaat (en de isset dus uitevoerd wordt), dan zal de lijn die na 'echo' staat in de html-code van de gegenereerde pagina afgedrukt worden.
Daarom heb ik er <a href=...> ... </a> voor gezet, want die html-code zal geinterpreteerd worden door je browser. Alles wat je in de echo steekt zal dus als html-code doorgegeven worden.
Je zult dus waarschijnlijk de htmlcode en de phpcode door elkaar moeten gebruiken om het netjes te laten afdrukken...
jordi
Bedankt, ik ga het nu ff testen Smile
en met die form, ik weet hoe dat moet Wink
jordi
Hmm.. het is niet gelukt Sad
Ik heb wel een knop enzo, maar ik krijg de favorieten pagina waar hij ze laat zien niet te zien ..

http://test.jordi.frih.net/index.php
Code:
<html>
....allerlei code....
<body>
....allerlei code....
...
<form action="opslaan.php" method="post">
<input type="submit" name="TWC-Hoofdpagina" value="Pagina opslaan" >
</form>
...
....allerlei code....
</body>
</html>


opslaan.php
Code:
<?php
if(isset($_COOKIE['TWC-Hoofdpagina'])){
setcookie("TWC-Hoofdpagina", "1",time()+3600000, "/");
}
?>


http://test.jordi.frih.net/favorieten.php
Code:
]<html>
....allerlei code....
<body>
....allerlei code....
...
<?php
echo "U heeft volgende pagina's opgeslagen:"
if(isset($_COOKIE['TWC-Hoofdpagina']));
{
echo <a href="www.kookkunst.frih.net"> Hoofdpagina </a>
}
if(isset($_COOKIE['kook2'])){
echo <a href="www.kookkunst.frih.net/fruitsla.php"> Fruitsla </a>
}
if(isset($_COOKIE['TWC-'])){
echo <a href="www.kookkunst.frih.net/appeltaart.php"> Appeltaart </a>
}
?>
...
....allerlei code....
</body>
</html>


Error
Parse error: syntax error, unexpected T_IF, expecting ',' or ';' in /home/jordi/domains/jordi.frih.net/public_html/test/favorieten.php on line 257

Overig
Als ik op die knop druk, gaat hij naar een witte pagina, maar ik wil dat hij op dezelfde pagina blijft. En als het kan er ook weergeeft "pagina opgeslagen".. Hoe doe ik dat nou weer ??
Ecthelion
Ja nou ik had die code gewoon getypt als voorbeeld, niet om letterlijk te laten overnemen Smile

[url]Wat je pagina betrefd: [/url]
http://test.jordi.frih.net/index.php
Ik krijg de fout
Quote:
Not Found
The requested URL /index.php was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.


Reeds gewist?

Wat de fouten betrefd dieje hebt met
if(isset($_COOKIE['TWC-Hoofdpagina'])){
echo <a href="www.kookkunst.frih.net"> Hoofdpagina </a>
}
Wel er mankeert een ; aan het einde van iedere echo.
echo <a href="www.kookkunst.frih.net"> Hoofdpagina </a>;

Quote:
Overig
Als ik op die knop druk, gaat hij naar een witte pagina, maar ik wil dat hij op dezelfde pagina blijft. En als het kan er ook weergeeft "pagina opgeslagen".. Hoe doe ik dat nou weer ??

Dat is enkel mogelijk als je bij <form action="opslaan.php" method="post"> in plaats van opslaan.php dezelfde pagina geeft als degene waar je op bent.
Dat is mogelijk, en niet echt een probleem.

Maar ik stel voor om het anders aan te pakken.
Verander de code van de pagina "opslaan.php" door iets aantrekkelijker, zodat het een keurig bericht geeft dat zegt dat de pagina opgeslagen is.
En voeg onder deze code gewoon dit toe:

include('http://test.jordi.frih.net/index.php');

Daardoor zal je vorige pagina automatisch onder je bericht afgedrukt worden.
Niets gezien, niets gebeurd.
Een andere mogelijkheid is onmiddelijk terug te sturen naar de vorige pagina.
Een redirect dus. Misschien is dat nog beter.

Dat is mss niet erg professioneel, maar werkt perfect.
Een andere manier zou zijn door
<
Dat is enkel mogelijk als je bij <form action="opslaan.php" method="post"> in plaats van opslaan.php dezelfde pagina geeft als degene waar je op bent.
>
Wanneer je op de knop submit drukt geef je extra info door.
Door te controleren of die info doorgegeven is kun je bepalen of het stukje code moet uitgevoerd worden of niet.
Gewoon een extra isset dus, maar ik heb de tijd niet om links te zoeken die het beter zouden uitleggen.
jordi
Oeps, sorry foute link gegeven.. http://test.jordi.frih.net/index1.php

Het werkt nog niet, ik heb ook favorieten ff aangepast (niets aan de code hoor, alleen wat overbodige dingen weggedaan).

Ik krijg nu de volgende error, dezelfde als eerst ..

favorieten.php
Error = Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /home/jordi/domains/jordi.frih.net/public_html/test/favorieten.php on line 4

Dan krijg ik de volgende error als ik geen ; achter de 2e zin zet ( echo "u heeft de .....geslagen:";

Error = Parse error: syntax error, unexpected T_IF, expecting ',' or ';' in /home/jordi/domains/jordi.frih.net/public_html/test/favorieten.php on line 3

Code:
<?php
echo "U heeft volgende pagina's opgeslagen:";
if(isset($_COOKIE['hoofdpagina'])){
echo "<a href="www.kookkunst.frih.net"> Hoofdpagina </a>";
}
if(isset($_COOKIE['kook2'])){
echo "<a href="www.kookkunst.frih.net/fruitsla.php"> Fruitsla </a>";
}
if(isset($_COOKIE['TWC-'])){
echo "<a href="www.kookkunst.frih.net/appeltaart.php"> Appeltaart </a>";
}
?>



Ik heb dat met dat include nog niet gedaan, maar dat zal (hoopik) wel lukken. Maar dat doe ik pas als het script echt werkt, ik weet namelijk ook nog niet of hij echt een cookie maakt.
jordi
jordi wrote:
....ik weet namelijk ook nog niet of hij echt een cookie maakt.


Ik heb in de map Tempory Internet Files gekeken, (daar staan toch de cookies?) .. Naja, dat eerst geleegd via ander venster. En toen weer een cookie gemaakt via me site. Maar hij komt er niet bij te staan!!?? Oftewel, die doet het ook niet Crying or Very sad

Ik zet nog even opslaan.php hierneer:

Code:
<?php
if(isset($_COOKIE['hoofdpagina'])){
setcookie("hoofdpagina", "1",time()+3600000, "/");
}
?>
Bondings
Er is ook nog het probleem dat een cookie een maximum grootte heeft. Dit is 4KB of misschien iets groter bij sommige browsers. Volgens mij is dat te weinig om een hele pagina op te slaan, behalve als die heel klein is.
jordi
Bondings wrote:
Er is ook nog het probleem dat een cookie een maximum grootte heeft. Dit is 4KB of misschien iets groter bij sommige browsers. Volgens mij is dat te weinig om een hele pagina op te slaan, behalve als die heel klein is.


Hmm.. dat wist ik niet, maar het gaat ook niet om de hele pagina opslaan Razz het gaat om de url op te slaan. Maar het is nu anders, ik weet niet WAT er in de cookie komt (misschien wel niks?). Maar nou maakt die pagina dus een cookie, en dan controleert die andere pagina of de cookie er is. En als die er is. Laat hij de opgegeven tekst zien Smile. In dit geval word het volgende gegeven:
Code:

<a href="depagina.php/html"> De paginanaam </a>


Alleen het werkt nog niet helemaal ...
Bondings
Over de code, het probleem is dat het van de eerste " tot de volgende " gaat. Dus ofwel moet je een enkele gebruiken, of voor degene ertussen een backslash (\) zetten.

Code:
echo '<a href="www.kookkunst.frih.net"> Hoofdpagina </a>';

of
Code:
echo "<a href=\"www.kookkunst.frih.net\"> Hoofdpagina </a>";


Code:
<?php
echo "U heeft volgende pagina's opgeslagen:";
if(isset($_COOKIE['hoofdpagina'])){
echo '<a href="www.kookkunst.frih.net"> Hoofdpagina </a>';
}
if(isset($_COOKIE['kook2'])){
echo '<a href="www.kookkunst.frih.net/fruitsla.php"> Fruitsla </a>';
}
if(isset($_COOKIE['TWC-'])){
echo '<a href="www.kookkunst.frih.net/appeltaart.php"> Appeltaart </a>';
}
?>
Ecthelion
Bondings wrote:
Er is ook nog het probleem dat een cookie een maximum grootte heeft. Dit is 4KB of misschien iets groter bij sommige browsers. Volgens mij is dat te weinig om een hele pagina op te slaan, behalve als die heel klein is.


Eh, de code die ik gaf maakt gewoon een cookie aan. Die cookie bevat enkel een 1 (onbelangrijk).
De pagina die kijkt welke pagina's opgeslagen zijn kijkt enkel of de cookie van de pagina in kwestie bestaat. Er wordt nooit naar de inhoud gekeken.
(Voor iedere pagina wordt dus een nieuwe cookie gemaakt. En voor iedere pagina controleerd de pagina 'favorieten' of de juiste cookie bestaat)

Oh, en nog iets.
Er wordt inderdaad nooit een cookie gemaakt.
Ik overliep net de code en gaf mezelf een klap op men kop...

Code:
<?php
if(isset($_COOKIE['hoofdpagina'])){
setcookie("hoofdpagina", "1",time()+3600000, "/");
}
?>


Stom hé...
Ik kijk of de cookie bestaat en als hij bestaat maak ik hem aan...
Het moet andersom natuurlijk...

Code:
if(isset($_COOKIE['hoofdpagina'])){
//Kleine controle...
echo "Deze text betekend dat de cookie er reeds was";
}else{
setcookie("hoofdpagina", "1",time()+3600000, "/");
echo "Nu werd de pagina opgeslagen";
}
?>


Stom stom stom...
jordi
Alles lijkt te werken Very Happy

Bedankt mensen Wink Very Happy

-EDIT-
ik heb alle soorten enters geprobeerd, maar bij elke geeft hij een error.. Hoe zet in een enter in php Confused

De volgende heb ik geprobeerd:

<br>
</ br> .. of .. <\ br>
<br /> .. of.. <br \>
nl2br()

Of ik zet ze er verkeerd in, ... ik zet ze gewoon op de plek waar een enter moet komen .. Vreemd Confused

-2e EDIT-

Al gevonden Razz
<br>\n
dat moest het zijn Razz
Reply to topic    Frihost Forum Index -> Dutch -> Algemeen

FRIHOST HOME | FAQ | TOS | ABOUT US | CONTACT US | SITE MAP
© 2005-2007 Frihost, forums powered by phpBB.