Pereiti prie turinio

Dėl short url skripto


Rekomenduojami pranešimai

Sveiki,

Taigi, radau short url skriptą, būtent toks, kokio man reikia:

http://www.gentlesource.com/demos/demo-short-url-script/?a=y

 

Su mod_rewrite skripte galima padaryt peradresavimą domenas.lt/short_url/JONAS ar panašiai. Va šito ir ieškojau. Tik labai norėčiau jį suinstaliuot į root direktoriją (kad būtų domenas.lt/JONAS, gražiau atrodo). O ten pas mane jau yra CMS'o index.php, o juos abu labai norėčiau naudoti kartu. Pakeitus pvz. į redirect.php, peradresavimas aišku nebeveikia. Suprantu, kad kažką reikia pakeist, bet nežinau ką, o tas skriptas kažkoks perdėtai apkrautas, 1.3 MB ir 180 failų (!) nors yra iš pažiūros labai paprastas... Tai visai pasimečiau :D

 

Prašau pagalbos, pasakykit ką reikia pakeist (jei tai nėra ypač sudėtinga), siūlykit kitą skriptą ar dar ką nors...

 

Čia index.php kodas:

 

 <?php

// Settings
define('S6L_ROOT', './');

$detail_template = 'short_url_form.tpl.html';
$login_level	 = 0;
$message		 = array();

// Include
require S6L_ROOT . 'include/core.inc.php';
require 'url.class.inc.php';

// Start output handling
$out = new s6l_output($detail_template);

// Handle and validate form
require_once 'HTML/QuickForm.php';

$form = new HTML_QuickForm('form', 'POST');

// Show advanced settings
$advanced = false;
if (s6l_gpc_vars('a') == 'y' or s6l_gpc_vars('u_advanced') == 'y') {
$out->assign('show_advanced_settings', 1);
$form->setDefaults(array('u_advanced' => 'y'));
$advanced = true;
}

// Redirect
$hide_form = false;
$identifier = '';
if ($advanced == false) {
switch ($s6l['url_identifier_handling']) {
	case 'querystring':
		$identifier = getenv('QUERY_STRING');
		s6l_clean_input($identifier);
		break;
	case 'pathinfo':
		$identifier = str_replace('/', '', getenv('PATH_INFO'));
		s6l_clean_input($identifier);
		break;
	case 'parameter':
	case 'modrewrite':
	default:
		$identifier = s6l_gpc_vars('i');
		break;
}
}
if ($identifier != '') {
$url = new s6l_url;
if ($data = $url->get($identifier)) {
	if ($data['url_status'] == 0) {
		header('HTTP/1.1 301 Moved Permanently');
		header('Location: ' . $data['backend_url']);
		exit;
	} else {
		$message[]['message'] = $text['txt_url_deactivated'];
		$hide_form = true;			
	}
} else {
	$message[]['message'] = $text['txt_url_not_found'];
	$hide_form = true;			
}
}


// Get form configuration
require 'short_url_form.inc.php';


// Validate form
$show_form = 1;
if ($s6l['public_url_form'] == 'Y') {
if ($form->validate()) {
	$url = new s6l_url(array('form' => $form));
	if ($short_url = $url->create(s6l_gpc_vars('u'), s6l_gpc_vars('u_id'))) {
		if (isset($short_url['identifier'])) {
			switch ($s6l['url_identifier_handling']) {
				case 'querystring':
					$short_url['output_url'] = $short_url['short_url'] . '?' . $short_url['identifier'];
					break;
				case 'pathinfo':
					$short_url['output_url'] = $short_url['short_url'] . '/' . $short_url['identifier'] . '/';
					break;
				case 'modrewrite':
					$short_url['output_url'] = $short_url['short_url'] . $short_url['identifier'] . '/';
					break;
				case 'parameter':
				default:
					$short_url['output_url'] = $short_url['short_url'] . '?i=' . $short_url['identifier'];
					break;
			}
			$out->assign('show_short_url', 1);
		}
		$out->assign($short_url);

		if (isset($short_url['output_message']) and $short_url['output_message'] != '') {
			// $form->setElementError('u_id', $short_url['output_message']);
			$message[]['message'] = $short_url['output_message'];
		}
	}
}
} else {
$show_form = 0;
$message[]['message'] = $text['txt_url_form_disabled'];
}

if ($hide_form == true) {
$show_form = 0;
}

$out->assign('show_form', $show_form);


require_once 'HTML/QuickForm/Renderer/ArraySmarty.php';
$renderer =& new HTML_QuickForm_Renderer_ArraySmarty($out->get_object, true);

$form->accept($renderer);


// Assign array with form data
$out->assign('form', $renderer->toArray());


// Output
$out->assign('short_url', $s6l['short_url']);
$out->assign('message', $message);
$s6l_output = $out->finish(false);
echo $s6l_output;


?>

 

 

Gal reikia ką nors pakeist konfigūracijoj kituose failuose, o gal kažką įterpt į CMS'o index.php, nežinau?

Redagavo Eureka7
Nuoroda į pranešimą
Dalintis kituose puslapiuose

domenas.lt/JONAS (kaip pvz pliusas.com su tokiom nuorodom) darosi su vienu .htaccess failu :D

Puiku, kad darosi, bet man reikia kad lankytojai galėtų naudotis peradresavimu, kažkas panašaus į tinyurl.com, ir dar kad būtų galima pasirinkt peradresavimo vardą. Administravimas sukurtų nuorodų irgi. Apie php deja nieko neišmanau, tai pats susikurt negaliu, o šitas skriptas turi viską ko man reikia.

Redagavo Eureka7
Nuoroda į pranešimą
Dalintis kituose puslapiuose
  • po 2 savaičių...

.htacess faile reiktų nurodyti, kad jei užklausa eina į index.php (tavo CMS'o), tada mod_rewrite taisyklės būtų ignoruojamos. Tą pati gali padaryti ir su /images/ katalogu (jei turi) bei kitais katalogais ir failais, kurie priklauso tavo CMS'ui.

 

Prieš RewriteRule taisykles reiktų įvesti kažką tokio:

RewriteCond %{REQUEST_URI} !^/images/

RewriteCond %{REQUEST_URI} !^/index.php

 

O shorturl script'o index.php tikriausiai galima būtų pervadinti.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...