ik wil iets hebben dat kijkt of er een url is ingevuld of niet, en als er eentje is ingevuld of er http:// voor staat

dit heb ik nu:

<?
if (empty($getklant[bedr_url])) {
$bedr_url = "";

}
else {

if(substr($getklant[bedr_url] ,0,7 == "http://"))
{
$new_url = "$getklant[bedr_url]";
}
else
{
$new_url = "http://$getklant[bedr_url]";
}


$bedr_url = "<a href=$new_url target=_blanc>$new_url</a>";

}
?>
als ie leeg laat ie niets zien, is dus oke, als de url begint met www zet ie er netjes http:// voor dus werkt ook goed,
maaaar.... als de url goed is ingevuld met http:// zet ie er ook http:// voor.. en dat moet niet...
Dan moet je neer zetten bij het formulier dat ze het zonder http:// moeten schrijven.
Je moet zoiet doens
$bericht = str_replace ("www.", "http://", $bericht);
$bericht = str_replace ("http://", "http://www.";, $bericht);
dan gelijk wat hij typt altijd het goede
Je wilt het checken?
Gebruik daarvoor dan regular expressions :)
regular expressions???
of je gebruikt de PEAR validate classes

http://pear.php.net/package/Validate

Daar gebruiken ze de code

<?
/**
* Validate an URI (RFC2396)
*
* @param string $url URI to validate
* @param array $options Options used by the validation method.
* key => type
* 'domain_check' => boolean
* Whether to check the DNS entry or not
* 'allowed_schemes' => array, list of protocols
* List of allowed schemes ('http',
* 'ssh+svn', 'mms')
*/
function uri($url, $options = null)
{
$domain_check = false;
$allowed_schemes = null;
if (is_array($options)) {
extract($options);
}
if (preg_match(
'!^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?!',
$url,$matches)
) {
$scheme = $matches[2];
$authority = $matches[4];
if ( is_array($allowed_schemes) &&
!in_array($scheme,$allowed_schemes)
) {
return false;
}
if ($domain_check && function_exists('checkdnsrr')) {
if (!checkdnsrr($authority, 'A')) {
return false;
}
}
return true;
}
return false;
}
?>

Grtz,

Arend
Mwah... kan niet quoten op 1 bericht want iedereen heb het altijd over http:// ... Ik draai een SSL-server.. dus ik kan geen link daarheen doen? (https://)

Enne... dat www verhaal... als iemand nou een adres als http://gebruiker.domain.invalid heeft?

Elwin
Ik hoop toch echt dat je reactie niet op mijn post is gericht, anders zijn bij specsavers de gratis checks in de aanbieding.


* 'domain_check' => boolean
* Whether to check the DNS entry or not
* 'allowed_schemes' => array, list of protocols
* List of allowed schemes ('http',
* 'ssh+svn', 'mms')


Dus [1]: Als je allowed schemes geeft als ftp, http, https vreet hij wat je wil dat hij vreet.

En [2]: als je domain_check aanstaat kijkt hij of de DNS van het domein wel goed gaat. gebruiker.domain.invalid zal niet resolven, en zal dus niet werken :)

Grtz,

Adje
Ik hoop toch echt dat je reactie niet op mijn post is gericht, anders zijn bij specsavers de gratis checks in de aanbieding.

[knip]

Grtz,

Adje

Nope, was meer een algemene opmerking en dan meer richting de eerste stel posts..

Elwin

Reageren