Newsgroup: it.comp.www.php
Titolo: Url e form.

Ciao a tutti.
Questo è il mio nuovo dubbio:
ho un form dove l'utente può inserire un'indirizzo web che poi
memorizzo in un db per mostrarlo successivamente.Prima di inserirlo
nel db alla variabile dell'indirizzo aggiungo 
http://www
 e qui forse
sbaglio. Se l'utente inserisce 
zz.it
 va bene ma se inserisse 
www.zz.it
o 
http://www.zz.it
 non funzionerebbe perchè quando vado a mostrare il
collegamento sarebbe 
http://wwwwww.zz.it
 o http://wwwhttp://
www.zz.it
.
Anche se non aggiungessi io il 
http://www
 prima di memorizzarlo non
risolverei il problema perchè se l'utente inserisse 
zz.it
 sarei
daccapo. L'unica soluzione che ho trovato è aggiungere, nel value del
campo del form, un bel 
http://www
. Solo che in questo caso la
variabile non è mai vuota perchè anche se non inserisce niente il 
http://www
c'è sempre e questo mi complica un pò le cose nel proseguo dello
script ma se è l'unica alternativa pazienza.
Avete qualche suggerimento.
Ciao e grazie.

 ha scritto nel messaggio 
news:7311e395-a273-43b3...@i7g2000prf.googlegroups.com...


 l'utente inserisce 
zz.it
 va bene ma se inserisse 
www.zz.it
 o
La cosa migliore da fare e` di inserirlo nel DB come te lo manda, e solo 
in fase di visualizzazione controllare se contiene gia` "http://", ed 
eventualmente aggiungerlo.
zz.it
 e` perfettamente valido come indirizzo web. Aggiungendo "www." 
potrebbe non funzionare piu`. Pensa a 
code.google.com
, per esempio.
Bye.

un corretto quoting però sarebbe utile ;)
http://www.carnackyweb.com/?p=30

 script ma se è l'unica alternativa pazienza.
Francamente non mi sembra una gran complicazione: se sul server ti
arriva trim($_POST['nomecampo'])=="
http://www
" sai già con certezza che
la variabile è "vuota" e ti comporti di conseguenza.
-- 
mailto: y = i
------------------------------------------------------
http://www.catarsi.it
Vivo nel terrore di non essere frainteso (Oscar Wilde)

 potrebbe non funzionare piu`. Pensa a 
code.google.com
, per esempio.
Se con firefox 
http://zz.it
 è valido con Explorer non va.
Mi sa che lo memorizzerò così come uno me lo manda mostrandolo però
prima a video per una conferma.
Ciao

 Se con firefox 
http://zz.it
 è valido con Explorer non va.
Per forza. Il dominio non e` registrato (
zz.it
).
Intendevo dire che non e` obbligatorio avere scritto www davanti per 
essere un sito web, come non e` obbligatorio avere un terzo livello. Gia` 
il dominio di secondo livello e` un nome di dominio valido. Vedi 
jquery.com
 (che ha un redirect se ci accedi con 
www.jquery.com
). Mentre 
se cerchi di accedere a 
www.docs.jquery.com
 ti dira` che non esiste, 
perche` il sito corretto e` 
code.jquery.com
 
Bye.

> Per forza. Il dominio non e` registrato (
zz.it
).
Ciao,
zz.it
 era un esempio. Se in explorer scrivo 
ferrari.it
 o 
http://ferrari.it
non va mentre in firefox si.
Ciao grazie

non va mentre in firefox si.
Ho appena provato e mi da' errore di DNS in entrambi i casi.
Puo' darsi che alcune configurazioni di Explorer o Firefox abbiano una
opzione che, se il sito non esiste, e il nome NON comincia con "www.",
presumono "Forse il mio proprietario e' un po' ghiozzo", ed aggiungono
il "www." per poi riprovare.
Per esempio se nel mio Explorer inserisco "google" e basta, senza http
www o com, ci pensa un attimo e poi mi apre "
http://www.google.com
" (e
fra parentesi, io vorrei .it). Idem per "microsoft", ma non per "msdn"
(chissa' perche': ma ormai l'ho trogolato cosi' tanto IE, che non c'e'
modo di saperlo).
Ma questo non vuol dire che 'google' sia un nome a dominio valido!
Se e' per questo, in Firefox scrivendo "Oloturia" mi apre direttamente
Wikipedia. Insomma: dipende dal browser, non puoi archiviare nel DB un
qualcosa che su alcuni client non funzionera' e su altri si' (e chi sa
pero' in che modo).
Proprio a esagerare puoi fare tu a mano lo stesso tentativo, usando le
funzioni di fopen_wrap: se non c'e' http:// lo aggiungi, dopodiche' se
file_exists (o fopen) non funzionano provi ad aggiungere "www.", e, se
non funziona neanche quello, segnali errore. Pero' e' costoso e non e'
detto che il tuo provider ti lasci usare quelle funzioni.
Leonardo
-- 
While ordinarily valid that being widespread does not make a statement
true, I feel that the diffusion of anti-evolutionary beliefs does pose
a strong argument for Darwin having been, indeed, sorely mistaken.

 Avete qualche suggerimento.
Prima una domanda: per qualche motivo vuoi far sì che le URL inserite
siano solo di tipo http? O ti vanno bene anche altri protocolli?
Cmq, ricorda la regola d'oro: verifica sempre tutto ciò che viene
inserito dall'utente. Nel caso degli URL sei anche fortunato, perchè
puoi fare controlli molto accurati: puoi passare la stringa che ti
viene inserita ad una regexp che verifichi la correttezza formale
dell'URL (
http://it.php.net/preg_match
), e puoi anche provare a
verificare se la parte del dominio risolve (
http://it.php.net/
gethostbyname) e addirittura se la pagina puntata dall'indirizzo
esiste davvero o meno (
http://it.php.net/fsockopen
). A quel punto puoi
pure inserirla nel DB...
bye!

 fra parentesi, io vorrei .it). Idem per "microsoft", ma non per "msdn"
il mio segnale errore dns in tutti i casi.
Ciao


Allora in quel caso puoi effettivamente "strippare" via l'eventuale
protocollo e poi aggiungerlo te, o meglio ancora aggiungerlo come
"hint" nel campo di input (sempre poi verificando che l'utente non
l'abbia cambiato a mano...). In ogni caso non te le puoi cavare
aggiungendolo sempre o non aggiungendolo mai, devi sempre prima
verificare se c'e' o no.
Bye!