---
title: "PHP problem | Parse error: syntax error, unexpected $end in /home/user/public_htm"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/188938-php-problem-parse-error-syntax-error-unexpected-end-in-home-user-public-htm"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "kimmo"
published: "2012-01-05T11:28:52.000Z"
updated: "2012-01-17T09:28:06.000Z"
replies: 24
views: 1881
page: 1
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/188938-php-problem-parse-error-syntax-error-unexpected-end-in-home-user-public-htm"
---

# PHP problem | Parse error: syntax error, unexpected $end in /home/user/public_htm

_Sida 1 av 2._

## #1 — kimmo, 2012-01-05T11:28Z

Får upp ett error i denna fil.
någon som kan hjälpa mig? :)
Parse error: syntax error, unexpected $end in /home/a5317154/public_html/functions.php on line 70

```
<?php
function messageBox($text){
	echo "<script language='javascript'>alert('$text');</script>";
{

function redirect($url){
	echo "<meta http-equiv=\"refresh\" content=\"0;URL=".$url.".php>";
}

//SQL protection
function protect($string){
	return mysql_real_escape_string(trim(strip_tags($string)));
}

function admin($level){
	$sql = mysql_query("SELECT m_userlevel FROM members WHERE m_userlevel = ".$level." AND m_id = '".$_SESSION["sess_id"]."'") or die(mysql_error());
	if(mysql_num_rows($sql) == 0){
		return false;
	} else {
		return true;
	}
	
	/*Används så här*/
	//if(admin(1000)){
	//	echo "Admin";
	//}
}

function set_exp(){
	$sql = mysql_query("SELECT m_exp,m_level,m_exp_to_lvl FROM members WHERE m_id ='".$_SESSION["sess_id"]."'") or die(mysql_error());
	while($row = mysql_fetch_array($sql)){
		if($row["m_level"] > 99){
			$upt = mysql_query("UPDATE members SET m_exp_to_lvl = 500 WHERE m_id = ".$_SESSION["sess_id"]."") or die(mysql_error());
		}
	}
}

function warnings(){
	$sql = mysql_query("SELECT m_warnings FROM members WHERE m_id = ".$_SESSION["sess_id"]."") or die(mysql_error());
	$row = mysql_fetch_array($sql);
	if($row["m_warnings"] == 3){
		echo '<meta http-equiv="refresh" content="0;URL=banned.php>';
	}
}

function userlevel(){
	$sql = mysql_query("SELECT m_userlevel FROM members WHERE m_id = ".$_SESSION["sess_id"]."") or die(mysql_error());
	$row = mysql_fetch_array($sql);
	if($row["m_userlevel"] == 0){
		header("Location:banned.php");
		exit();
	}
}

function style($string){
	$string = htmlentities(stripslashes($string));
	
	$string = str_ireplace("(a)","<img src='/smiley/angel.gif' />",$string);
	
	$string = nl2br($string);
	
	return $string;

	}
```

Permalänk: https://www.webforum.nu/p/188938

## #2 — nitro2k01, 2012-01-05T11:48Z

Det felet betyder att php-tolkaren tycker att filen tar slut för tidigt. I regel betyder att du har för många startparenteser (antingen av vanlig typ eller måsvinge eller hakparentes) och/eller för få slutparenteser. 

Det mest uppenbara jag kan se är att du har vänt slut-måsvingeparentesen till messageBox åt fel håll. 

```php
function messageBox($text){
	echo "<script language='javascript'>alert('$text');</script>";
{ // <- Fel!

function messageBox($text){
	echo "<script language='javascript'>alert('$text');</script>";
} // <- Rätt!
```

Permalänk: https://www.webforum.nu/p/2290072

## #3 — metalboy, 2012-01-05T11:49Z

Unexpected $end brukar betyda att det inte är lika många { som }. I detta fall ligger felet högt upp i koden,

```php
<?php
function messageBox($text){
	echo "<script language='javascript'>alert('$text');</script>";
{    // <---- Där är det fel, ska vara }
```

Edit: Lite för sen... :)

Permalänk: https://www.webforum.nu/p/2290073

## #4 — jme, 2012-01-05T11:55Z

OT: När lär sig folk att skydda sig mot sql injections?!

Aldrig, aldrig så här:

```php
"SELECT m_userlevel FROM members WHERE m_userlevel = ".$level." AND m_id = '".$_SESSION["sess_id"]."'"
```

utan:

```php
"SELECT m_userlevel FROM members WHERE m_userlevel = ".mysql_real_escape_string($level)." AND m_id = '".mysql_real_escape_string($_SESSION["sess_id"])."'"
```

<http://en.wikipedia.org/wiki/Sql_injections>

Permalänk: https://www.webforum.nu/p/2290075

## #5 — kimmo, 2012-01-05T12:17Z

Nu får jag upp denna error i samma fil..

Fatal error: Cannot redeclare messagebox() (previously declared in /home/user/public_html/functions.php:3) in /home/user/public_html/functions.php on line 5

Permalänk: https://www.webforum.nu/p/2290079

## #6 — jme, 2012-01-05T12:25Z

Se om du har funktionen messagebox() deklarerad två gånger.

Permalänk: https://www.webforum.nu/p/2290081

## #7 — kimmo, 2012-01-05T13:29Z

Nope, det har jag icke!

Permalänk: https://www.webforum.nu/p/2290084

## #8 — The_Hulk, 2012-01-05T13:31Z

inkluderar du functions.php flera gånger?

Permalänk: https://www.webforum.nu/p/2290086

## #9 — kimmo, 2012-01-05T13:34Z

Nope. functions.php är endast inkluderat i header.php!

Permalänk: https://www.webforum.nu/p/2290087

## #10 — metalboy, 2012-01-05T14:07Z

Visa rad 1-5 i functions.php

Permalänk: https://www.webforum.nu/p/2290089

## #11 — kimmo, 2012-01-05T14:12Z

```php
<?php
function messageBox($text){
	echo "<script language='javascript'>alert('$text');</script>";
}
function redirect($url){
	echo "<meta http-equiv=\"refresh\" content=\"0;URL=".$url.".php>";
}
```

Permalänk: https://www.webforum.nu/p/2290090

## #12 — kimmo, 2012-01-05T14:36Z

Lyckades lösa det senaste error problemet.
Men nu uppstod ett annat problem i header.php..

PHP Error Message

Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 30720 bytes) in /home/a5317154/public_html/header.php on line 43

Free Web Hosting

```php
<?php
session_start();
ob_start();

include("config.php");
include("sida.php");
include("functions.php");
include_once("checkhp.php");

if(isset($_SESSION["sess_id"])){
	checkHp();
	set_exp();
	warnings();
	userlevel();
	
}

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html>
<head>
<title>-</title>
<link rel="stylesheet" type="text/css" href="css.css" />
</head>
<body>
<div id="container">
	<div id="header">
	<table border="0" height="150">
	<tr>
	<td valign="bottom">
	<?php
	if(isset($_SESSION["sess_id"])){
		$sql = mysql_query("SELECT * FROM members WHERE m_id = '".$_SESSION["sess_id"]."'") or die(mysql_error());
		while($r = mysql_fetch_array($sql)){
		echo "<a href=\"hospital.php\"><strong>Hälsa:</strong></a> " . $r["m_hp"] . "/" . $r["m_max_hp"] . " <a href=\"energy.php\"><strong>Energi:</strong></a> " . $r["m_energy"] . "/" . $r["m_max_energy"];
		echo "<br /><strong>Level:</strong> " . $r["m_level"];
		echo " <strong>Exp:</strong> " . $r["m_exp"] . "/" . $r["m_exp_to_lvl"];
		echo "<br /><strong>Cash:</strong> " . number_format($r["m_cash"]);
		}
	}
	?><td>
	</tr>
	</table>
	</div>
	<div id="menu">
	<?php include("menu.php"); ?>
	</div>
	<div id="content">
</php>
```

Permalänk: https://www.webforum.nu/p/2290093

## #13 — jme, 2012-01-05T15:32Z

Det betyder att php-scriptet har försökt använda sig utav mer minne än den har till godo.

Har du sidan på en shared host så är det möjligt att du inte kan ändra på minnesmängden din PHP kan använda. Men du kan alltid testa. Lokalisera php.ini och leta efter:

memory_limit = 128M (kan vara ett annat värde).

Annars kanske du kan se om du kan uppgradera ditt paket och få mer minne till dina processer. Be snällt! :)

EDIT: Free web hosting...lycka till ;)

Slutligen får du se över din kod och försöka hitta den del av koden som äter upp minne.

Det finns funktioner i PHP för att se hur mycket en viss snutt kod brukar minne.

Se <http://php.net/manual/en/function.memory-get-usage.php>

Permalänk: https://www.webforum.nu/p/2290100

## #14 — nitro2k01, 2012-01-05T15:36Z

Se till att du inte har några filer som inkluderar varandra i en loop. Fil 1 inkluderar fil 2 som inkluderar fil 1... (Latvarianten är att bara använda include_once eller require_once. Det är sällan du vill göra annat ändå.)

Permalänk: https://www.webforum.nu/p/2290101

## #15 — kimmo, 2012-01-05T18:25Z

Jag har 000webhost som webbhotell, vet ni något annat gratis webbhotell som stödjer php?

Permalänk: https://www.webforum.nu/p/2290105

## #16 — nitro2k01, 2012-01-06T04:25Z

kimmo, med 99% sannolikhet ligger felet i din kod, så jag tror det är bäst att uttömma alla möjligheter där först.

Permalänk: https://www.webforum.nu/p/2290107

## #17 — kimmo, 2012-01-06T15:13Z

Har åtgärdat förra felet, men nu får jag upp en annan error.

PHP Error Message

Fatal error: Cannot redeclare messagebox() (previously declared in /home/a5317154/public_html/functions.php:2) in /home/a5317154/public_html/functions.php on line 4

Free Web Hosting

```php
<?php
function messageBox($text){
	echo "<script language='javascript'>alert('$text');</script>";
}
function redirect($url){
	echo "<meta http-equiv=\"refresh\" content=\"0;URL=".$url.".php>";
}

//SQL protection
function protect($string){
	return mysql_real_escape_string(trim(strip_tags($string)));
}

function admin($level){
	$sql = mysql_query("SELECT m_userlevel FROM members WHERE m_userlevel = ".$level." AND m_id = '".$_SESSION["sess_id"]."'") or die(mysql_error());
	if(mysql_num_rows($sql) == 0){
		return false;
	} else {
		return true;
	}
	
	/*Används så här*/
	//if(admin(1000)){
	//	echo "Admin";
	//}
}

function set_exp(){
	$sql = mysql_query("SELECT m_exp,m_level,m_exp_to_lvl FROM members WHERE m_id ='".$_SESSION["sess_id"]."'") or die(mysql_error());
	while($row = mysql_fetch_array($sql)){
		if($row["m_level"] > 99){
			$upt = mysql_query("UPDATE members SET m_exp_to_lvl = 500 WHERE m_id = ".$_SESSION["sess_id"]."") or die(mysql_error());
		}
	}
}

function warnings(){
	$sql = mysql_query("SELECT m_warnings FROM members WHERE m_id = ".$_SESSION["sess_id"]."") or die(mysql_error());
	$row = mysql_fetch_array($sql);
	if($row["m_warnings"] == 3){
		echo '<meta http-equiv="refresh" content="0;URL=banned.php>';
	}
}

function userlevel(){
	$sql = mysql_query("SELECT m_userlevel FROM members WHERE m_id = ".$_SESSION["sess_id"]."") or die(mysql_error());
	$row = mysql_fetch_array($sql);
	if($row["m_userlevel"] == 0){
		header("Location:banned.php");
		exit();
	}
}

function style($string){
	$string = htmlentities(stripslashes($string));
	
	$string = str_ireplace("(a)","<img src='/smiley/angel.gif' />",$string);
	
	$string = nl2br($string);
	
	return $string;
}
?>
```

Permalänk: https://www.webforum.nu/p/2290110

## #18 — jme, 2012-01-06T15:32Z

Är det där ALL kod? Det verkar som om det redan finns en funktion med namnet 'messagebox' någonstans. Säkert att du inte har en include/require nånstans som inkluderar en fil som råkar ha en funktion med samma namn?

Pröva att namnge messagebox till t ex messagebox2 och se om du får samma fel.

Permalänk: https://www.webforum.nu/p/2290112

## #19 — kimmo, 2012-01-06T22:12Z

Får fortfarande samma fel. :/

Permalänk: https://www.webforum.nu/p/2290131

## #20 — kimmo, 2012-01-07T00:51Z

bump

Permalänk: https://www.webforum.nu/p/2290133

---

Tråden på webben: https://www.webforum.nu/amne/php/188938-php-problem-parse-error-syntax-error-unexpected-end-in-home-user-public-htm  
Nästa sida: https://www.webforum.nu/amne/php/188938-php-problem-parse-error-syntax-error-unexpected-end-in-home-user-public-htm/page2.md
