Website verhuisd van host, nu werkt de site niet meer

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Xsola
  • Registratie: Mei 2004
  • Laatst online: 07-07-2021
Beste Allen,

Onlangs heb ik (voor een klant) een werkende site verhuist van een oude hosting-machine naar een nieuwe. Daar krijg ik met geen mogelijkheid de site meer aan de praat. Ook op andere lokale testservers blijf ik dezelfde errors krijgen. Ik heb zelf al zitten klooien, maar ik ben ook geen PHP expert. Ik hoop het wel (met hulp), op te kunnen lossen. :)

De code die mijn webbrowser weergeeft;
code:
1
isMobile()) { return 'mobiel'; } else { return 'desctop'; } } // mobiel direct naar mobile site if(!$_SESSION['mobile']) { if(get_platform() == 'mobiel') { if($_SERVER['REQUEST_URI'] == '/') { header('location: /m'); exit; } } } if(!$_SESSION['Y12']) ob_start(); switch($page) // laad templates { default: $tpl->settempl('main'); $tpl->setglobal(); break; } require_once(CMS.'includes/backendcall.php'); if(!$_SESSION['Y12']) $HTML = ob_get_clean(); //$HTML = str_replace(' ', '~', $HTML); //$HTML = str_replace('&', '&', $HTML); //$HTML = str_replace('~', ' ', $HTML); echo $HTML; ?>

Wat daad werkelijk de eerste regels zijn in het desbetreffende PHP file.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?
    define('ESCAPEPAGE', 'home');
    require_once('/config/config.php');

    if($_REQUEST['mobile'] == 'true')
    {
        $_SESSION['mobile'] = true; 
    }
    
    // mobile of desctop?
    function get_platform()
    {
        global $platform;
        //$platform = 'mobiel';
        //return 'mobiel';
        $detect = new Mobile_Detect();
        if($detect->isMobile()) 
        {
            return 'mobiel';
        }
        else
        {
            return 'desctop';
        }
    }
    
    // mobiel direct naar mobile site
    if(!$_SESSION['mobile'])
    {
        if(get_platform() == 'mobiel')
        {
            if($_SERVER['REQUEST_URI'] == '/') 
            {
                header('location: /m');
                exit;

Buiten dat er een hoop spelfouten in het CMS zijn gemaakt, werkte het altijd wel. Navraag bij de bouwer gaat helaas ook niet meer.

In het Apache error log komen geen meldingen langs.
PHP version oude host is PHP Version 5.3.2-1
op de nieuwe host is het: PHP Version 5.5.9-1

Is er iemand die mij wat tips en truuks kan geven waar ik zou kunnen kijken? Is eventueel het PHP versie verschil een probleem?

Ik hoop dat iemand er kaas van kan bakken _/-\o_

Gr. Axel

Acties:
  • 0 Henk 'm!

  • André
  • Registratie: Maart 2002
  • Laatst online: 09:34

André

Analytics dude

Maak van die <? eens <?php

Acties:
  • 0 Henk 'm!

  • Xsola
  • Registratie: Mei 2004
  • Laatst online: 07-07-2021
Dan wordt de melding:
code:
1
2
3
4
5
6
array( 'vnaam' => 'vnaam', 'anaam' => 'anaam', 'username' => 'gebrnaam', 'functie' => 'functie' ) ); $cmsuser = new user($logsettings); // aansluiting op userclass $authcomment = $cmsuser->auth(); // controleer lofile if($cmsuser->getauth() == 'Y12') $_SESSION['Y12'] = true; else unset($_SESSION['Y12']); //____________________ } require_once(CMS.'includes/cms_engine.php'); ?>
Notice: Undefined index: mobile in /home/gdebruyn/public_html/index.php on line 6

Notice: Undefined variable: _SESSION in /home/gdebruyn/public_html/index.php on line 30

Fatal error: Class 'Mobile_Detect' not found in /home/gdebruyn/public_html/index.php on line 18


Line 6 :
PHP:
1
    if($_REQUEST['mobile'] == 'true')

Line 30 :
PHP:
1
    if(!$_SESSION['mobile'])

Line 18:
PHP:
1
        $detect = new Mobile_Detect();


Bovenstaande errors staan nu ook in het Apache log.

Acties:
  • 0 Henk 'm!

  • KabouterSuper
  • Registratie: September 2005
  • Niet online
Line 6 en 30 zijn geen fatal errors, dus die zijn wel weg te poetsen. Ik zou me meer zorgen maken om line 18. Je roept Mobile_Detect() aan, maar die is blijkbaar niet gedefinieerd. Kan je op zoek gaan in je gehele php-code om te vinden waar Mobile_Detect gedefinieerd wordt?

Even googlen levert op dat Mobiel_Detect een losse class is (http://mobiledetect.net/). Ik zou aan het begin van je pagina ergens het volgende verwachten:
code:
1
require_once 'Mobile_Detect.php';

[ Voor 27% gewijzigd door KabouterSuper op 18-03-2015 11:19 ]

When life gives you lemons, start a battery factory


Acties:
  • 0 Henk 'm!

  • Reinier
  • Registratie: Februari 2000
  • Laatst online: 20:29

Reinier

\o/

offtopic:
desctop :D

Acties:
  • 0 Henk 'm!

  • Xsola
  • Registratie: Mei 2004
  • Laatst online: 07-07-2021
Als ik zoek op inhoud in de files krijg ik 2 hits.
1x op index.php
en er is een Mobile_Detect.php in de 'classes' map. Maar ik zie niet waar deze aangeroepen zou moeten worden.

Die mobiele herkenning zou me ook gestolen mogen worden.. Kan ik die regels er gewoon uit 'slopen' ?

Index.php
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?php


    define('ESCAPEPAGE', 'home');
    require_once('/config/config.php');

    if($_REQUEST['mobile'] == 'true')
    {
        $_SESSION['mobile'] = true; 
    }
    

    // mobile of desctop?
    function get_platform()
    {
        global $platform;
        //$platform = 'mobiel';
        //return 'mobiel';
        $detect = new Mobile_Detect();
        if($detect->isMobile()) 
        {
            return 'mobiel';
        }
        else
        {
            return 'desctop';
        }
    }
    
    // mobiel direct naar mobile site
    if(!$_SESSION['mobile'])
    {
        if(get_platform() == 'mobiel')
        {
            if($_SERVER['REQUEST_URI'] == '/') 
            {
                header('location: /m');
                exit;
            }
        }
    }

    if(!$_SESSION['Y12']) ob_start();

    switch($page)  // laad templates
    {               
        default:
            $tpl->settempl('main');
            $tpl->setglobal();
        break;
    }
    
    require_once('cms/includes/backendcall.php');
    
    
    if(!$_SESSION['Y12']) $HTML = ob_get_clean();
        
    //$HTML = str_replace('&nbsp;', '~', $HTML);
    //$HTML = str_replace('&', '&amp;', $HTML);
    //$HTML = str_replace('~', '&nbsp;', $HTML);

    echo $HTML; 
        
?>

Acties:
  • 0 Henk 'm!

  • KabouterSuper
  • Registratie: September 2005
  • Niet online
Na
code:
1
require_once('/config/config.php');

het volgende toevoegen:
code:
1
require_once('/classes/Mobile_Detect.php');


Als je van de code afwilt, dan gewoon regel 13 t/m 41 verwijderen (en hopen dat de functie niet op andere plaatsen gebruikt wordt).

When life gives you lemons, start a battery factory


Acties:
  • 0 Henk 'm!

  • Xsola
  • Registratie: Mei 2004
  • Laatst online: 07-07-2021
De code helemaal weg te verwijderen werkt niet.. Met het toevoegen van de require_once('classes/Mobile_Detect.php'); krijg ik nu;

PHP:
1
Fatal error: Call to a member function settempl() on a non-object in /home/*/public_html/index.php on line 48

[ Voor 1% gewijzigd door Xsola op 18-03-2015 12:11 . Reden: klantnaam zichtbaar ]


Acties:
  • 0 Henk 'm!

  • naam
  • Registratie: Oktober 2007
  • Laatst online: 13-10 18:11
Als ik het zo lees, vermoed ik dat er overal <? in plaats van <?php boven aan de files staat. Makkelijkste is om in je php.ini short_open_tag aan te zetten. Dan worden de files die met <? beginnen ook netjes meegenomen door PHP.

offtopic:
Daarnaast hoort dit eigenlijk in Programming

[ Voor 16% gewijzigd door naam op 18-03-2015 12:27 ]


Acties:
  • 0 Henk 'm!

  • Wiebeltje
  • Registratie: Maart 2013
  • Laatst online: 16:03
En indien je niet bij de php.ini kan kun je het ook met .htaccess oplossen:

code:
1
2
3
 <IfModule mod_php5.c>
   php_value short_open_tag 1
</IfModule>

Bron: http://stackoverflow.com/...rt-open-tags-via-htaccess

Acties:
  • 0 Henk 'm!

  • Xsola
  • Registratie: Mei 2004
  • Laatst online: 07-07-2021
Top.! Aangepast in de PHP.ini en Apache reload gegeven, nu geen foutmeldingen meer. Maar zit ik met een 'White screen of death' . Is even kijken wat we daar mee kunnen..

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Display_errors en error_reporting aanzetten zodat je dat witte scherm kan debuggen. En daarna natuurlijk weer uitzetten.

Verder: Waar hoort mijn topic? Serverside-spul hoort in Programming

WEB>>PRG

offtopic:
"Desc" is een afkorting voor descending, het heeft niks te maken met een desk waar je je desktop op zet.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • The Milkman
  • Registratie: Maart 2004
  • Laatst online: 29-09 21:41

The Milkman

█████░░░░░ 50%

Wellicht ten overvloede, maar volgens de 'standaard', wordt het gebruik van short tags afgeraden: http://www.php-fig.org/psr/psr-1/

𓆑 𓆑 𓆑 𓆑 𓆑 𓆑


Acties:
  • 0 Henk 'm!

  • ajakkes
  • Registratie: Maart 2004
  • Laatst online: 16-05 22:32

ajakkes

👑

Zoeken in alle bestanden naar <? En vervangen door <?php is een mooiere oplossing op lange termijn.

👑


Acties:
  • 0 Henk 'm!

  • gybrus
  • Registratie: Juli 2008
  • Laatst online: 04-09 09:27
PHP sluitingstags '?>' zijn overigens ook niet aan te raden in classes die alleen PHP code bevatten.
Er hoeft maar een enkele whitespace achter te staan en je kunt er donder op zeggen dat er een 'Headers already send' melding terug komt.

En short tags.. die staan natuurlijk niet voor niks standaard uit. http://php.net/manual/en/ini.core.php#ini.short-open-tag

KEVIN DIERKX | DISTORTED FUSION | GITHUB


Acties:
  • 0 Henk 'm!

  • PatrickH89
  • Registratie: November 2009
  • Laatst online: 14-10 15:24
gybrus schreef op woensdag 18 maart 2015 @ 20:02:
PHP sluitingstags '?>' zijn overigens ook niet aan te raden in classes die alleen PHP code bevatten.
Er hoeft maar een enkele whitespace achter te staan en je kunt er donder op zeggen dat er een 'Headers already send' melding terug komt.

En short tags.. die staan natuurlijk niet voor niks standaard uit. http://php.net/manual/en/ini.core.php#ini.short-open-tag
Standaard aan bedoel je. Nu is er niet zoveel reden meer om het te gebruiken omdat <?= niet meer onder de shorttag setting valt, maar toch.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

ajakkes schreef op woensdag 18 maart 2015 @ 18:52:
Zoeken in alle bestanden naar <? En vervangen door <?php is een mooiere oplossing op lange termijn.
...en dan vervang je meteen geheel automatisch <?php in <?phpphp. :P

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Merethil
  • Registratie: December 2008
  • Laatst online: 06:58
NMe schreef op woensdag 18 maart 2015 @ 20:59:
[...]

...en dan vervang je meteen geheel automatisch <?php in <?phpphp. :P
En dan vervang je daarna <?phpphp weer terug in <?php :+

Acties:
  • 0 Henk 'm!

  • gybrus
  • Registratie: Juli 2008
  • Laatst online: 04-09 09:27
PatrickH89 schreef op woensdag 18 maart 2015 @ 20:22:
[...]


Standaard aan bedoel je. Nu is er niet zoveel reden meer om het te gebruiken omdat <?= niet meer onder de shorttag setting valt, maar toch.
Whoops, correct! Hoewel het door de systeembeheerder meestal gelijk weer uit wordt gezet. (Bij ons iig)

@Merenthil: Of je zoekt gewoon op '<? ' let op de whitespace. ;)

KEVIN DIERKX | DISTORTED FUSION | GITHUB


Acties:
  • 0 Henk 'm!

  • krvabo
  • Registratie: Januari 2003
  • Laatst online: 18:52

krvabo

MATERIALISE!

Of je doet gewoon niet al te moeilijk en zet short open tags aan.

De enige reden om geen short tags te gebruiken is omdat je anders wellicht problemen krijgt met je xml.. maar die xml hoort sowieso al niet in je php te staan (MVC), dus dat is geen solide argument tegen het gebruik er van.

PSR geeft ook geen valide (lees: geen) argumenten *tegen* het gebruik er van. (Afgezien van dat PSR een collectie statements is 'omdat we dat vinden')

[ Voor 8% gewijzigd door krvabo op 18-03-2015 22:41 ]

Pong is probably the best designed shooter in the world.
It's the only one that is made so that if you camp, you die.


Acties:
  • 0 Henk 'm!

  • HansvDr
  • Registratie: Augustus 2009
  • Niet online
Inderdaad, zoals krvabo hierboven zegt: "Of je doet gewoon niet al te moeilijk en zet short open tags aan."
Pagina: 1