kimmoMedlem sedan feb. 200946 inlägg 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;
}
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.
function messageBox($text){
echo "<script language='javascript'>alert('$text');</script>";
{ // <- Fel!
function messageBox($text){
echo "<script language='javascript'>alert('$text');</script>";
} // <- Rätt!
metalboyMedlem sedan jan. 2005953 inlägg Unexpected $end brukar betyda att det inte är lika många { som }. I detta fall ligger felet högt upp i koden,
<?php
function messageBox($text){
echo "<script language='javascript'>alert('$text');</script>";
{ // <---- Där är det fel, ska vara }
Edit: Lite för sen... :)
jmeMedlem sedan maj 20012 237 inlägg OT: När lär sig folk att skydda sig mot sql injections?!
Aldrig, aldrig så här:
"SELECT m_userlevel FROM members WHERE m_userlevel = ".$level." AND m_id = '".$_SESSION["sess_id"]."'"
utan:
"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
kimmoMedlem sedan feb. 200946 inlägg 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
jmeMedlem sedan maj 20012 237 inlägg Se om du har funktionen messagebox() deklarerad två gånger.
The_HulkMedlem sedan juni 20031 837 inlägg inkluderar du functions.php flera gånger?
kimmoMedlem sedan feb. 200946 inlägg Nope. functions.php är endast inkluderat i header.php!
metalboyMedlem sedan jan. 2005953 inlägg Visa rad 1-5 i functions.php
kimmoMedlem sedan feb. 200946 inlägg <?php
function messageBox($text){
echo "<script language='javascript'>alert('$text');</script>";
}
function redirect($url){
echo "<meta http-equiv=\"refresh\" content=\"0;URL=".$url.".php>";
}
kimmoMedlem sedan feb. 200946 inlägg 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
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>
jmeMedlem sedan maj 20012 237 inlägg 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
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å.)
kimmoMedlem sedan feb. 200946 inlägg Jag har 000webhost som webbhotell, vet ni något annat gratis webbhotell som stödjer php?
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.
kimmoMedlem sedan feb. 200946 inlägg 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
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;
}
?>
jmeMedlem sedan maj 20012 237 inlägg Ä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.
kimmoMedlem sedan feb. 200946 inlägg Får fortfarande samma fel. :/