Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » PHP » Serverproblem mit XAMPP unter Windows Server 2003

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
05.02.2007, 11:19 Uhr
Yadgar



High!

Ich versuche, einen kleinen "Palindrom-Tester" zum Laufen zu bringen, der einen per HTML-Formular übergebenen Text darauf überprüfen soll, ob er rückwärts gelesen (ohne Rücksicht auf Leerzeichen und Groß-/Kleinschreibung) denselben Wortlaut ergibt.

Leider hängt sich beim Abrufen des Skripts der XAMPP-Server jedesmal auf und ist danach auch nicht mehr zum Verarbeiten anderer PHP-Skripts zu bewegen... ich bin mir sicher, dass der Fehler irgendwo im Code liegt, denn nach einem Neustart verarbeitet er meine sonst bisher programmierten Skripte ganz normal!

Hier der HTML-Code:


Code:
<html>
<head>
<title>Palindrom-Test</title>
</head>
<p>
<form name="Eingabe" action="palindrom_test.php" method=post>
<input type="text" name="Zeile" size=50></input>
<input type="submit" value="Palindrom?"></input>
</form>
</p>
Bitte geben Sie einen Text ein!
</html>



und das PHP-Skript:


PHP 4:
<!-- <?php
echo "Der Server funktioniert!";
?> //-->

<?php

  // Leerzeichen entfernen
  $worte = explode("\n", $_REQUEST['Zeile']);
  $text="";
  for ($i=0; i<count($worte); $i++)
  {
    $text .=$worte[$i];
  }

  // Großbuchstaben durch Kleinbuchstaben ersetzen
  strtolower($text);

  // Zeichen im String von Anfang und Ende ausgehend vergleichen
  $laenge=strlen($text);
  $i=0;
  $v=true;
  while($i <= (int)($laenge/2))
  {
    if ($text{$i}!=$text{$laenge-1-$i})
    {
      $v=false;
      break;
    }
    $i++;
  }
  echo $_REQUEST['Zeile']." ist ";
  if (!$v) echo "k";
  echo "ein Palindrom!";
?>



Bis bald im Khyberspace!

Yadgar
--
Flagmaker - ein Programmier-Blog
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
05.02.2007, 11:43 Uhr
Yadgar



High!

Problem gelöst... es war ein dummer kleiner Anfängerfehler:


Zitat von Yadgar:


PHP 4:
<?php
  for ($i=0; i<count($worte); $i++)





...mit Variablennamen ohne Dollarzeichen kann der Server natürlich nichts anfangen!

In diesem Zusammenhang stellt sich natürlich die Frage, ob es brauchbare PHP-Debugger für XAMPP gibt...

Bis bald im Khyberspace!

Yadgar
--
Flagmaker - ein Programmier-Blog
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
06.02.2007, 18:32 Uhr
tobias
hmm....


kannste mal sagen was ein Palidrom ist? - Sowas wie maoam?

dann könntest du deinen Code aber noch erheblich verbessern..

achja, wofür machst du die buchstaben klein? - das brauchst du nur wenn du exakt:

lala mit lala vergleichen willst und zwar mit ===

LaLa == lAlA (ist richtig, da hier nicht auf die schreibweise geprüft wird, sondern auf die selben buchsten)..

naja, wenn ich weis was das ist, bastel ich aus deinem script nochmal was nettes.
--
Danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
06.02.2007, 19:51 Uhr
Pler
Einer von Vielen
(Operator)


http://de.ask.com/web?q=Palindrom&qsrc=1&o=0&l=dir
http://de.wikipedia.org/wiki/Palindrom

@Yadgar:
Wo läuft das Ding?
Mit einem tail -f /var/log/apache/error.log (ggf. anpassen) kommt man schon oft sehr weit.
Dann gibt's wohl auch sowas wie php -l <skriptname> zur Syntaxprüfung. Weiß aber nicht ob das in deinem Fall funktioniert.

Dieser Post wurde am 06.02.2007 um 19:56 Uhr von Pler editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
06.02.2007, 20:59 Uhr
J-jayz-Z
Perl Crack ala Carte
(Operator)


Man merkt, das du aus der C/C++ Welt kommst. Der Code ist ziemlich untypisch für PHP. Auch funktioniert er nicht richtig.

PHP 4:
<?php
  $worte = explode("\n", $_POST['Zeile']);
  $text="";
  $i = $v = 0;
  foreach($worte as $wort)
  {
    $text .=$wort;
  }

  strtolower($text);

  while($i < ceil(strlen($text)/2))
  {
    if ($text[$i] != $text[strlen($text)-1-$i])
    {
      $v = 1;
      break;
    }
    $i++;
  }
  echo $_POST['Zeile']." ist ";
  echo ($v ? "k" : "" ) . "ein Palindrom!";
?>

Wenn du einen bestimmten Buchstaben haben willst, musst du das in [] machen und nicht in {}
--
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="66756e2d736f66742e6465"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'

Dieser Post wurde am 06.02.2007 um 21:00 Uhr von J-jayz-Z editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ PHP ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: