Έλεγχος για το αν υπάρχει μια σελίδα (URL)ή ένα αρχείο

Κώδικας, πληροφορίες, ερωτήσεις και απαντήσεις σχετικές με την JavaScript.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
majuranus
Δημοσιεύσεις: 404
Εγγραφή: 01 Μαρ 2006 19:47
Τοποθεσία: Veria
Επικοινωνία:

Έλεγχος για το αν υπάρχει μια σελίδα (URL)ή ένα αρχείο

Δημοσίευση από majuranus » 05 Ιαν 2010 17:29

Καλησπέρα και καλή χρονιά,

Φτιάχνω μια σελίδα κατά την οποία μπορεί κάποιος χρήστης να καταχωρήσει τα στοιχεία του. Σε αυτά τα στοιχεία συμπεριλαμβάνεται και η καταχώρηση ενός link (URL). Θέλω πριν πατήσει την υποβολή να ελέγχει αν το link που καταχώρησε υπάρχει

Το ίδιο έχω σε επόμενο πεδίο απλά εκεί θέλω να ελέγξω αν υπάρχει το αρχείο στον server του (του το έχω δώσει εγώ να το κατεβάσει)

Η πρώτη μου σκέψη ήταν να ορίζω cookies με Php και να το κάνω έλεγχο (ξέρω πως) στο αρχείο που εκτελώ όταν κάνω submit τη φόρμα. Έτσι όμως δεν είναι και τόσο καλό.

Νομίζω ότι το καλύτερο είναι να γίνει με javascript (αν είναι εφικτό) η ajax.

οι γνώσεις μου φτάνουν μέχρι να καταχωρήσω το url σε μια μεταβλητή, na φτίαξω συναρτήσεις τις οποίες θα καλώ μετά πατώντας ένα κουμπί 'check' δίπλα από το Input του url

Το διαταύτα είναι: Πως λέω του javascript να ελέγξει ένα url αν είναι valid? υπάρχει κάποια εντολή?? είδα μερικά πράγματα στο ιντερνετ αλλά μπερδεύτηκα λίγο.

Σορρυ για την πολυλογία αλλά ήθελα να γίνω όσο πιο κατανοητός γίνεται.

Θα το θεωρήσω μεγάλη Βοήθεια ακόμα κι αν με παραπέμψετε σε ένα καλό tutorial δεν ζητώ να μου γράψετε τον κώδικα (αν θέλετε πάλι.. κανένα πρόβλημα :)) ) :D [/i]

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Έλεγχος για το αν υπάρχει μια σελίδα (URL)ή ένα αρχείο

Δημοσίευση από fafos » 05 Ιαν 2010 18:04

h javascript apo monh ths den mporei na kanei elenxo an yparxei ena link ekso apo to site sou.. xreiazetai server side kodikas (php, asp klp)
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
majuranus
Δημοσιεύσεις: 404
Εγγραφή: 01 Μαρ 2006 19:47
Τοποθεσία: Veria
Επικοινωνία:

Έλεγχος για το αν υπάρχει μια σελίδα (URL)ή ένα αρχείο

Δημοσίευση από majuranus » 05 Ιαν 2010 18:05

Κ αν έχω καταλάβει καλά μια μεταβλητή javascript δεν μπορώ να την καταχωρήσω σε μεταβλητή php

Άβαταρ μέλους
dimsis
Reporter
Δημοσιεύσεις: 7994
Εγγραφή: 25 Ιούλ 2001 03:00

Έλεγχος για το αν υπάρχει μια σελίδα (URL)ή ένα αρχείο

Δημοσίευση από dimsis » 05 Ιαν 2010 18:10

Η πρώτη σκέψη που μου έρχεται στο μυαλό είναι να εκτελέσεις ένα XMLHttpRequest και να τσεκάρεις το ready state. Αν πάρεις 404 πάει να πει πως δεν υπάρχει. Μπορείς να ελέγχεις και για τα 401: Unauthorized, 403: Forbidden κλπ
Και εγώ στη πρώτη ανάγνωση στα γρήγορα αυτό που σου απάντησε και ο fafos σκεφτόμουν, αλλά μετά σκέφτηκα πως με ajax call γίνετε και χωρίς server side script.

Είναι ενδιαφέρον θεματάκι, οπότε μπορεί να παίξω λίγο μαζί του και να επιστρέψω.

Άβαταρ μέλους
majuranus
Δημοσιεύσεις: 404
Εγγραφή: 01 Μαρ 2006 19:47
Τοποθεσία: Veria
Επικοινωνία:

Έλεγχος για το αν υπάρχει μια σελίδα (URL)ή ένα αρχείο

Δημοσίευση από majuranus » 05 Ιαν 2010 18:14

Το συνάντησα κ εγώ αυτό κάπου!

Το σκεπτικό είναι να τσεκάρουμε αν υπάρχει ένα link/url που δίνει ο χρήστης. Τώρα θα μου πεις για πιο λόγο δεν το ελέγχω με php.. για κάποιο λόγο νομίζω είναι καλύτερα να το ελέγξω επι τόπου

Έχω εγκαταστήσει το shadowbox στη σελίδα μου και όταν πατάω check σκοτεινιάζει και λέει οκ/ not οκ!
(προς το παρόν λέει μόνο οκ )

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Έλεγχος για το αν υπάρχει μια σελίδα (URL)ή ένα αρχείο

Δημοσίευση από fafos » 05 Ιαν 2010 19:25

an eixes thn forma sou opos se auto to vohthima tha ekanes ton elenxo omorfa kai oraia:

http://www.freestuff.gr/forums/viewtopic.php?t=46741
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

klix
Δημοσιεύσεις: 42
Εγγραφή: 03 Ιαν 2010 00:15
Τοποθεσία: Λονδίνο

Έλεγχος για το αν υπάρχει μια σελίδα (URL)ή ένα αρχείο

Δημοσίευση από klix » 05 Ιαν 2010 20:41

Θα μπορούσες με jQuery και ajax να ελέγξεις αν υπάρχει κάποιο αρχείο σε ένα url μέσω συνάρτησης και ανάλογα την επιστροφή να αποφασίσεις κάπως έτσι:

Κώδικας: Επιλογή όλων

function elegxos(){

var iparksi_arxeiou = true; 

$.ajax({
type: "GET",
url: "diadromi_kai_onoma_arxeiou.txt",	
timeout: 4000,
async: false,
dataType:"text",
success: function(data){iparksi_arxeiou = true;}, 
error: function(request, errorType, errorThrown){iparksi_arxeiou = false;}
});
return iparksi_arxeiou;
}

το έγραψα λίγο βιαστικά,ελπίζω να παίζει... :P
-What are we going to do tonight Brain?
-The same thing we do every night pinky,try to take over the world!

Άβαταρ μέλους
dimsis
Reporter
Δημοσιεύσεις: 7994
Εγγραφή: 25 Ιούλ 2001 03:00

Έλεγχος για το αν υπάρχει μια σελίδα (URL)ή ένα αρχείο

Δημοσίευση από dimsis » 05 Ιαν 2010 21:03

Μου τσάκισε τα νεύρα ο FX και από όσο το έψαξα έχει να κάνει με έξτρα ασφάλεια του FX στον οποίο για να παίξει το XMLHttpRequest.open θέλει ολόκληρη φασαρία.
Anyway ποστάρω τον κώδικα που παίζει σε Internet Explorer μια χαρά για να καταλάβεις τι εννοούσα.

Κώδικας: Επιλογή όλων

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http&#58;//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http&#58;//www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Ajax check if myurl exists by DimSis</title>
<style>
#myurlmsg &#123;
	visible&#58; none;
	color&#58;#F00;
&#125;
</style>
<script language="JavaScript">
	
	function checkmyurl&#40;myurl&#41;
	&#123; 
	 var myelm=document.getElementById&#40;'myurlmsg'&#41;;
	 // function to create an XMLHttpClient in a cross-browser manner
     var xmlhttp;
     try &#123;
         // Mozilla / Safari / IE7
         xmlhttp = new XMLHttpxmlhttpuest&#40;&#41;;
     &#125; catch &#40;e&#41; &#123;
          // IE
          var XMLHTTP_IDS = new Array&#40;'MSXML2.XMLHTTP.5.0',
                                     'MSXML2.XMLHTTP.4.0',
                                     'MSXML2.XMLHTTP.3.0',
                                     'MSXML2.XMLHTTP',
                                     'Microsoft.XMLHTTP' &#41;;
          var success = false;
          for &#40;var i=0;i < XMLHTTP_IDS.length && !success; i++&#41; &#123;
              try &#123;
                   xmlhttp = new ActiveXObject&#40;XMLHTTP_IDS&#91;i&#93;&#41;;
                      success = true;
                &#125; catch &#40;e&#41; &#123;&#125;
          &#125;
          if &#40;!success&#41; &#123;
              throw new Error&#40;'Unable to create XMLHttpxmlhttpuest.'&#41;;
          &#125;
     &#125;
		xmlhttp.onreadystatechange = function&#40;&#41;
		&#123; 
			myelm.innerHTML="Loading...";
			if&#40;xmlhttp.readyState == 4&#41;
			&#123;
				if&#40;xmlhttp.status == 200&#41;
				&#123;
					 myelm.style.color='green';
					 myelm.innerHTML='URL does exists!'
				&#125;	
				else	
				&#123;
					 myelm.style.color='red';
					 myelm.innerHTML='URL does not exists!';
				&#125;	
			&#125; 
		&#125;; 
		xmlhttp.open&#40;"GET", myurl, false&#41;; 
		xmlhttp.send&#40;null&#41;; 
	&#125; 
	</script>
</head>
<body>
<h1>Ajax check if myurl exists</h1>
<form id="myform" name="myform" method="post">
  <p>
    <label for="usermyurl">
      <input name="usermyurl" type="text" id="usermyurl" onblur="checkmyurl&#40;this.value&#41;;" value="http&#58;//www.log.gr" />
    </label>
    <span id="myurlmsg"></span></p>
  <p>
    <label for="dummy">
      <input name="dummy" type="text" id="dummy" value="" />
    </label>
  </p>
  <p>
    <input type="button" value="Submit" />
  </p>
</form>
</body>
</html>
demo: http://www.avadaz.com/playground/checkifurlexist.html

Μπες με IE, γράψε το URL που θέλεις να τσεκάρεις αν υπάρχει στο πεδίο που έχω default το log.gr και άλλαξε πεδίο ώστε να χάσει το focus το πρώτο (στο οnblur τρέχει την function)

Άβαταρ μέλους
majuranus
Δημοσιεύσεις: 404
Εγγραφή: 01 Μαρ 2006 19:47
Τοποθεσία: Veria
Επικοινωνία:

Έλεγχος για το αν υπάρχει μια σελίδα (URL)ή ένα αρχείο

Δημοσίευση από majuranus » 05 Ιαν 2010 21:15

:S
Τυράνιααααα
με βλέπω να το κάνω με php που θέλει 3 γραμμούλες μόνο

να αλλάξουμε το ερώτημα..
μπορείς την τιμή ενός πεδίου από μια φόρμα στην ίδια σελίδα να την περάσεις σε μία μεταβλητή χωρίς να πατήσεις submit?

Άβαταρ μέλους
dimsis
Reporter
Δημοσιεύσεις: 7994
Εγγραφή: 25 Ιούλ 2001 03:00

Έλεγχος για το αν υπάρχει μια σελίδα (URL)ή ένα αρχείο

Δημοσίευση από dimsis » 05 Ιαν 2010 21:20

Εύκολα...

var metavliti=document.getElementById('pedioformas').value

Άβαταρ μέλους
majuranus
Δημοσιεύσεις: 404
Εγγραφή: 01 Μαρ 2006 19:47
Τοποθεσία: Veria
Επικοινωνία:

Έλεγχος για το αν υπάρχει μια σελίδα (URL)ή ένα αρχείο

Δημοσίευση από majuranus » 05 Ιαν 2010 21:22

Δεν το έθεσα σωστά το ερώτημα:

$metavliti = document.getElementById('pedioformas').value

όπου $metavliti είναι php μεταβλητή

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Έλεγχος για το αν υπάρχει μια σελίδα (URL)ή ένα αρχείο

Δημοσίευση από korgr » 05 Ιαν 2010 21:23

Μπορεις αλλα θα πρεπει να την αποθηκευσεις σε session ωστε να την εχεις διαθεσιμη και μετα το submit.

Οσον αφορα αυτο που αναφερθηκε πιο πανω για jquery + ajax δεν μπορω να καταλαβω γιατι οχι μονο με ajax. Αν δεν χρειαζομαστε στη συνεχεια jquery να φορτωσουμε το library μονο για μια απλη κληση ajax? :-?

Τωρα ειδα αυτο που εγραψε ο Δημητρης. Αν ενοουσες js var ειναι οπως τα λεει. Εγω νομιζα πως θες server side variable...

Άβαταρ μέλους
dimsis
Reporter
Δημοσιεύσεις: 7994
Εγγραφή: 25 Ιούλ 2001 03:00

Έλεγχος για το αν υπάρχει μια σελίδα (URL)ή ένα αρχείο

Δημοσίευση από dimsis » 05 Ιαν 2010 21:30

Javascript (client side) μεταβλητή σε PHP (server side) μεταβλητή θα χρειαστείς και πάλι ή ajax request για να γλιτώσιεις το reload όπου θα περνάς με κάποιο τρόπο το url που έγραψε στη φόρμα ο χρήστης ή reload και να την περνάς στο url και να ελέγχεις τη σελίδα σου αν πέρασε η μεταβλητή και να κάνει τους ελέγχους που θέλεις ή σε form hidden field ή με cookie ή με session μεταβλητές.
Το reload της σελίδας μπορείς να το γλιτώσεις αλλά το extra request πολύ χλωμό...

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Έλεγχος για το αν υπάρχει μια σελίδα (URL)ή ένα αρχείο

Δημοσίευση από dva_dev » 05 Ιαν 2010 21:41

...χωρίς να πατήσεις submit?
Οχι, γιατί με κάποιο τρόπο πρέπει να στείλεις την τιμή του πεδίου στον web server. Αν δεν κάνεις submit ή δεν κάνεις κάποια ajax κλήση, πως θα στείλεις τα δεδομένα στον web server (ώστε να τα χρησιμοποιήσει το php script όταν εκτελεστεί και να τα βάλει στη μεταβλητή ή στο session) ?

klix
Δημοσιεύσεις: 42
Εγγραφή: 03 Ιαν 2010 00:15
Τοποθεσία: Λονδίνο

Έλεγχος για το αν υπάρχει μια σελίδα (URL)ή ένα αρχείο

Δημοσίευση από klix » 05 Ιαν 2010 21:52

korgr μόνο και μόνο γιατί είναι πιο σύντομος ο τρόπος...
-What are we going to do tonight Brain?
-The same thing we do every night pinky,try to take over the world!

Απάντηση

Επιστροφή στο “JavaScript και Frameworks”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες