[Gelöst]While Error [xampp 1.7.2]

Alles, was PHP betrifft, kann hier besprochen werden.

[Gelöst]While Error [xampp 1.7.2]

Postby Freakli » 11. September 2009 01:04

Habe einen T-While Error, der Code hat aber immer Funktzioniert

habe den Code sogar aus der Manual....

Code: Select all
  require('include/database.inc.php');
   $connection = mysql_connect($db['host'],$db['uid'],$db['pwd']);
mysql_select_db($db['db']);
   $sql = 'SELECT * FROM links';
   $result=mysql_query($sql);
while ($row = mysql_fetch_object($result)) {
    echo $row->title;
    echo $row->link;
}
mysql_free_result($result);

erzeugt: Parse error: syntax error, unexpected T_WHILE in C:\xampp\htdocs\nice\include\functions.inc.php on line 40
Line 40: while ($row = mysql_fetch_object($result)) {

Ich hoffe ihr könnt mir iwie helfen

PS.: OS: XP, SP3, V.:1.7.2, PHP: 5.3.0
Last edited by Freakli on 12. September 2009 06:56, edited 1 time in total.
Freakli
 
Posts: 7
Joined: 30. June 2009 12:45

Re: While Error [xampp 1.7.2]

Postby Wiedmann » 11. September 2009 01:26

Der Ursprung des Fehlers liegt nicht im von dir geposteten Teil des Codes, sondern in dem Teil den du nicht gepostet hast , bzw. in einem Include.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: While Error [xampp 1.7.2]

Postby Freakli » 11. September 2009 01:30

es wird die datei /inlcude/database.inc.php includet
in der steht:

Code: Select all
<?php
$db['host'] = 'localhost';
$db['uid'] = 'user';
$db['pwd'] = 'pass';
$db['db'] = 'nts';
?>


Edit, ich poste mal das ganze script:
index.php:
Code: Select all
<?php
$nts = $_GET['nts'];
$id  = $_GET['id'];
$content  = $_GET['page'];
$name  = $_GET['name'];
require('include/base.inc.php');
require('include/functions.inc.php');

$template = get_file_as_string($base['template']);


switch(strtolower($nts))
  {
  default:
    case 'home':
    $base['title']      .= 'Startseite';
    $base['content']    .= load_col3_content();
    $base['header_menu'].= load_menu_header();
   $base['menu']      .= load_menu_content();
    break;
    case 'content':
    $base['title']      .= $content;
    $base['content']    .= load_content($content);
    $base['header_menu'].= load_menu_header();
    $base['menu']      .= load_menu_content();
    break;
   }


$template = str_replace($base['tag_start'].'title'.$base['tag_end'],$base['title'],$template);
$template = str_replace($base['tag_start'].'header'.$base['tag_end'],$base['header'],$template);
$template = str_replace($base['tag_start'].'header_menu'.$base['tag_end'],$base['header_menu'],$template);
$template = str_replace($base['tag_start'].'menu'.$base['tag_end'],$base['menu'],$template);
$template = str_replace($base['tag_start'].'content'.$base['tag_end'],$base['content'],$template);
$template = str_replace($base['tag_start'].'content_footer'.$base['tag_end'],$base['content_footer'],$template);
$template = str_replace($base['tag_start'].'footer_left'.$base['tag_end'],$base['footer_left'],$template);
$template = str_replace($base['tag_start'].'footer_right'.$base['tag_end'],$base['footer_right'],$template);
$template = str_replace('$PHP_SELF',$_SERVER['PHP_SELF'],$template);

echo stripslashes($template);
?>


inlcude/functions.inc.php
Code: Select all
<?php
function load_col3_content()
  {
   $tmprslt .= 'Starseiten Text';
   return $tmprslt;
}

function load_menu()
  {
   $tmprslt .= '<ul><li><a href="index.php?nts=content&page=impressum">Impressum</a></ul></li>';
   return $tmprslt;
}

function load_menu_header()
  {
   $tmprslt .= '<ul><li><a href="">Link 1</a></ul></li>';
   return $tmprslt;
}

function load_content($content)
  {
   require('include/database.inc.php');
   $connection = mysql_connect($db['host'],$db['uid'],$db['pwd']);
mysql_select_db($db['db']);
   $sql = 'SELECT * FROM text WHERE name = "'.$content.'"';
   $result=mysql_query($sql);
   $row=mysql_fetch_object($result);
   $tmprslt .= $row->content;
   return $tmprslt;
}

function load_menu_content()
  {
   include('./include/database.inc.php');
   $connection = mysql_connect($db['host'],$db['uid'],$db['pwd']);
mysql_select_db($db['db']);
   $sql = 'SELECT * FROM links';
   $result=mysql_query($sql);
   $tmprslt .= '<ul>'
while ($row = mysql_fetch_object($result)) {
    echo $row->title;
    echo $row->link;
}
mysql_free_result($result);
   $tmprslt .= '</ul>';
   mysql_free_result($result);
   return $tmprslt;
}
?>


include/base.inc.php:
Code: Select all
<?php
$base['title']   .= 'Nice Teamspeak Sponsor => ';
$base['header']         .= '<a href="index.php">Nice Teamspeak Sponsor</a>';
$base['header_menu']   .= '';
$base['menu']         .= '';
$base['content']      .= '';
$base['content_footer'] .= 'Content Footer<br><br>&nbsp;';
$base['footer_left']   .= 'Footer Left';
$base['footer_right']   .= 'Footer Right';
$base['template']      .= 'layout/templates/template.htm';


$base['tag_start'].= '<@';
$base['tag_end']  .= '@>';

function get_file_as_string($filename)
  {
  $tmprslt = file($filename);
  $tmprslt = implode('',$tmprslt);
  return $tmprslt;
  }
?>


Hinzukommt noch die css und die images, aber die sind jetzt nicht relevant...

Ordner struktur:

C:/xampp/htdocs/nice :
/inlcude/
/layout/
/layout/css/
/layout/img/
/layout/templates/

Hoffe das hilft weiter
Freakli
 
Posts: 7
Joined: 30. June 2009 12:45

Re: While Error [xampp 1.7.2]

Postby Altrea » 11. September 2009 05:59

Datei functions.inc.php Zeile 39:
Code: Select all
$tmprslt .= '<ul>'


Fehlendes Semikolon am Ende.
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11926
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: While Error [xampp 1.7.2]

Postby Xardas der Dunkle » 11. September 2009 07:32

Hmn das Mini CMS :).

Aber wieso hängst du hier an einen String an der noch gar nicht existiert?
Code: Select all
<?php
$base
['title']   .= 'Nice Teamspeak Sponsor => ';
$base['header']         .= '<a href="index.php">Nice Teamspeak Sponsor</a>';
$base['header_menu']   .= '';
$base['menu']         .= '';
$base['content']      .= '';
$base['content_footer'] .= 'Content Footer<br><br>&nbsp;';
$base['footer_left']   .= 'Footer Left';
$base['footer_right']   .= 'Footer Right';
$base['template']      .= 'layout/templates/template.htm';


$base['tag_start'].= '<@';
$base['tag_end']  .= '@>';

function 
get_file_as_string($filename)
{
     
$tmprslt file($filename);
     
$tmprslt implode('',$tmprslt);
     return 
$tmprslt;
}
?>
User avatar
Xardas der Dunkle
 
Posts: 482
Joined: 09. March 2008 19:40
Location: /var/www

Re: While Error [xampp 1.7.2]

Postby Freakli » 11. September 2009 09:46

mhh, die semikolons >.<
Thx dafür...

Nunja, mach ich halt eben mit den Strings, und Mini CMS kann man das nimmer nennen ^^
Wird für nen Sponsoring erstellt.
Betreibe mit dem schon dann 3 Websiten ;)
Freakli
 
Posts: 7
Joined: 30. June 2009 12:45

Re: While Error [xampp 1.7.2]

Postby Wiedmann » 11. September 2009 13:10

mhh, die semikolons >.<

Hmmm. Der Code den du ganz am Anfang gepostet hast, war dann auf jedenfall nicht die Line 40 aus der Datei functions.inc.php...


Nunja, mach ich halt eben mit den Strings,

Code: Select all
<?php
$base['title']   .= 'Nice Teamspeak Sponsor => ';

Da an dieser Stelle das Array $base noch nicht existiert, kann man "normal" $base['title'] auch nicht als Teil einer Stringverknüpfung benutzen (da hier Key und das Array überhaupt ja eben nicht existiert). Hier müsste es also sein:
Code: Select all
<?php
$base['title']   = 'Nice Teamspeak Sponsor => ';

Zum initialisieren des $base Arrays und erstmaligen setzten dieses Keys. Noch sicherer wäre natürlich, wenn man davor noch ein "$base = array();" macht.

Vielleicht willst du ja mal ein "error_reporting(E_ALL);" an den Anfang deiner Scripts reinmache...
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: While Error [xampp 1.7.2]

Postby Altrea » 11. September 2009 17:11

Freakli wrote:mhh, die semikolons >.<
Thx dafür...


Nichts zu danken.

Mit was für einem Texteditor erstellst du deine Dateien?
Fehlende Semikolons sollte eigentlich jeder Editor mit halbwegs vernünftigem Debugger direkt kenntlich machen können. Spart dir eine Menge Nerven und Suchaufwand.

Achja, und den Tipp vom Wiedmann mit dem error_reporting solltest du dir zu Herzen nehmen. Ich kann garnicht genug betonen, wie wichtig ausführliche Debug-Informationen bei der Fehlersuche und -behebung sind!
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11926
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: While Error [xampp 1.7.2]

Postby Freakli » 12. September 2009 02:56

ich verwende PHP Designer 2007 Personal ;)

werde ich mir zu herzen legen mit den arrays
Freakli
 
Posts: 7
Joined: 30. June 2009 12:45

Re: [Gelöst]While Error [xampp 1.7.2]

Postby Xardas der Dunkle » 12. September 2009 10:09

In der personal Edition fehlt glaube ich gerade der Live Syntax Check. Welcher echt nützlich ist.
(Oh ich sehe gerade sie haben die Preise erhöht o_O, ich bin mir sicher das ich die Commercial Licence für 39,- erworben habe).
Aber vllt reicht dir ja eh die Personal Licence: http://www.mpsoftware.dk/buy.php einmalig 39,- Euro sind nicht die Welt :).
User avatar
Xardas der Dunkle
 
Posts: 482
Joined: 09. March 2008 19:40
Location: /var/www


Return to PHP

Who is online

Users browsing this forum: No registered users and 21 guests