2017-11-23 1 views
0

Ich habe diesen Code in der Spitze meiner index.php. Und es funktioniert perfekt, wenn ich es lokal mit Mamp betreibe. Aber wenn ich die Seite aktiviere und sie auf den Hosting-Service hochlade und die Webseite starte, erhalte ich diesen Fehler im Log. Und die Seite lädt nicht.Syntar unerwartete '?' vor Ort arbeiten

PHP Parse error: syntax error, unexpected '?' in /home/*****/*****.*****.**/index.php on line 3

<?php 
session_start(); 
$AccountsucessRegister = $_SESSION['Accountsucess'] ?? ''; 
$AccountfailRegister = $_SESSION['Accountfail'] ?? ''; 
unset($_SESSION['Accountsucess']); 
unset($_SESSION['Accountfail']); 
?> 
<?php if ($AccountsucessRegister !== ''): ?> 
<?php echo "<script>alert('$AccountsucessRegister');</script>" ?> 
<?php endif; ?> 
<?php if ($AccountfailRegister !== ''): ?> 
<?php echo "<script>alert('$AccountfailRegister');</script>" ?> 
<?php endif; ?> 
+2

Blick auf die PHP-Version mit 'phpinfo sein(); 'Es gibt wahrscheinlich einen Unterschied in der Version zwischen Ihrem MAMP und dem Provider – Niels

+0

. Der Koaleszenzoperator' '' wurde erst in PHP in Version 7 verfügbar, so dass Ihr Hosting-Provider wahrscheinlich eine frühere Version installiert hat. –

+1

php7 lokal und php5 auf dem Hosting-Service? Wenn dies der Fall ist, müssen Sie den Null-Koaleszenzoperator durch den entsprechenden ternären Operator ersetzen. Ein Beispiel finden Sie im [manual] (http://php.net/manual/en/migration70.new-features.php). – jh1711

Antwort

1

Vielleicht haben Sie auf lokale php7 + Version und bei Ihrem Provider nicht.

Unter Provider haben INI-Datei Option, um die PHP-Version auf Shared-Hosting zu ändern, aber wenn nicht der Fehler von

kommt
$AccountsucessRegister = $_SESSION['Accountsucess'] ?? ''; 

muss

$AccountsucessRegister = isset($_SESSION['Accountsucess']) ? $_SESSION['Accountsucess'] : '';