je suis un newbie

4 réponses
AuteurMessage

linkfr |
Membre

Photo de linkfr

Inscrit le : 09/05/2005

# Le 15/09/2008 à 10:19

Hello,

j'ai trouvé un script 'raccourcisseur d'url' parfait pour les besoins d'un de mes futurs sites.

En gros il fonctionne bien pour pas mal de type d'url, mais pour une raison que j'ignore ca foire sur les urls avec plusieurs &

J'ai essayé de regardé a droite et a gauche au niveau de regedi mais là c'est vraiment du chinois pour moi... Et comme il n'y a pas de support sur le site du développeur, je m'en remet a vous

Voici la bdd crée :
CREATE TABLE `urls` (
`url_id` int(16) NOT NULL auto_increment,
`url_location` tinytext NOT NULL,
`url_tag` tinytext NOT NULL,
PRIMARY KEY (`url_id`)
);

J'ai un doute sur le tinytext au lieu du varchar 256 mais bon... de plus sous phpmyadmin, les champs sont en latin_swedish... j'ai aps compris pourquoi, est ce qu'il faudrait que je les passes en utf8 ? Car j'ai tenté le coup mais mon phpmyadmin veut pas

Voici le script :
<?php
define('mysql_hostname', 'localhost');
define('mysql_username', 'xxxx');
define('mysql_password', 'xxxx');
define('mysql_database', 'xxxx');
ob_start('relink');
$root = "http://$_SERVER[HTTP_HOST]" . ereg_replace('/$', '', dirname($_SERVER['PHP_SELF'])) . '/';
$action = $_GET['action'] ? $_GET['action'] : ($_POST['action'] ? $_POST['action'] : '');
$connection = @mysql_connect(mysql_hostname, mysql_username, mysql_password) && @mysql_select_db(mysql_database) || die('<code>' . mysql_error() . '</code>');
switch ($action) {
case 'generate_url':
$parsed = @parse_url($_POST['url']);
if ($parsed && strlen($_POST['url']) && ereg('\.', $_POST['url'])) {
if (eregi('^[a-z0-9-]+$', $_POST['tag'])) {
$tag = $_POST['tag'];
$sql = "SELECT * FROM `urls` WHERE `url_tag` = '$tag' OR `url_id` = '$tag'";
$q = mysql_query($sql);
$n = mysql_fetch_assoc($q);
if ($n) {
$cancel = true;
}
}
if (!$cancel) {
$url = ($parsed['scheme'] ? '' : 'http://') . (get_magic_quotes_gpc() ? mysql_real_escape_string(stripslashes($_POST['url'])) : mysql_real_escape_string($_POST['url']));
$sql = "INSERT INTO `urls` (`url_location`, `url_tag`) VALUES ('$url', '$_POST[tag]')";
$q = mysql_query($sql);
$id = mysql_insert_id();
if (!$tag) {
$result = 'Voici votre <strong>nouvelle URL courte</strong>: <a href="' . $root . $id . '/">' . $root . $id . '/</a> !';
} else {
$result = 'Voici votre <strong>nouvelle URL courte comprenant votre tag</strong>: <a href="' . $root . $tag . '/">' . $root . $tag . '/</a> !';
}
} else {
if (ereg('^[0-9]+$', $_POST['tag'])) {
$result = 'Tag indisponible, veuillez en essayer un autre !';
} else {
$result = 'Tag indisponible, veuillez en essayer un autre !';
}
}
} else {
$result = 'Indiquez une <strong>vraie URL</strong> s\'il vous plait !';
}
if ((bool) $_POST['javascript']) {
header('Content-Type: text/plain');
die($result);
}
break;
case 'redirect':
if (is_numeric($_GET['id']) || eregi('^[a-z0-9-]+$', $_GET['tag'])) {
if (!$_GET['tag']) {
$sql = "SELECT * FROM `urls` WHERE `url_id` = $_GET[id]";
} else {
$sql = "SELECT * FROM `urls` WHERE `url_tag` = '$_GET[tag]'";
}
$q = mysql_query($sql);
$r = mysql_fetch_assoc($q);
header("Location: $r[url_location]");
exit;
} else {
header("Location: $root");
exit;
}
break;
}
?>

Donc en gros une url de ce type : http://www.webmaster-hub.com/index.php?act=post&am...Ouvrir dans une nouvelle fenetre

sera enregistré en base (mais tronquée), le script fonctionnera bien, mais pour une raison que j'ignore et qui dépasse mes maigres connaissances il me ressortira que la premiere partie de l'url : http://www.webmaster-hub.com/index.php?act=postOuvrir dans une nouvelle fenetre

J'aimerais faire en sorte qu'il enregistre la totalité de l'url en base de donnée et que tout fonctionne nickel au niveau de la redirection.

Merci beaucoup pour votre aide

PS: si j'osais je vous demanderais bien comment faire en sorte que je puisse mettre des '-' tirets dans les tags car pour le moment je ne peux mettre que des caractères alphanumériques... Mais bon c'est moins grave, cela ne m'empeche pas d'utiliser le script, alors que mon premier probleme oui

Merci encore pour votre aide

Pierre ::: Teletoday.com - A la télé ce soir !Ouvrir dans une nouvelle fenetre

Julgates | Julien
Administrateur

Photo de Julgates

Inscrit le : 09/03/2005

# Le 15/09/2008 à 12:20

Salut Pierre,

Tu nous as copié collé le script tel que tu l'utilises ou tu as fait des modifications depuis ?

Shopping Time NetworkOuvrir dans une nouvelle fenetre - Founder / CTO

linkfr | Pierre
Membre

Photo de linkfr

Inscrit le : 09/05/2005

# Le 15/09/2008 à 13:15

hello Julien

j'ai touché a rien j'ai juste pas mis le html (le formulaire en gros

pour voir un exemple live : http://www.linkfr.comOuvrir dans une nouvelle fenetre

Pierre ::: Teletoday.com - A la télé ce soir !Ouvrir dans une nouvelle fenetre

Zalex14 | Alexandre
Modérateur

Photo de Zalex14

Inscrit le : 09/05/2005

# Le 15/09/2008 à 13:19

"Site malveillant !


Le site Web sur www.linkfr.com a été signalé comme étant un site malveillant et a été bloqué sur la base de vos préférences de sécurité."

Mieux vaut s'attendre au prévisible que d'être surpris par l'inattendu.

linkfr | Pierre
Membre

Photo de linkfr

Inscrit le : 09/05/2005

# Le 15/09/2008 à 13:26

ouais je sais c'est ce qui m'a motivé a le remettrea jour et a en faire un site pseudo utile...

j'ai fais la manip pour revenir dans le droit chemin chez ggole samedi matin, n verra ce que ca donne

Pierre ::: Teletoday.com - A la télé ce soir !Ouvrir dans une nouvelle fenetre

Répondre

Vous ne pouvez pas participer au forum, car votre inscription n'a pas été validée. Pour vous faire valider en tant que Membre, cliquez ici.

© MHN - Tous droits réservés | CNIL N°844440 | 24/11/2024 8:22:25 | Généré en 4.05ms | Contacts | Mentions légales |