Mobile OS Commerce redirect werkt niet...

Status
Niet open voor verdere reacties.

pilootnour5

Terugkerende gebruiker
Lid geworden
22 nov 2008
Berichten
1.895
Beste forumleden

Ik heb een OS Commerce shop met PHP. Deze werkt helemaal en heb er nog nooit problemen mee gehad. Nou was de volgende stap om ook een mobiele versie te maken. Deze heb ik op een website gevonden, namelijk http://addons.oscommerce.com/info/6529

In de gedownloadde file vond ik een kleine instructie kladblok met 2 simpelen stappen. Alletwee netjes uitgevoerd.

Voorbeeld:
Normaal zou je naar shopnaam.nl/shop/catalog/productID gaan
Maar via mobile kun je er gewoon shopnaam.nl/shop/catalog/mobile_productID van maken. Maar dit is dus handmatig gedaan.

De tweede stap van de instructie is om de redirect automatisch te maken. Deze heb ik uitgevoerd, maar werkt helaas niet. Als ik naar de webshop ga, word ik niet automatisch doorverwezen naar de mobiele website, maar naar de gewone website. Ook als ik er zelf 'mobile_' voor zet, en ik druk daarna op een van de links, word ik gelijk doorverwezen naar de normale website. Doe ik iets fout, of klopt er iets niet met de file die ik heb gedownload?

De instructie:
Installation instructions:

1. Copy mobile directory and all mobile_*.php files inside of your catalog

2. If you need automatic redirect for mobile browsers add this lines to the end of your
catalog/includes/ application_top.php
file

define(DIR_MOBILE_CLASSES , 'mobile/includes/classes/');
require(DIR_MOBILE_CLASSES . 'mobile_redirect.php');
$mobileRedirect = new mobileRedirect;

In ieder geval al bedankt voor het lezen, en zou het top vinden als u een antwoord op mijn vraag weet.
 
het komt er op neer dat je alles dat begint met mobile_ moet copyeren naar uw cataloogdir

2 als je wil redirecten als het een mobile brower is dan moet je
add this lines to the end of your
catalog/includes/ application_top.php
merk op dat er een spatie staat moet verwijdert worden. verder zal je de include juist moeten doen zie path maar dat zal je wel begrijpen.

het kan op volgende manieren
PHP:
define(DIR_MOBILE_CLASSES , 'mobile/includes/classes/');// maakt een global variabele
require(DIR_MOBILE_CLASSES . 'mobile_redirect.php');//hier zal je dan een class toevoegen 
$mobileRedirect = new mobileRedirect();//hier stonden de haakjes niet dus was foute instructie maar hier word een object gemaakt
print_r($mobileRedirect);//hier zal je verast zijn van het resultaat en doe je nooit live maar hierdoor kan je zonder de class te kennen de getters en setters te weten komen 
veredelde editor als het ook tonen
 
Laatst bewerkt:
Er zijn geen Mobile_ pagina's
Het gaat erom dat het script 'mobile_' voor de url zet, dan stelt hij automatisch een mobiele website samen omdat het PHP is. Het enige probleem is dat automatische redirect niet werkt...

Wat moet ik nu precies doen volgens jou?
 
Je moet opletten niet alles lukt met de gsm's bekijk eerst onderstaand script daarna kan je ook mijn redirect script gebruiken en je zal zien het dwingt naar een ander pagina gaan af.

je kan dit doen
if(!isset(DIR_MOBILE_CLASSES)){
define(DIR_MOBILE_CLASSES , 'mobile/includes/classes/');
}else{
print DIR_MOBILE_CLASSES ." zou ok moeten zijn";
}

je kan ook dit gebruiken
PHP:
<?php
/**
* @author Lieven Roegiers
* @copyright helpmij free
* @CMS autosite
*/
	function redirect($url){
		if (!headers_sent()){
			//print('Location: http://'.$_SERVER['SERVER_NAME'].$url);
			header('Location: http://'.$_SERVER['SERVER_NAME'].$url);
			die('<meta http-equiv="refresh" content="0;URL=http://'.$_SERVER['SERVER_NAME'].$url.'/>";');
		}else {
			die('Redirect Headers error to send <a href="http://'.$_SERVER['SERVER_NAME'].$url.'" >here the link</a>');
		}
	}
?>

PS
eerst en vooral moet ik een fout rechtzeten
lijn 1 maakt een global variabele aan dus eenmaal die er is die overal bekend tijdens uw code (nooit voor wachtwoorden gebruiken)
ik dacht de onderstaande code te zien(nieuwer en beter manier)
http://be2.php.net/manual/en/function.set-include-path.php
 
best maak je er een require van en je dient dan overal waar het misloopt de functie te gebruiken als je een link ziet verschijnen kijk je naar de opbouw van de source en zie je waar het misloopt.je moet testen tot je niets meer voor de link ziet staan. Dus in elke file die je ooit aanpaste éénmaal hij het automatisch doet is het opgelost.
je kan door op plaatsen in je code de codenaam van het bestand en de regel zetten om nadien te verwijderen
stel main.php
require"een.php";
require"een.php";
require"een.php";
print"main.php regel:4";//TODO delete me after debug
require"een.php";
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan