Scripte funktionieren mit XAMPP nicht mehr

Alles, was PHP betrifft, kann hier besprochen werden.

Scripte funktionieren mit XAMPP nicht mehr

Postby Gesenkte Sau » 09. April 2010 20:29

Nabend!

Ich habe jahrelang eine andere Basis als XAMPP benutzt (welche kann ich im Moment nicht sagen), nun habe ich allerdings meinen Laptop neu aufgespielt und mir mal eine neue Version gegönnt. Hat soweit auch alles funktioniert, die Seiten laufen und die Datenbanken auch. ALLERDINGS gehen sämtliche Skripte nicht mehr (Gästebuch, News etc...). Es kommt immer ein parse error, z.B.

Parse error: syntax error, unexpected '}' in C:\...\news.php on line 843

Es werden immer die }-Klammern "bemängelt". An den ganzen Dateien habe ich allerdings NICHTS verändert und im Internet laufen sie auch perfekt. Woran kanns also liegen?

Danke schonmal!
Gesenkte Sau
 
Posts: 10
Joined: 09. April 2010 20:24

Re: Scripte funktionieren mit XAMPP nicht mehr

Postby WilliL » 09. April 2010 20:56

bei einem Codeschnipsel könnte man einen Blick drauf werfen..
:geraten:
<? anstelle von <?php oder <?= anstelle von <?php echo
siehe: short open tags
Willi
WilliL
 
Posts: 660
Joined: 08. January 2010 10:54
Operating System: Win7Home Prem 64 SP1

Re: Scripte funktionieren mit XAMPP nicht mehr

Postby Gesenkte Sau » 09. April 2010 21:29

Nee... Das hier ist der Auszug um die genannte "Line"

<?php
}
else
{
echo "<center>Du musst dich zuerst einloggen !<br><br>";
echo "<a href=\"index.php?show=admin\">Login</a></center>";
}
?>
Gesenkte Sau
 
Posts: 10
Joined: 09. April 2010 20:24

Re: Scripte funktionieren mit XAMPP nicht mehr

Postby Altrea » 09. April 2010 22:11

Hast du auch ein komplettes Beispiel?
Mit solch unvollständigen Codeschnipseln ist Debuggen, erstrecht aus der Ferne, praktisch unmöglich.
Aber ein parse error kommt nicht von ungefähr.

Am besten wäre es, du könntest den Fehler soweit eingrenzen, dass du keine 900 Zeilen hier posten müsstest.
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: Scripte funktionieren mit XAMPP nicht mehr

Postby Gesenkte Sau » 11. April 2010 10:12

Naja das kann ich leider nicht, da ich ja absolut keine Ahnung hab, woher der auf einmal kommt. Ich arbeite mit dem Code schon seit Jahren und hatte nie Probleme damit...

**

Ich kann mich auch nicht mehr beim Admin-Login einloggen. Die Abfrage kommt ganz normal und wenn ich die Daten angebe stimmen angeblich User/PW nicht zusammen. Obwohl die Mysql DB importiert ist und ich das PW genau weiß...
Gesenkte Sau
 
Posts: 10
Joined: 09. April 2010 20:24

Re: Scripte funktionieren mit XAMPP nicht mehr

Postby Gesenkte Sau » 11. April 2010 10:22

So, hab grad nochmal was rumgetestet. Also die normale Ausgabe (ich beziehe mich jetzt mal aufs Gästebuch-Skript) funktioniert. Allein wenn es um die Abfragen ausm Admin-Center geht (Eintrag löschen / editieren) gibt es den Fehler. Lösche ich den Teil ausm Code ist er weg. Hier ein Auszug:



<?
}
if ($_GET['action'] == "delete")
{
if(isset($login_name) AND isset($login_pw))
{
?>


<?php

$abfrage = "SELECT * FROM guestbook ORDER BY id DESC";
$ergebnis = mysql_query($abfrage);
$gb_counter = mysql_num_rows($ergebnis);

echo "<p align='center'>";
echo "[ Seit dem 01-02-2003 haben sich <font color='".$extracolor."'>".$gb_counter."</font> User ins GB eingetragen ]";
echo "<br><br><br></p>";

while($row = mysql_fetch_object($ergebnis))
{

$date = date("d\-m\-Y \» H:i",$row->date);

if($row->page == "" OR $row->page == "http://")
{ $page = "Page"; }
else
{ $page = "<a href=\"".$row->page."\" target='_blank'>Page</a>"; }
if($row->icq == "")
{ $icq = "ICQ"; }
else
{ $icq = "<a href=\"http://wwp.mirabilis.com/scripts/search.dll?to=".$row->icq."\">ICQ</a>"; }

echo "xxx";
echo "xxx";

}

?>


<?php
{
}
else
{
echo "<center>Du musst dich zuerst einloggen !<br><br>";
echo "<a href=\"index.php?show=admin\">Login</a></center>";
}
?>
Gesenkte Sau
 
Posts: 10
Joined: 09. April 2010 20:24

Re: Scripte funktionieren mit XAMPP nicht mehr

Postby Gesenkte Sau » 11. April 2010 10:34

Hmmm... mir fällt grad nochwas auf: Habe ja pro php Datei (z.B. farbe.php) dann noch Parameter z.B. index.php?show=colours&farbe=gruen, die ich so aufgebaut habe:

<?
if (!$_GET['farbe'])
{
?>

ÜBERSICHT

<?
}
if ($_GET['farbe'] == "gruen")
{
?>

GRÜN

<?
}
?>

...das funktioniert auch nirgends. Der zeigt direkt ALLE Unterteilungen an. Denke mal, dass dann iwas mit dem GET nicht funktioniert!?
Gesenkte Sau
 
Posts: 10
Joined: 09. April 2010 20:24

Re: Scripte funktionieren mit XAMPP nicht mehr

Postby Nobbie » 11. April 2010 10:47

Gesenkte Sau wrote:Denke mal, dass dann iwas mit dem GET nicht funktioniert!?


Falsch gedacht. Nach wie vor wird "<?" nicht interpretiert, was doch eigentlich geklärt war?!
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: Scripte funktionieren mit XAMPP nicht mehr

Postby Gesenkte Sau » 11. April 2010 10:53

Und wie "behebe" ich das nun? Muss ja irgendeine Einstellungssache sein, an dem Code selbst kanns ja nicht liegen. Überall sonst läuft er.
Gesenkte Sau
 
Posts: 10
Joined: 09. April 2010 20:24

Re: Scripte funktionieren mit XAMPP nicht mehr

Postby Altrea » 11. April 2010 11:24

Gesenkte Sau wrote:Und wie "behebe" ich das nun? Muss ja irgendeine Einstellungssache sein, an dem Code selbst kanns ja nicht liegen. Überall sonst läuft er.

Dass dein Code sonst überall läuft liegt an der nicht so strikten Einstellung deiner Hoster. Diese sind nämlich darauf bedacht möglichst vieles zuzulassen, damit wenige Supportanfragen wegen nicht laufenden Scripts zurückkommen (Dies ist auch der Hauptgrund, weshalb sich PHP 5.3 nochnicht bei den Hostern durchgesetzt hat. Die Kompatibilität der meisten Scripte ist nicht gegeben).

Short open tags zu aktivieren hat aber auch einen ganz klaren Nachteil. Das Zusammenspiel mit der Sprache XML wird deutlich erschwert. Deshalb ist es anzuraten, statt dem short tag die vollständige Version zu verwenden.

Legst du keinen Wert auf XML, kannst du die Einstellung short_open_tag in der php.ini auf "On" stellen.
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: Scripte funktionieren mit XAMPP nicht mehr

Postby Nobbie » 11. April 2010 11:28

Gesenkte Sau wrote:Muss ja irgendeine Einstellungssache sein


Ist es auch. Die "Lösung" findet man hier im Forum bestimmt paar hundert Mal, das Stichwort lautet "short_open_tag" und ist eine Einstellung in der php.ini

Die andere Option wäre natürlich, aus den "<?" gleich "<?php" zu machen, denn möglicherweise fliegt die Option short_open_tag mit PHP6 endgültig über Board - spätestens dann laufen die Scripts endgültig nicht mehr, wenn short_open_tags benutzt wird.

Da mit dieser Option aber leider auch die Spezialsyntax <?=$variable?> baden gehen soll, ist das keine einfache Entscheidung für das PHP6 Konsortium. Denn so sehr ich vollständige Tags a la <?php befürworte - der Wegfall dieser speziellen Syntax wäre (aus meiner Sicht) ein grober Designfehler, welches das Schreiben von Templates sehr unübersichtlich gestalten wird. Meiner Meinung nach sollte es durchaus möglich sein, die eine Syntax zu streichen, ohne die andere gleich mit über Board zu werfen. Dann ist <?= eben ein SpezialTag, was spricht dagegen? Naja, soll nicht Dein Problem sein, aber solche Probleme werden in Zukunft vielleicht auf uns zukommen.
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: Scripte funktionieren mit XAMPP nicht mehr

Postby Altrea » 11. April 2010 11:36

Nobbie wrote:denn möglicherweise fliegt die Option short_open_tag mit PHP6 endgültig über Board

Das wollen wir alle nicht hoffen :D. Steht nach meinen letzten Kenntnissen aber zum Glück auch nicht zur Diskussion. Ansonsten wäre die Einstellung wohl schon jetzt als deprecated markiert, wie das bei safe_mode, register_globals und co schon der Fall ist.
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: Scripte funktionieren mit XAMPP nicht mehr

Postby Gesenkte Sau » 11. April 2010 14:17

Wunderbar, danke!

Bleibt jedoch noch das Ding, dass ich mich im "Login Center" nicht einloggen kann - immer Kombination User/PW falsch, obwohl wie gesagt die DB übernommen wurde und das PW dort drin auch das gleiche ist wie das, was ich eingebe. Ausschnitt:


<table width="220" align="center" cellspacing="0" cellpadding="0">
<tr height="30"><td background="gfx/bgpoint.gif" id="lined"><p align="center"><b>Admin-Login</b></p></td></tr></table><br><br>

<form method="post" action="index.php?show=admin&action=go">
<table><tr><td>
Name: &nbsp;</td><td><select name="login_name" id="c_small" style="width:91">

<?php
$result = mysql_query("SELECT user FROM admins");
while ($row = mysql_fetch_row($result))
{
echo"<option>$row[0]</option>";
}
?>

</select></td></tr><tr><td>
Passwort: &nbsp;</td><td><input name="login_pw" type="password" size="15">
</td></tr></table><br><br><input name="login_send" type="submit" value="Login" id="button">
</form><br><br>( <a href="index.php?show=admin&action=help">Probleme beim Einloggen ?</a> )


<?php
}
}
if($_GET['action'] == "go")
{
?>


<?php

$user = $HTTP_POST_VARS['login_name'];
$userpw = md5($HTTP_POST_VARS['login_pw']);

$abfrage = "SELECT * FROM admins WHERE (user = '$user') AND (pw = '$userpw')";
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_object($ergebnis);
$affected_rows = mysql_num_rows($ergebnis);

if($affected_rows == 1)
{
...
Gesenkte Sau
 
Posts: 10
Joined: 09. April 2010 20:24

Re: Scripte funktionieren mit XAMPP nicht mehr

Postby Altrea » 11. April 2010 15:16

Wenn man auf so einen Fehler trifft, gibt man am besten die zugehörigen Variablen die zum Fehler gehören per echo oder var_dump() aus.

btw: HTTP_POST_VARS ist veraltet und muss ausgetauscht werden. Die gleichwertige neuere Form davon ist das Array $_POST
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: Scripte funktionieren mit XAMPP nicht mehr

Postby Gesenkte Sau » 11. April 2010 15:28

Danke, damit bin ich wieder einen Schritt weiter ;)

Cookies (u.a. "login_name" und "login_pw") werden jetzt gesetzt und kann mich auch einloggen - allerdings wird das Admin Menü nicht angezeigt:


<?php
$adminabfrage = mysql_query("SELECT user FROM admins WHERE user='".$login_name."'");
$admincheck = mysql_num_rows($adminabfrage);
if(isset($login_name) AND isset($login_pw) AND $admincheck > 0)
{
?>
<tr height="20"><td>&nbsp; <b>A D M I N</b></td></tr><tr><td><br>
...
Gesenkte Sau
 
Posts: 10
Joined: 09. April 2010 20:24

Next

Return to PHP

Who is online

Users browsing this forum: No registered users and 26 guests