Redirection en fonction d'un champs de saisie
Thomas C.
-
scriptiz Messages postés 1494 Statut Membre -
scriptiz Messages postés 1494 Statut Membre -
Bonjour,
J'ai trouvé sur ce forum un script utile pour effectuer une redirection en fonction d'un champ saisie:
La question:
[quote]Je suis en train de faire un petit jeu pour les gars du forum où je suis et je souhaiterais leur faire une chasse au trésor.
Le principe est qu'ils se rendent sur une page internet que j'ai créé et ils doivent rentrer une référence dans un champs de saisie et je souhaiterais utiliser ce qu'ils ont saisi pour les renvoyer vers une page web.
exemple : ils mettent dans la zone : boule
ça les renvoie vers www.bouleetbill.com
ils auraient mis : tintin ça aurait envoyé vers www.tintinetbill.com [/quote]
La réponse:
[quote]Admettons que ta page soit comme ça avec ton champ de saisie :
<form method="post" action="redirection.php">
Zone : <input type="text" name="zone">
<input type="submit" value="Envoyer">
</form>
Dans ta page redirection.php:
<?php
//ici tu récupères la valeur saisie
$saisie = $_POST['zone'];
//ici tu construis ton url pour rediriger
$redirection = "www.".$saisie."etbill.com";
header('Location: '.$redirection);
exit();
?> [/quote]
ça marche parfaitement et je l'utilise. Par contre je souhaiterais l'améliorer en faisant que la nouvelle adresse de redirection est invalide, qu'il n'y est pas d'erreur 404 mais que l'internaute soit renvoyer vers une page d'erreur faite maison du style www.monsite.com/erreur.htm
Quelqu'un pourrait m'aider, je suis une macro bille en php .
Merci d'avance
Thomas
J'ai trouvé sur ce forum un script utile pour effectuer une redirection en fonction d'un champ saisie:
La question:
[quote]Je suis en train de faire un petit jeu pour les gars du forum où je suis et je souhaiterais leur faire une chasse au trésor.
Le principe est qu'ils se rendent sur une page internet que j'ai créé et ils doivent rentrer une référence dans un champs de saisie et je souhaiterais utiliser ce qu'ils ont saisi pour les renvoyer vers une page web.
exemple : ils mettent dans la zone : boule
ça les renvoie vers www.bouleetbill.com
ils auraient mis : tintin ça aurait envoyé vers www.tintinetbill.com [/quote]
La réponse:
[quote]Admettons que ta page soit comme ça avec ton champ de saisie :
<form method="post" action="redirection.php">
Zone : <input type="text" name="zone">
<input type="submit" value="Envoyer">
</form>
Dans ta page redirection.php:
<?php
//ici tu récupères la valeur saisie
$saisie = $_POST['zone'];
//ici tu construis ton url pour rediriger
$redirection = "www.".$saisie."etbill.com";
header('Location: '.$redirection);
exit();
?> [/quote]
ça marche parfaitement et je l'utilise. Par contre je souhaiterais l'améliorer en faisant que la nouvelle adresse de redirection est invalide, qu'il n'y est pas d'erreur 404 mais que l'internaute soit renvoyer vers une page d'erreur faite maison du style www.monsite.com/erreur.htm
Quelqu'un pourrait m'aider, je suis une macro bille en php .
Merci d'avance
Thomas
A voir également:
- Redirection en fonction d'un champs de saisie
- Fonction si et - Guide
- Saisie gestuelle iphone - Guide
- Saisie vocale whatsapp - Accueil - Messagerie instantanée
- Saisie vocale sms - Guide
- Gboard saisie vocale - Accueil - Applications & Logiciels
6 réponses
bonjour
sans etre sure de moi je pense que tu peux faire un truc du genre :
Adns
sans etre sure de moi je pense que tu peux faire un truc du genre :
//ici tu récupères la valeur saisie
$saisie = $_POST['zone'];
//ici tu construis ton url pour rediriger
$redirection = "www.".$saisie."etbill.com";
$redirection2 = "url de ta page d'erreur"
$conn = @fopen($redirection, "r");
if ($conn) {
header('Location: '.$redirection);
exit();
}else{
header('Location: '.$redirection2);
exit();
}
Adns
Salut Thomas, ceci devrait te convenir :
Il te suffit de faire appel à la méthode comme suit :
Voilà bonne continuation.
<?php
function is_valid_url('/$url')
{
$url = @parse_url('/$url');
if (!$url)
{
return false;
}
$url = array_map('trim', $url);
$url['port'] = (!isset($url['port'])) ? 80 : (int)$url['port'];
$path = (isset($url['path'])) ? $url['path'] : '';
if ($path == '')
{
$path = '/';
}
$path .= (isset($url['query'])) ? "?$url[query]" : '';
if (isset($url['host']) AND $url['host'] != gethostbyname($url['host']))
{
if (PHP_VERSION >= 5)
{
$headers = get_headers("$url[scheme]://$url[host]:$url[port]$path");
}
else
{
$fp = @fsockopen($url['host'], $url['port'], $errno, $errstr, 30);
if (!$fp)
{
return false;
}
fputs($fp, "HEAD $path HTTP/1.1\r\nHost: $url[host]\r\n\r\n");
$headers = fread($fp, 4096);
fclose($fp);
}
$headers = (is_array($headers)) ? implode("\n", $headers) : $headers;
return (bool)preg_match('#^HTTP/.*\s+[(200|301|302)]+\s#i', $headers);
}
return false;
}
?>
Il te suffit de faire appel à la méthode comme suit :
if(is_valid_url("https://www.google.be/?gws_rd=ssl"))
{
// alors on redirige vers google
}
else
{
// alors on redirige vers ton message d'erreur
}
Voilà bonne continuation.
C'est thomas ;-)
Alors,
ADNS avec ton script
J'ai l'erreur Parse error: parse error in C:\wamp\www\index\redirection.php on line 10
à cette ligne : $conn = @fopen($redirection, "r");
SRIPTIZ:
Je suis newbie, ton code me fait peur. J'ai l'impression qu'il y a plein de truc à compléter et je sais pas quoi mettre.
Merci de votre aide en tout cas
Alors,
ADNS avec ton script
J'ai l'erreur Parse error: parse error in C:\wamp\www\index\redirection.php on line 10
à cette ligne : $conn = @fopen($redirection, "r");
SRIPTIZ:
Je suis newbie, ton code me fait peur. J'ai l'impression qu'il y a plein de truc à compléter et je sais pas quoi mettre.
Merci de votre aide en tout cas
@tomcaz
Il n'y a rien à compléter, tu le copie colle en haut de ta page PHP, ensuite tu fait juste :
Enfin c'est toi qui voit :)
Il n'y a rien à compléter, tu le copie colle en haut de ta page PHP, ensuite tu fait juste :
if(is_valid_url("http://www.monsite.com/"))
{
// site valide
}
else
{
// site invalide
}
Enfin c'est toi qui voit :)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question