Newsgroup: it.comp.lang.javascript
Titolo: Che codice è %0D%0A ???

Ciao a tutti...
per evitare di fare manualmente ciò che si può fare in automatico tramite
js, ho modificato un codice già esistente e l'ho adattato alle mie esigenze.
Di cosa sto parlando?
Ah... già... è vero.
Uno script per registrare in automaticon nei motori di ricerca,
ma con Lycos, AllTheWeb e Tiscali ho questo problema.
Il primo invio avviene correttamente, mentre i successivi no.
Tutto questo perchè invio nella stringa utile al motore di ricerca (lo
spider per intenderci) del codice in + che non riesco a capire da dove possa
venire.
es effettuato su TISCALI
Pagina inviata: 
http://www.tuttoscout.org/canzoniere/0649.html
codice corretto:
http://janas-search.tiscali.it/searchbin/addUrlWeb.pl?dbt=it&url=http%3A%2F%
2Fwww.tuttoscout.org
%2Fcanzoniere%2F0649.html&mail=
r.be...@libero.it
codice errato:
http://janas-search.tiscali.it/searchbin/addUrlWeb.pl?dbt=it&url=http%3A%2F%
2Fwww.tuttoscout.org
%2Fcanzoniere%2F0640.html%0D%0A&mail=
r.be...@libero.it
Tutto perchè mi inserisce prima dell'email %0D%0A
Cos'è... perchè fa questo.
Codice che invia richiesta a Tiscali.
<HTML>
<HEAD><TITLE>Tiscali</TITLE>
</HEAD>
<BODY>
<FORM ACTION="
http://janas-search.tiscali.it/searchbin/addUrlWeb.pl
"
METHOD="GET">
<INPUT type="hidden" name="dbt" value="it">
<input type="hidden" id="butt">
<input type="hidden" name="url">
<input type="hidden" name="mail">
</FORM>
<SCRIPT>
  var esc = unescape(location.search);
  var cooksearch = esc.substring(1,esc.length);
  var cook = cooksearch.split(',');
  document.forms[0].url.value = cook[parent.url];
  self.document.forms[0].mail.value = cook[parent.email];
  document.forms[0].submit();
</SCRIPT>
</BODY>
</HTML>
Ciao e...
:::::::::: RINGRAZIO IN ANTICIPO ::::::::::
Riccardo - 
TUTTOSCOUT.ORG

E' l'acapo (ascii 10+13); fai una function per toglierli onsubmit.
Potrebbe essere un qualcosa del tipo (non verificato)
String(tuovalore).replace(/\n|\r/g,"");

Grazie ma... io di js sono un po' a corto :)
Questo è il codice incriminato...
riesci a farci tu qualche cosa?
HTML>
<HEAD><TITLE>Tiscali</TITLE>
</HEAD>
<BODY>
<FORM ACTION="
http://janas-search.tiscali.it/searchbin/addUrlWeb.pl
"
METHOD="GET">
<INPUT type="hidden" name="dbt" value="it">
<input type="hidden" id="butt">
<input type="hidden" name="url">
<input type="hidden" name="mail">
</FORM>
<SCRIPT>
  var esc = unescape(location.search);
  var cooksearch = esc.substring(1,esc.length);
  var cook = cooksearch.split(',');
  document.forms[0].url.value = cook[parent.url];
  self.document.forms[0].mail.value = cook[parent.email];
  document.forms[0].submit();
</SCRIPT>
</BODY>
</HTML>
GRAZIE.
Riccardo - 
TUTTOSCOUT.ORG

   document.forms[0].url.value = cook[parent.url];
con
     document.forms[0].url.value =
String(cook[parent.url]).replace(/\n|\r/g,"");
Idem per campo mail

UN GRANDE !!!!!!!
^____^
Grazie di TUTTO ;)
Riccardo :)
P.S. Il problema è solo nell'URL :)

Ciao Cristiano... ancora una cosa.
Scusami ma, visto che mi hai risolto in una "botta sola"
con quello script
i problemi che avevo con
- TISCALI
- ARIANNA
- LYCOS
Me ne rimane "non funzionante uno" e...
non riesco a capire xkè.
Lo script che utilizzo è il seguente.
<HTML>
<HEAD>
   <TITLE>Alltheweb</TITLE>
</HEAD>
<BODY>
<form action="
http://www.alltheweb.com/add_url.php
" method="POST">
<input type="hidden" value="http://" name="url">
<input type="hidden" value name="email">
<input type="hidden" name="submit" class="button" value="Add URL">
</FORM>
<SCRIPT>
  var esc = unescape(location.search);
  var cooksearch = esc.substring(1,esc.length);
  var cook = cooksearch.split(',');
    document.forms[0].url.value = cook[parent.url]
   document.forms[0].email.value = cook[parent.email];
 document.forms[0].submit();
</SCRIPT>
</BODY></HTML>
Ma... provalo anche te.
Il risultato che ottengo è che l'invio si blocca subito all'inizio, perchè
carica la pagina 
http://www.alltheweb.com/add_url.php
 che si aspetta
l'inserimento nei campi dei valori richiesti (URL e EMAIL)
Come mai?
Ciao e...
GRAZIE ANCORA !!!!
Riccardo - 
TUTTOSCOUT.ORG

Non ho capito qual è il problema...
devo provare a digitare tiscali come url per vedere cosa succede?

no... il codice che ti ho riportato è quello di AllTheWeb.
Quando faccio partire la procedura per registrare su questo MDR,
la pagina che mi presente è quella dell'immissione dei dati
del motore, fregandosene dei dati che gli passo.
è come se, non gli interessa ciò che gli viene inviato.

Dal codice che vedo dovrebbe eseguire submit della form...io perň cosě non
ho mai provato, metti la procedura javascript in una function e richiamala
con body onload='nometuafunzione()', non sia mai che a pagina non
completamente caricata non esegue il submit

Questo è il minimo codice per inviare URL ad ALLTHEWEB.
<form action="add_url.php" method="POST">
<input type="text" value="http://" name="url">
<input type="text" value name="email">
<input type="submit" name="submit" class="button" value="Add URL">
</form>
L'ho modificato per me in questo modo, provando tutte le salse... ma nisba
:(
<HTML>
<HEAD>
   <TITLE>Alltheweb</TITLE>
</HEAD>
<BODY>
<form action="
http://www.alltheweb.com/add_url.php
" method="POST">
<input type="hidden" value="http://" name="url">
<input type="hidden" value name="email">
<input type="hidden" name="submit" class="button" value="Add URL">
</FORM>
<SCRIPT>
  var esc = unescape(location.search);
  var cooksearch = esc.substring(1,esc.length);
  var cook = cooksearch.split(',');
    document.forms[0].url.value = cook[parent.url]
   document.forms[0].email.value = cook[parent.email];
 document.forms[0].submit();
</SCRIPT>
</BODY></HTML>
Secondo te cosa c'è che non gli piace?

boh, io non capisco bene cosa dovrebbe fare questa pagina...eseguire un
submit automatico con i valori scritti in dei cookie?
Hai provato come dicevo (mettere lo script in una function e eseguirla
onload del body)?

ehm... non saprei dove metterci le mani :(

Questa pagina, quando chiamata, prende dei valori presenti in 2 cookie, li
scrive in un campo hidden ed esegue il submit; non so a cosa serva;
cook[parent.url] non so che sintassi sia (idem per e-mail); comunque:
<HTML>
<HEAD>
<TITLE>Alltheweb</TITLE>
</HEAD>
<BODY onload='salta()'>
<form action="
http://www.alltheweb.com/add_url.php
" method="POST">
<input type="hidden" value="http://" name="url">
<input type="hidden" value name="email">
QUESTA RIGA SOTTO, VISTO CHE FA IL SUBMIT AUTOMATICO, NON SERVE A NULLA...
<input type="hidden" name="submit" class="button" value="Add URL">
</FORM>
<SCRIPT>
  function salta() {
  var esc = unescape(location.search);
  var cooksearch = esc.substring(1,esc.length);
  var cook = cooksearch.split(',');
  document.forms[0].url.value = cook[parent.url];
  document.forms[0].email.value = cook[parent.email];
  document.forms[0].submit();
 }
</SCRIPT>
</BODY></HTML>
domanda: non è che stai facendo una gran confusione e stai mescolando la
parte dove il cliente digita i dati e la parte di submit()?

Cristiano... finalmente ho scoperto l'inghippo.
Con questo codice, si registra su AllTheWeb.
--------------
<html><head><title></title>
<form action="
http://www.alltheweb.com/add_url.php
" method="POST">
<input type=text value="http://" size=40 name=url>
<input type=text size=30 value="" name=email>
<input type=submit name=submit value="ok">
</form>
</body>
</html>
--------------
Con lo script dell'invio autometico al motore di ricerca di più URL, c'è
solo il tentativo di inviare i dati alla pagin add_url.php ma questa rimane
con i campi completamente bianchi.
Ho fatto delle prove con il primo codice, quello funzionante ed ho visto che
se cambio il name del submit, questo mi da un errore analogo, la pagine si
carica con i campi questa volta compilati correttamente ma non vi è lìinvio
del form.
Deduco quindi, che occorra simulare nel codice Js qui sotto un pulsante
type=submit ma che abbiam, importantissmo, il name=submit.
--------------
<html><head><title>AllTheWeb</title></head><body>
<form action="
http://www.alltheweb.com/add_url.php
" METHOD="POST">
<input type=hidden name=url>
<input type=hidden name=email>
</form>
<script>
  var esc = unescape(location.search);
  var cooksearch = esc.substring(1,esc.length);
  var cook = cooksearch.split(',');
  document.forms[0].email.value = cook[4];
  document.forms[0].url.value =
String(cook[parent.url]).replace(/\n|\r/g,"");
  document.forms[0].submit();
</script>
</body>
</html>
--------------
Ora però io qui mi fermo...
e continua tu per piacere.
Mi manca il tocco di classe che, in Js, non ce l'ho proprio.
GRAZIE...
Riccardo.

Insisto: hai provato a mettere nell'onload la function, come da mio esempio
postato qua sopra?

non va... :(
(avevo già provato, scusa se non te l'ho scritto)
si può fare quanto scritto precedentemente?

Mi spiace ma non capisco...
Provo a capire cosa fa la tua function (il problema attuale è: funziona ma
restituisce campi vuoti, vero? Quindi non compila):
<script language='JavaScript'>
function salta() {
  var esc = unescape(location.search); //prende location.search...es. se in
questa pagina sei arrivato con miapagina.htm?url=a&mail=b <=location.search
risulta essere ?url=a&mail=b
  var cooksearch = esc.substring(1,esc.length); <=toglie il punto di domanda
iniziale
  var cook = cooksearch.split(','); <=???? fa uno split per , => si deduce
quindi la location.search ha un formato del tipo ?url,mail,pippo,... etc etc
  document.forms[0].email.value = cook[4]; <=prende il 5° elemento
dell'array precedentemente creato => si deduce quindi che la e-mail deve
essere il quinto elemento, del tipo ?var1,var2,var3,var4,EMAIL
  document.forms[0].url.value =
String(cook[parent.url]).replace(/\n|\r/g,""); <=questo non lo capisco
proprio...dunque: parent.url restituisce (immagino) l'url del parent => la
tua pagina si trova in un frame? poi cerca nell'array cook creato...cosa?
Una stringa? (parent.url)...poi toglie gli acapo...
  document.forms[0].submit(); <=fa il submit automatico della form
}
</script>
Riassunto: non capisco cosa combina lo script, come lo hai scritto? Che
parametri stai passando nella location.search (come sopra, la e-mail deve
essere il quinto dato separato da virgola...)? Che valore restituisce come
parent.url? (non è che volevi document.forms[0].url.value=parent.url; (senza
passare dall'array precedentemente creato)?

> String(cook[parent.url]).replace(/\n|\r/g,""); <=questo non lo capisco
Č un pezzo che lo volevo dire, ma neanche io riesco a capire questi:
    cook[email]
    cook[url]
L'unico risultato che prevedo č undefined.
Maurizio.

Eggià, purtroppo il tempo è tiranno e spesso non leggo l'intero script, se
la domanda è altra (cioè: davo per scontato che lo script fosse
corretto...mea culpa, mea culpa...)

script mancante... (corretto)
<!-- Hide from
var c = 0;
var el = new Array();
el[c] = new Array('
http://www.google.com/
','Google','google.html');c++;
el[c] = new Array('
http://www.voila.com/
','Voila','voila.html');c++;
el[c] = new Array('
http://www.arianna.it/
','Arianna','arianna.html');c++;
el[c] = new Array('
http://www.lycos.it/
','Lycos','lycos.html');c++;
el[c] = new Array('
http://www.hotbot.com/
','Hotbot','hotbot.html');c++;
el[c] = new Array('
http://www.ditto.com/
','Ditto','ditto.html');c++;
el[c] = new
Array('
http://www.powersearch.com/
','Powersearch','powersearch.html');c++;
el[c] = new
Array('
http://www.claymont.com/
','Claymont','claymont.html');c++;
el[c] = new Array('
http://www.splatsearch.com/
','Splat','splat.html');c++;
el[c] = new Array('
http://www.fireball.de/
','Fireball','firebal.html');c++;
el[c] = new
Array('
http://www.surfgopher.com/
','Surfgopher','surfgopher.html');c++;
el[c] = new Array('
http://www.tiscali.it/
','Tiscali','tiscali.html');c++;
el[c] = new
Array('
http://www.alltheweb.com/
','Alltheweb','alltheweb.html');c++;
// Informazioni raccolte per la registrazione
url   = 0;
email    = 4;
firstname  = 10;
lastname  = 11;
adress    = 12;
postalcode  = 13;
city   = 18;
country  = 14;
title  = 15;
description = 16;
keywords  = 5;
language  = 17;
address  = adress;
zip  = postalcode;
// End hide -->
altro script
// Change this variable to the number of column you want to use in the
search engine table:
var numberOfCols = 5;
var favlist = GetCookie('favlist'); // Første vi må gjøre er å finne ut om
vi har favoritter liggende..
var tmp1, antEngines;
var engineChecked = ' CHECKED';
if(navigator.appName.indexOf('Netscape')!=-1){border = '1';cellspacing='0';}
else{border = '0';cellspacing='1';}
document.write('<TABLE BORDER="'+border+'" CELLSPACING="'+cellspacing+'"
CELLPADDING="2">\n');
tmp1 = 0;
antEngines = el.length;
for(i=0;i<antEngines;i++){
 if(tmp1==0)document.write('<TR>\n')
 if(favlist!=null){
  if(favlist.charAt(i)=='1'){
   engineChecked = ' CHECKED';
  }
  else{
   engineChecked = '';
  }
 }
 document.write('<TD NOWRAP><FONT FACE="Arial" SIZE="1"><INPUT
TYPE="CHECKBOX"'+engineChecked+'><A HREF="' + el[i][0] + '">' + el[i][1] +
'</A></TD>\n');
 tmp1++;
 if(tmp1==numberOfCols && i!=antEngines){
  document.write('</TR>\n');
  tmp1 = 0;
 }
}
if(tmp1!=0){ // Vi behøver ikke celle-utjevning hvis ikke vi har begynt på
en ny rad allerede.
 for(i=0;i<(numberOfCols-tmp1);i++){
  document.write('<TD>&nbsp;</TD>\n');
  if(antEngines==i)document.write('</TR>\n');
 }
}
document.write('</TABLE>\n');
document.write('<B>Selezione veloce:</B>\n');
if(favlist){
 document.write('<INPUT TYPE="RADIO" NAME="sel" VALUE="rad2"
onclick="choose(\'fav\');" CHECKED>Inserimento predefinito');
 document.write('<INPUT TYPE="RADIO" NAME="sel" value="rad"
onclick="choose(\'all\')">Tutti');
}
else{
 document.write('<INPUT TYPE="RADIO" NAME="sel" value="rad"
onclick="choose(\'all\')" CHECKED>Tutti');
}
document.write('<INPUT TYPE="RADIO" NAME="sel" VALUE="rad1"
onclick="choose(\'none\')">Nessuno');