Go Back   WarriorForum - Internet Marketing Forums > Warrior Support Forums > Programming Talk

Reply
 
LinkBack Thread Tools
Old 11-05-2009, 11:12 AM   #1
Active Warrior
War Room Member
 
Join Date: Jan 2009
Posts: 70
Thanks: 0
Thanked 0 Times in 0 Posts
Default valadating a url

Thanks for everyone who helped me with the first problem but I have one more. I need to validate that a url is typed into the text box before a user clicks on the button to send the url to the webbrowser control.

basically I need it to do this....

When a user types in the complete url http://www.yoursite.com and then hits the go button it will take them to the url. But if they type in anything but a valid url I want it to display a message box and preventing them from visiting a page. If anyone types in anything but a valid url the program will crash. How do I validate that it is a valid url and not garbage.

Thanks
NicheExposed is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 11-05-2009, 01:01 PM   #2
Active Warrior
War Room Member
 
jwlnewsome's Avatar
 
Join Date: Nov 2009
Location: UK
Posts: 39
Thanks: 0
Thanked 6 Times in 6 Posts
Default Re: valadating a url

Hi, try pinging the url before you preform the action. There are a few php scripts out there that can ping addresses to see if there is a response. I would personally cURL the url to see if i get anything back other than a 404 error
jwlnewsome is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 11-05-2009, 01:17 PM   #3
Active Warrior
War Room Member
 
Join Date: Jan 2009
Posts: 70
Thanks: 0
Thanked 0 Times in 0 Posts
Default Re: valadating a url

i am working in vb.net writing an exe program. I am using a webbrowser control, text box and a button.
NicheExposed is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 11-05-2009, 04:28 PM   #4
Warrior Member
 
Join Date: Oct 2009
Posts: 16
Thanks: 0
Thanked 0 Times in 0 Posts
Default Re: valadating a url

You can do something like this:

If Texbox1.Text.Substring(0,7) = "hxxp://" Or Textbox1.Text.Substring(0, 4) = "wwvv." Then
MessageBox.Show("This is a URL")
End If

The code checks the first letters of your Textbox1, if it begins with hxxp:// or wwvv. then it is deemed as a valid URL.

If you need more help just let me know, I can help when I have free time.

EDIT:
Change the xx to tt and vv to w, the forum wouldn't let me post a link due to my post count.
warmlikecoffee is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 11-05-2009, 05:02 PM   #5
Warrior Member
War Room Member
 
Mike P Smith's Avatar
 
Join Date: Nov 2009
Location: Charlotte, NC, USA
Posts: 21
Thanks: 1
Thanked 4 Times in 3 Posts
Social Networking View Member's Twitter Profile 
Contact Info
Send a message via Skype™ to Mike P Smith
Default Re: valadating a url

If you really want a challenge (and earn your geek stripes) try using "Regular Expressions" - I think there are libraries available for VB.NET if that is your platform.

That can validate a URL rather well with just one statement.

--
Mike Smith
No sig, no shirt, no sale.
Mike P Smith is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 11-05-2009, 07:48 PM   #6
Advanced Warrior
War Room Member
 
Join Date: Dec 2008
Posts: 837
Thanks: 264
Thanked 76 Times in 67 Posts
Default Re: valadating a url

Although I`m not too familiar with vb.net, I`m assuming its similar to VB6. Simply navigate to the URL, and if nothing is there, then you know its not valid. I.e., webbrowser1.navigate \"whatever.com\" then check the \'location\' attribute, etc.
Johnathan is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 11-06-2009, 03:04 PM   #7
Active Warrior
War Room Member
 
Join Date: Jan 2009
Posts: 70
Thanks: 0
Thanked 0 Times in 0 Posts
Default Re: valadating a url

I ended up calling a programming friend of mine who gave me the code. I had to create a function. here is the code if anyone else needs it.


PrivateFunction UrlIsValid(ByVal url AsString) AsBoolean
Dim is_valid AsBoolean = False
If url.ToLower().StartsWith("www.") Then url = _
"http://" & url
Dim web_response As HttpWebResponse = Nothing
Try
Dim web_request As HttpWebRequest = _
HttpWebRequest.Create(url)
web_response = _
DirectCast(web_request.GetResponse(), _
HttpWebResponse)
ReturnTrue
Catch ex As Exception
ReturnFalse
Finally
IfNot (web_response IsNothing) Then _
web_response.Close()
EndTry
EndFunction
NicheExposed is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 11-06-2009, 03:43 PM   #8
Senior Warrior Member
War Room Member
 
mywebwork's Avatar
 
Join Date: Sep 2008
Location: Honolulu, Hawaii, USA (Currently cooling down in Montreal Canada)
Posts: 1,364
Blog Entries: 1
Thanks: 240
Thanked 385 Times in 267 Posts
Social Networking View Member's Twitter Profile 
Contact Info
Send a message via Skype™ to mywebwork
Default Re: valadating a url

Quote:
Originally Posted by NicheExposed View Post
If anyone types in anything but a valid url the program will crash.
Just a thought, you might consider writing an Error Handler as well - having the program crash if it receives a bad URL is not particularly user-friendly!

Keep in mind that the user may enter a valid URL by clicking on an invalid hyperlink within a web page. That bad URL will probably make it past your URL format check.

Beat of luck with your project...

Bill
mywebwork is online now  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 11-06-2009, 04:39 PM   #9
Active Warrior
War Room Member
 
Join Date: Jan 2009
Posts: 70
Thanks: 0
Thanked 0 Times in 0 Posts
Default Re: valadating a url

when someone clicks on a link in a web page that is bad will just return a page can not be displated error. That has nothing to do with the coding problem within the software.
NicheExposed is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 11-06-2009, 04:50 PM   #10
www.index-checker.com
War Room Member
 
AndyBlackSEO's Avatar
 
Join Date: Oct 2007
Location: , , United Kingdom.
Posts: 1,042
Thanks: 20
Thanked 89 Times in 76 Posts
Default Re: valadating a url

For php you would use regex (regular expression) to determine whether a url is in a valid format. You could then go one further by using cURL to grab the contents of the page and verify that a valid live webpage exists at the end of it. I'm creating this functionality for my latest product and it works perfectly.

What platform are you wanting to code this in? web app or a windows application?

Brand NEW! Profile Link Checker Instantly verifies your backlinks and profile pages!
Just Launched! Discover Which Of Your Profile Pages, Articles and Webpages are NOT Indexed In Google With Just ONE Click! ONLY $7 !!
NEW Online Article Creator! Now includes brand NEW content research feature!
FREE Article Rewriter - Rewrite Existing Articles With Ease! Pass Copyscape EVERY time!
AndyBlackSEO is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 11-06-2009, 08:01 PM   #11
Active Warrior
War Room Member
 
Join Date: Jan 2009
Posts: 77
Thanks: 10
Thanked 4 Times in 4 Posts
Default Re: valadating a url

CURL:

PHP Code:
function url_exists()
    {
    
VAR1   curl_init();
    if (
false === VAR1)
        {
        return 
false;
        }
    
curl_setopt(VAR1CURLOPT_HEADERtrue);
    
curl_setopt(VAR1CURLOPT_FAILONERRORtrue);
    
curl_setopt(VAR1CURLOPT_HTTPHEADER, Array("User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.15) Gecko/20080623 Firefox/2.0.0.15") );
    
curl_setopt(VAR1CURLOPT_NOBODYtrue);
    
curl_setopt(VAR1CURLOPT_RETURNTRANSFERtrue);
    
VAR2  curl_exec(VAR1);
    
curl_close(VAR1);  
    if (
preg_match('/200 OK/i',substr_replace(VAR2,'',30))) {
        return 
true;
    }else{
        return 
false;
        }
    } 
Replace VAR1 with $ something and VAR2 with $ something else (WF wont let me post up proper variables)
Gimme4Free is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 11-07-2009, 02:46 AM   #12
Banned
War Room Member
 
Join Date: Oct 2009
Posts: 186
Thanks: 4
Thanked 18 Times in 17 Posts
Default Re: valadating a url

You can try this regex.

CODE-one linear ($urlregex):
PHP Code:
   "^(https?|ftp)://([a-z0-9+!*(),;?&=.-]+(:[a-z0-9+!*(),;?&=.-]+)?@)?[a-z0-9+-]+(.[a-z0-9+-]+)*(:[0-9]{2,5})?(/([a-z0-9+-].?)+)*/?(?[a-z+&.-][a-z0-9;:@/&%=+.-]*)?(#[a-z_.-][a-z0-9+.-]*)?$"
if (
eregi(, )) {echo "good";} else {echo "bad";} 
(OPTIONAL: Read more for some explanations

it will validates all this type of url ($url)
PHP Code:
// valid urls 
 
"https://user:pass@www.somewhere.com:8080/login.php?do=login&style=%23#pagetop"
 = 
"http://user@www.somewhere.com/#pagetop"
 = 
"https://somewhere.com/index.html"
 = 
"ftp://user:****@somewhere.com:21/"
 = 
"http://somewhere.com/index.html/";  //this is valid!! 
The CODE-broken into section for easy editing and understanding ($urlregex):
PHP Code:
// SCHEME 
 
"^(https?|ftp)://"

// USER AND PASS (optional) 
 
.= "([a-z0-9+!*(),;?&=.-]+(:[a-z0-9+!*(),;?&=.-]+)?@)?"

// HOSTNAME OR IP 
 
.= "[a-z0-9+-]+(.[a-z0-9+-]+)*";  // http://x = allowed (ex. http://localhost, http://routerlogin) 
// .= "[a-z0-9+-]+(.[a-z0-9+-]+)+";  // http://x.x = minimum 
// .= "([a-z0-9+-]+.)*[a-z0-9+-]{2,3}";  // http://x.xx(x) = minimum 
//use only one of the above 

// PORT (optional) 
 
.= "(:[0-9]{2,5})?"
// PATH  (optional) 
 
.= "(/([a-z0-9+-].?)+)*/?"
// GET Query (optional) 
 
.= "(?[a-z+&.-][a-z0-9;:@/&%=+.-]*)?"
// ANCHOR (optional) 
 
.= "(#[a-z_.-][a-z0-9+.-]*)?$"

// check 
if (eregi(, )) {echo "good";} else {echo "bad";} 
All the lines can be safely removed (except for the hostname) if you do not want allowing some URL segment (if you don't want getqueries in your urls, just comment the respective $urlregex .= ....) - but do not reorder them.
the "(optional)" states that the part MAY exist, but url will be valid even if it doesn't contain the part (see the valid urls above).

syntax:
Code:
<http[s]|ftp> :// [user[:pass]@] hostname [port] [/path] [?getquery] [anchor]
  • take into account allowed safe characters
  • assumption .. (double dot) is never allowed in hostname or path.

-Malik

PS. please tell me if it is wrong to paste the code here. and wait for some feedbacks

Last edited by sanjid112; 11-07-2009 at 02:47 AM. Reason: adding PS
sanjid112 is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old 11-07-2009, 06:26 PM   #13
Warrior Member
War Room Member
 
Mike P Smith's Avatar
 
Join Date: Nov 2009
Location: Charlotte, NC, USA
Posts: 21
Thanks: 1
Thanked 4 Times in 3 Posts
Social Networking View Member's Twitter Profile 
Contact Info
Send a message via Skype™ to Mike P Smith
Default Re: valadating a url

Nice post, sanjid112.

For VB.NET, using sanjid112's regex, this is what you need:

If Not Regex.IsMatch(myURL, "^(https?|ftp)://([a-z0-9+!*(),;?&=.-]+(:[a-z0-9+!*(),;?&=.-]+)?@)?[a-z0-9+-]+(.[a-z0-9+-]+)*(:[0-9]{2,5})?(/([a-z0-9+-].?)+)*/?(?[a-z+&.-][a-z0-9;:@/&%=+.-]*)?(#[a-z_.-][a-z0-9+.-]*)?$")Then
' write your error code
' here.
Else
' write your success code here
End If

--
Mike Smith
No advertising in my Sig. What am I thinking?
Mike P Smith is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply

  WarriorForum - Internet Marketing Forums > Warrior Support Forums > Programming Talk

Tags
url, valadating

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off



All times are GMT -6. The time now is 11:46 PM.