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
| 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>
|
En trouwens, bijna vergeten te zeggen..
Er moeten natuurlijk wel meerdere pagina's op te slaan zijn
..
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
)
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
--------
ps. als je een ander script weet dat al goed is mag je het ook posten 
Een scriptje zetten is blijkbaar de nieuwe manier om veel punten te halen 
| Museobanus wrote: |
Een scriptje zetten is blijkbaar de nieuwe manier om veel punten te halen  |
Jah, dat is het ook eigenlijk wel jah
Maar kep het toch nodig en weet geen andere plek om het te vragen dusjah
Maar dit is geen antwoord op mijn vraag he 
*bump*
Weet niemand zo'n soort script anders te vinden
??
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...
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.
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?
| 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
| Ecthelion wrote: |
| Hoedanook, lukt het om te doen wat je wou na die kleine aanpassingen? |
Uhh.. nee
.. kben ook nog steeds aan het googlen
.. maar nog geen resultaat
Met die url gewoon erin zetten werkt niet.. want dan werkt hij niet meer 
| jordi wrote: |
Uhh.. nee .. kben ook nog steeds aan het googlen .. maar nog geen resultaat
Met die url gewoon erin zetten werkt niet.. want dan werkt hij niet meer  |
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
| 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
.. 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
| 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 ???
| 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.
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...
Bedankt, ik ga het nu ff testen
en met die form, ik weet hoe dat moet 
Hmm.. het is niet gelukt
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 ??
Ja nou ik had die code gewoon getypt als voorbeeld, niet om letterlijk te laten overnemen
[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.
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 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
Ik zet nog even opslaan.php hierneer:
| Code: |
<?php
if(isset($_COOKIE['hoofdpagina'])){
setcookie("hoofdpagina", "1",time()+3600000, "/");
}
?> |
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.
| 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
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
. In dit geval word het volgende gegeven:
| Code: |
<a href="depagina.php/html"> De paginanaam </a>
|
Alleen het werkt nog niet helemaal ...
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>';
}
?> |
| 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...
Alles lijkt te werken
Bedankt mensen
-EDIT-
ik heb alle soorten enters geprobeerd, maar bij elke geeft hij een error.. Hoe zet in een enter in php
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
-2e EDIT-
Al gevonden
<br>\n
dat moest het zijn 