07. august 2005 - 19:09Der er
21 kommentarer og 1 løsning
parse error, unexpected $
Ok... det er ved at irritere mig pænt meget at jeg ikke kan se den fejl den kommer med. Jeg har et nyheds system som ikke kan add edit eller delete nyheder fordi den kommer med en fejl i en fil. Den har været i flere filer hvor jeg har fjernet linier for at løse gåden, men vil høre om der ikke er en anden måde at ændre det på...
fejlen den kommer med lyder sådan her: Parse error: parse error, unexpected $ in /home/cvroms/public_html/beta/news/newsprocess.php on line 61
Det jeg ikke kan forstå er at line 61 i den angivne fil ser sådan ud: ?>
Den er også kommet med en fejl omkring header allready sent by... osv. Det er først efter jeg har addet nye scripts til siden. Såå, kunne godt tænke mig at vide hvorfor ?
Er der en enkel løsning på det eller er det en generel fejl den lukker ud ?
Prøv at poste din kode så vi har noget mere at arbejde med.
Synes godt om
Slettet bruger
07. august 2005 - 19:13#3
1. Det kan ikke passe, at linie 61 kun indeholder "?>" i newsprocess.php.
2. De nye scripts du har tilføjet, kræver åbenbart, at de skal kunne sætte headers (cookies/redirecte/..), hvorfor det ikke virker, når du sandsynligvis allerede har udsendt nogle informationer til brugerens browser.
Din første fejl kan skyldes flere ting. Måske kan fejlen ligge på linie 60, eller også kan den f.eks. skyldes at du mangler en } et sted eller lign. Gennemgå din kode for om antallet passer overens.
Dit andet problem skyldes, at du har et html-output inden du laver dine headers. Når du arbejder med headers, må der intet html-output være inden det bliver sendt. Det gælder også blanke linier, mellemrum etc.
Synes godt om
Slettet bruger
07. august 2005 - 19:13#5
nielle det er vel ikke fordi $ mangler, det er da fordi der er et $ for meget på linie 61 (eller deromkring).
wicez> Du har ret - den gik lidt for hurtig der. Men sagen er at der er en fejl et eller andet sted tidligere i koden. Parseren forsøger at finde ud af hvad der er galt, og først når den når slutningen må den give op - og så kommer fejlbeskeden.
if ($action == "post") { if ($_POST['submit_news']) { if ($title == "") { echo "<strong>FEJL:</strong> Du mangler overskriften. <a href=\"index.php?page=postnews\">Fortsæt</a>."; } else if ($author == "") { echo "<strong>FEJL:</strong> Hvem er den skrevet af? <a href=\"index.php?page=postnews\">Fortsæt</a>."; } else if ($news == "") { echo "<strong>FEJL:</strong> Du mangler selve nyheden. <a href=\"index.php?page=postnews\">Fortsæt</a>."; } else { $db = mysql_connect($dhost,$dusername,$dpwd); mysql_select_db($dbname) or die("Kan ikke oprette forbindelse til databasen."); mysql_query("INSERT INTO news(author,title,news,date,ip) VALUES('$author','$title','$news','$date','$ip')"); echo "<strong>Nyheden er tilføjet!</strong> <a href=\"index.php\">Fortsæt</a>."; mysql_close($db); } } } else if ($action == "modify") { if ($_POST['submit_news']) { $db = mysql_connect($dhost,$dusername,$dpwd); mysql_select_db($dbname) or die("Kan ikke oprette forbindelse til databasen."); mysql_query("UPDATE news SET title='$title' WHERE id='$id'"); mysql_query("UPDATE news SET author='$author' WHERE id='$id'"); mysql_query("UPDATE news SET news='$news' WHERE id='$id'"); echo "<strong>Nyheden er opdateret!</strong> <a href=\"index.php\">Fortsæt</a>."; mysql_close($db); } } else if ($action == "del") { $db = mysql_connect($dhost,$dusername,$dpwd); mysql_select_db($dbname) or die("Kan ikke oprette forbindelse til databasen."); mysql_query("DELETE FROM news WHERE id='$id'"); echo "<strong>Nyheden er slettet!</strong> <a href=\"index.php\">Fortsæt</a>."; mysql_close($db); } else{ echo "<a href=\"index.php\">Fortsæt</a>. $action"; }
?>
Synes godt om
Slettet bruger
07. august 2005 - 19:31#8
Din session_start skal flyttes til toppen af dit dokument.
if ($action == "post") { if ($_POST['submit_news']) { if ($title == "") echo "<strong>FEJL:</strong> Du mangler overskriften. <a href=\"index.php?page=postnews\">Fortsæt</a>."; else if ($author == "") echo "<strong>FEJL:</strong> Hvem er den skrevet af? <a href=\"index.php?page=postnews\">Fortsæt</a>."; else if ($news == "") echo "<strong>FEJL:</strong> Du mangler selve nyheden. <a href=\"index.php?page=postnews\">Fortsæt</a>."; else { $db = mysql_connect($dhost, $dusername, $dpwd); mysql_select_db($dbname) or die("Kan ikke oprette forbindelse til databasen."); mysql_query("INSERT INTO news(author,title,news,date,ip) VALUES('$author','$title','$news','$date','$ip')"); echo "<strong>Nyheden er tilføjet!</strong> <a href=\"index.php\">Fortsæt</a>."; mysql_close($db); } } } else if ($action == "modify") { if ($_POST['submit_news']) { $db = mysql_connect($dhost,$dusername,$dpwd); mysql_select_db($dbname) or die("Kan ikke oprette forbindelse til databasen."); mysql_query("UPDATE news SET title='$title' WHERE id='$id'"); mysql_query("UPDATE news SET author='$author' WHERE id='$id'"); mysql_query("UPDATE news SET news='$news' WHERE id='$id'"); echo "<strong>Nyheden er opdateret!</strong> <a href=\"index.php\">Fortsæt</a>."; mysql_close($db); } } else if ($action == "del") { $db = mysql_connect($dhost,$dusername,$dpwd); mysql_select_db($dbname) or die("Kan ikke oprette forbindelse til databasen."); mysql_query("DELETE FROM news WHERE id='$id'"); echo "<strong>Nyheden er slettet!</strong> <a href=\"index.php\">Fortsæt</a>."; mysql_close($db); } else { echo "<a href=\"index.php\">Fortsæt</a>. $action"; } } ?>
if ($action == "post") { if ($_POST['submit_news']) { if ($title == "") echo "<strong>FEJL:</strong> Du mangler overskriften. <a href=\"index.php?page=postnews\">Fortsæt</a>."; else if ($author == "") echo "<strong>FEJL:</strong> Hvem er den skrevet af? <a href=\"index.php?page=postnews\">Fortsæt</a>."; else if ($news == "") echo "<strong>FEJL:</strong> Du mangler selve nyheden. <a href=\"index.php?page=postnews\">Fortsæt</a>."; else { $db = mysql_connect($dhost, $dusername, $dpwd); mysql_select_db($dbname) or die("Kan ikke oprette forbindelse til databasen."); mysql_query("INSERT INTO news(author,title,news,date,ip) VALUES('$author','$title','$news','$date','$ip')"); echo "<strong>Nyheden er tilføjet!</strong> <a href=\"index.php\">Fortsæt</a>."; mysql_close($db); } } } else if ($action == "modify") { if ($_POST['submit_news']) { $db = mysql_connect($dhost,$dusername,$dpwd); mysql_select_db($dbname) or die("Kan ikke oprette forbindelse til databasen."); mysql_query("UPDATE news SET title='$title' WHERE id='$id'"); mysql_query("UPDATE news SET author='$author' WHERE id='$id'"); mysql_query("UPDATE news SET news='$news' WHERE id='$id'"); echo "<strong>Nyheden er opdateret!</strong> <a href=\"index.php\">Fortsæt</a>."; mysql_close($db); } } else if ($action == "del") { $db = mysql_connect($dhost,$dusername,$dpwd); mysql_select_db($dbname) or die("Kan ikke oprette forbindelse til databasen."); mysql_query("DELETE FROM news WHERE id='$id'"); echo "<strong>Nyheden er slettet!</strong> <a href=\"index.php\">Fortsæt</a>."; mysql_close($db); } else { echo "<a href=\"index.php\">Fortsæt</a>. $action"; } } ?>
forresten nielle kan ikke helt få de der smilies til at fungere... men skriver lige senere i den anden post der omkring det... skal lige forsøge lidt mere med det. Smider du et svar ?
det tror jeg gerne :D men det har taget mig et godt stykke tid at få det til at fungere nogen lunde sammen, så nu vil jeg ikke rode mere ved denne fil :D Smider du svar ?
Synes godt om
Slettet bruger
07. august 2005 - 19:46#17
Prøv dette:
<?php session_start();
echo "<div class=\"title\">Tilføjelse af nyhed</div>";
require_once("../config.php");
$db = mysql_connect($dhost, $dusername, $dpwd); mysql_select_db($dbname) or die("Kan ikke oprette forbindelse til databasen.");
$sql = mysql_query("SELECT * FROM users WHERE username = '". $_COOKIE['username'] ."'") or die("Der er en MySQL fejl."); $row = mysql_fetch_array($sql);
Ved at løbe dit script igennem og systematrisk konvertere alle konstruktioner af denne form:
if (blah blah) { ... }
- til:
if (blah blah) { ... }
På den måde er det 1000 x nemmere at se hvordan {}-parenteserne er parret. Og så springer det meget nemmere i øjnene hvis der mangler noget et eller andet sted.
testede lige hurtigt din også wicez... Tror ikke det er videre godt at den lukker databasen når du kører hele control panelet på det :D det resulterede hvert fald i at jeg ikke kunne edit en nyhed, da den ikke kunne etablere forbindelse med databasen...
smider nok nogle flere "gåder" fra min side af... som i kan race jeres svar på :) vil have den side op at køre i aften...
Synes godt om
Slettet bruger
07. august 2005 - 21:09#22
Jeg forstår ikke hvad du mener, men det er bestemt en bedre idé at oprette forbindelse til databasen i toppen af sit script, og lukke den i bunden (selvom det ikke er nødvendigt at lukke den, da den alligevel lukkes efter scriptet er udført), end at oprette en forbindelse for hver enkelt forespørgsel, for derefter at lukke den igen efter hver af disse.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.