Toon posts:

[php] Quotes probleempje

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik word een beetje gek van mijn quotes. Ik wil het volgende in php in een variabele mikken:

PHP:
1
$variabele="<a href=\"javascript:var venster=window.open(\".$volledig_pad_document.\",\"\",\"width=640,height=480,resizable=yes,status=no,toolbar=no,menubar=yes\");\">$naam</a> ($grootte)";


Ik heb magic quotes aanstaan en het lijkt me zo in orde. Maar als ik dit in een browser bekijk, dan linkt hij naar:
javascript:var venster=window.open(

en verder niets. Wat doe ik fout en hoe kan ik dit oplossen? Ik heb al diverse manieren geprobeerd maar blijkbaar zie ik iets over het hoofd.

  • Harm
  • Registratie: Mei 2002
  • Niet online
Wat heb je dan geprobeerd?
Je zou kunnen proberen om de quotes in het stukje JavaScript te veranderen in enkele quotes ( ' <--- deze dus).

Verwijderd

Topicstarter
Die heb ik ook geprobeerd, maar als ik dan een foto probeer te open met als naam "henk's mooie dag.jpg" dan heb ik een probleem.

  • Ericston
  • Registratie: Maart 2001
  • Laatst online: 05-08 18:36
Kijk eens goed naar je code om te zien wat je precies doet.
PHP:
1
2
3
4
$bla = 'woepie';
echo "bla\" . $bla . \"bla";  // print: bla" . woepie . "bla
echo "bla" . $bla . "bla";   // print: bla woepie bla
echo "bla\"$bla\"bla";   // print: bla woepie bla
Dit is het niet wel dus maar ik zou me kunnen indenken dat dit je ook problemen gaat opleveren. (Of misschien waren die puntjes wel je bedoeling. :))
Je code werkt gewoon, maar doordat je met javascript een string maakt met dubbele quotes, wordt ie boos. Je moet single quotes gebruiken.
edit:
hmm, zie nu pas dat ramH dit ook al zei :)
werkt [code=php] niet?

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

dit is een javascript vraag, geen PHP

je roept nu binnen je href="" namelijk een javascript aan waarin je ook gebruik maakt van ".. Maar van die binnen de href dus ' (enkele quotes).

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 28-08 19:27

Crazy D

I think we should take a look.

Verwijderd schreef op 30 oktober 2002 @ 14:01:
Die heb ik ook geprobeerd, maar als ik dan een foto probeer te open met als naam "henk's mooie dag.jpg" dan heb ik een probleem.
Nee want dan moet je zoals altijd de ' laten escapen (zodat het \' wordt).
Dit moet je bv ook doen als je een statustext wilt tonen waar een ' in zit.

Exact expert nodig?


  • Eskimootje
  • Registratie: Maart 2002
  • Laatst online: 21:13
PHP:
1
2
3
<?
$variabele = "<a href=\"javascript:var venster=window.open(\"".$volledig_pad_document."\",\"\",\"width=640,height=480,resizable=yes,status=no,toolbar=no,menubar=yes\");\">".$naam."</a> ($grootte)";
?>

deze moet het wel doen naar mijn idee.
Zo niet post dan de tekst die je in de String wil zetten. Dan maak ik er wel wat van.

  • Ericston
  • Registratie: Maart 2001
  • Laatst online: 05-08 18:36
Eskimootje schreef op 30 oktober 2002 @ 14:22:
[...]
deze moet het wel doen naar mijn idee.
Zo niet post dan de tekst die je in de String wil zetten. Dan maak ik er wel wat van.
PHP:
1
"<a href=\"javascript:var venster=window.open('.$volledig_pad_document.','','width=640,height=480,resizable=yes,status=no,toolbar=no,menubar=yes');\">".$naam."</a> ($grootte)";
Dat is 'em dus.
Maar als ik dit in een browser bekijk, dan linkt hij naar:
javascript:var venster=window.open(
Als je even bij de bron had gekeken had je geweten dat de php code gewoon goed was en je dat javascript ding moest debuggen (of het gewoon posten in w&g...).

  • Eskimootje
  • Registratie: Maart 2002
  • Laatst online: 21:13
PHP:
1
2
3
<?
$variabele = "<a href=\"javascript:var venster=window.open('.$volledig_pad_document.','','width=640,height=480,resizable=yes,status=no,toolbar=no,menubar=yes');\">".$naam."</a> ($grootte)";
?>

Je moet wel opletten dat je of je al je variabele zonder haakjes doet of allemaal met. Je doet er nu een zonder ($volledig_pad_document) en eentje met ($naam) dat is niet echt netjes.

Verwijderd

Topicstarter
Nee gaat nog steeds helaas niet goed. Precies hetzelfde.
Voorbeeld van $volledig_pad_document:

"http://www.domein.nl/plaatjes/henk's mooie dag.jpg"

Deze waarde is dus variabel.

Volgens mij is dit overigens wel een PHP vraag, aangezien PHP een beetje vaag doet met de magic quotes.

  • Eskimootje
  • Registratie: Maart 2002
  • Laatst online: 21:13
Je moet die quotes helemaal niet gebruiken
[..]window.open(".$volledig_pad_document."[..]
dit geeft al een betere URL nog ff puzzelen en je komt er wel uit denk ik.

  • Sjaaky
  • Registratie: Oktober 2000
  • Laatst online: 22-08 16:45
urlencode($volledig_pad_document)

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

Nee, het is niet een php vraag. Php doet precies wat je van 'm vraagt. Wat je van 'm vraagt is om foute html/js te genereren. Ga ajb ff kijken in de gegenereerde source waarom het fout gaat.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
Jep, geeft inderdaad een langer url, beter niet. Ik ben dan namelijk de quotes om het eerste argument (url) kwijt en die zijn toch wel essentieel voor de aanroep van de functie.

  • Eskimootje
  • Registratie: Maart 2002
  • Laatst online: 21:13
Heb je het al in plain html werkend? Als je dat eerst probeert ben je al verder.

  • Eskimootje
  • Registratie: Maart 2002
  • Laatst online: 21:13
PHP:
1
$variabele = "<a href=\"javascript:var venster = window.open('".$volledig_pad_document."', ' ' ,'width=640,height=480,resizable=yes,status=no,toolbar=no,menubar=yes');\">".$naam."</a> (".$grootte.")";
plezier ermee

Verwijderd

PHP:
1
2
3
4
5
<? 

echo "<a href=\"javascript:window.open('".$url."');\">[ link ]</a>\n"; 

?>


Sorry, ik was te laat me posten (zie laatste post)

  • Ericston
  • Registratie: Maart 2001
  • Laatst online: 05-08 18:36
Afgezien van het feit dat "henk's mooie dag" geen Nederlands is, accepteert javascript kennelijk geen single quotes in functie parameters. Nu kan je ze gewoon escapen, zoals eerder al werd aangegeven met addslashes(). Dan moet je wel de nieuwe string tussen single quotes aan window.open meegeven:
JavaScript:
1
window.open('henk\'s mooie dag.jpeg','','blabla');

* Ericston heeft ook weer wat over javascript geleerd.
In het vervolg maar naar de buren. :)

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

JAmmer dat niemand mn reactie las.. want ik gaf je het antwoord al in post nr 3 ofzo :?

  • Eskimootje
  • Registratie: Maart 2002
  • Laatst online: 21:13
Bosmonster schreef op 30 oktober 2002 @ 15:39:
JAmmer dat niemand mn reactie las.. want ik gaf je het antwoord al in post nr 3 ofzo :?
Klopt Bosmonster ;) Maar je moet wel een beetje de lay-out vernaggelen met een script wil je opvallen ;) * Eskimootje had het zelf ook niet gezien.

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

zie sig :X :D

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Verwijderd

Topicstarter
Bedankt voor alle tips, maar het gaat nog steeds niet goed. Helaas.

Wanneer ik de code van eskimootje gebruik, dan loop ik dus tegen een probleem aan wanneer er een single quote (') in de bestandsnaam zit. ($volledig_pad_document).
Wanneer ik hier urlencode of rawurlencode op loslaat gaat het ok, alleen codeert hij de / slashes in $volledig_pad_document ook en gaat het daar weer mis.

Hoe kan ik dit nu het beste oplossen?

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

addslashes?

Kan zijn dat die meer escaped dan je wil, maar dan moet je 't zelf maar met een of andere replace proberen

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz

Pagina: 1