Ergebnis 1 bis 10 von 10

Thema: Fehler im PHP-Script

  1. #1
    misel
    Gast

    Standard Fehler im PHP-Script

    Sry für die vielleicht etwas allgemeine Überschrift, aber ich wusste das Probleme nicht besser zu benennen und da ich nun wahrlich am verzweifeln bin, versuch ich mal hier mein Glück.

    Also:

    Code:
    [...]
    
    for&#40; $i = 0 ; $i < count&#40;$neu&#41;; $i++ &#41; &#123;
    
     // Städte-Koordis auslesen
    
      if &#40; $neu&#91;$i&#93; == "Verteidigungsanlagen" &#41;
    	&#123;
      $stadt = array&#40;&#41;;
    
      for &#40; $s = 0; $s < $anz_stadt ; $s++ &#41; &#123;
        
                   $stadt&#91;$s&#93;=$neu&#91;$i+1+$s&#93;;             
                &#125;
     	 &#125;
    
    // Punkte auslesen
    
      if &#40; $neu&#91;$i&#93; == "Punkte" &#41; &#123;
      $punkte = array&#40;&#41;;
    	
      for &#40; $s = 0; $s < $anz_stadt ; $s++ &#41; &#123;
        
                   $punkte&#91;$s&#93;=$neu&#91;$i+&#40;7*&#40;$s+1&#41;&#41;&#93;;             
                &#125;
     	 &#125;
    
    &#91;...&#93;
    Also, ich habe gestern an dem ersten Abschnitt gesessen "Städte-Koordis auslesen" und bin nach 3h versuchen und zermürbung auf den Fehler gekommen, warum er mir keine werte ins array stadt speichert: das array wurde nicht in der if-Schleife deklariert ... komisch, weil ich es wohl manch ander mal auch außerdem deklarieren konnte, aber okay.

    Nun habe ich für den 2. Abschnitt "Punkte auslesen" genau den gleichen Quelltext verwendet, aber dem array punkte werden einfach keine Werte in der for-schleife zugewiesen. Durch echo konnte ich herausfinden, dass noch vor der for-schleife alle werte zugewiesen werden konnten, aber in der for-schleife selber kann ich zwar $test=1; schreiben, aber wenn ich dann die variable später ausgeben will, passiert nichts. D.h. nicht nur meinem lieben array werden keine werte zugewiesen, auch alle anderen dort vorgenommen wertzuweisungen werden einfach nicht akzeptiert.

    Ich bin echt am verzweifeln, da ich einfach nicht weiß, wodran es nun liegen könnte.

    MFG
    misel
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Kaiserliche Hoheit
    Registriert seit
    15.07.2005
    Ort
    Hagen (NRW)
    Beiträge
    1.515
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Ich kann (oder will, suchs dir aus) erst helfen, wenn ich etwas mehr Quelltext habe - weil bei dem was du gepostet hast fehlen zwei schließende Klammern (Bedingung 1, Schleife 1):

    [php:1:39dab03580]<?php
    [...]
    // Schleife 1:
    for( $i = 0 ; $i < count($neu); $i++ )
    { // Öffnende Klammer für Schleife 1
    // Städte-Koordis auslesen
    // Bedingung 1:
    if ( $neu[$i] == "Verteidigungsanlagen" )
    { // Öffnende Klammer für Bedingung 1
    $stadt = array();
    // Schleife 2:
    for ( $s = 0; $s < $anz_stadt ; $s++ )
    { // Öffnende Klammer für Schleife 2
    $stadt[$s]=$neu[$i+1+$s];
    } // Schließende Klammer für Schleife 2
    } // Schließende Klammer für Bedingung 1

    // Punkte auslesen
    // Bedingung 2:
    if ( $neu[$i] == "Punkte" )
    { // Öffnende Klammer für Bedingung 2
    $punkte = array();
    // Schleife 3:
    for ( $s = 0; $s < $anz_stadt ; $s++ )
    { // Öffnende Klammer für Schleife 3
    $punkte[$s]=$neu[$i+(7*($s+1))];
    } // Schließende Klammer für Schleife 3
    } // Schließende Klammer für Bedingung 2
    [...]
    ?>[/php:1:39dab03580]

    Gruß,
    Modula (mit Kopfweh und Notepad, da PC frisch neuinstalliert)
    Zoggerforum.de Betreuer * Mod @ ibforen.de * Admin @ daoc-ds.de
    ICQ Nummer kann via PN erfragt werden

  3. #3
    misel
    Gast

    Standard

    *g* nun gut, dann versuch ich das unwichtige wegzustreichen, ohne dass klammern in mitleidenschaft gezogen werden und hoffe, dass es nicht zuviel quelltext auf einmal ist. Auf welchen Abschnitt es ankommt, weißt du ja nun.


    Code:
         <?php
    
    $date = date&#40;"m.d.Y H&#58;i&#58;s"&#41;;
    
    if &#40;!isset&#40;$ausgefllt&#41;&#41;&#123;
    ?>
          <form name="Account" method="post" action="account.php">
            <table width="600" border="0" cellspacing="2" cellpadding="2">
              <tr>
                <td align="center" valign="top"><font size="2" face="Arial, Helvetica, sans-serif">Hier bitte die Account-Statistik eingeben&#58;</font></td>
              </tr>
              <tr>
                <td>
    <textarea name="Statistik" cols="80" rows="25" class="inputtextarea"></textarea></td>
              </tr>
              <tr>
                <td>
                  <input type="submit" class="inputbutton"  value="Absenden">
                  <input name="ausgefllt" type="hidden" id="ausgefllt" value="1">
                </td>
              </tr>
            </table>
          </form>
    <?php &#125;
    else
    &#123;
    
    
    //Die Statistik ins array schmeißen
    
    $neu = array&#40;&#41;;
    $array = explode&#40;" ", $Statistik&#41;;
    for&#40;$x = 0; $x < count&#40;$array&#41;; $x++&#41;
       &#123;
          $array&#91;$x&#93; = trim&#40;$array&#91;$x&#93;&#41;;
          if&#40; $array&#91;$x&#93; != NULL &#41;
            &#123;
               $neu&#91;&#93; = $array&#91;$x&#93;;
            &#125;
       &#125;
    
    
    // Funktionen zum Entfernen von Absätzen aus der Statistik
    
    function left&#40;$str, $howManyCharsFromLeft&#41;
      &#123;
     	return substr&#40;$str, 0, $howManyCharsFromLeft&#41;;
      &#125;
    function right&#40;$str, $howManyCharsFromRight&#41;
      &#123;
            $strLen = strlen&#40;$str&#41;;
            return substr&#40;$str, $strLen - $howManyCharsFromRight, $strLen&#41;;
      &#125;
    
    
    // Vorgang zum Entfernen von Absätzen aus der Statistik
    
    
    for&#40; $i = 1; $i <= strlen&#40;$Statistik&#41;; $i++ &#41;
     &#123;
       if&#40; ord&#40;right&#40;left&#40;$Statistik, $i&#41;, 1&#41;&#41; == 9 || ord&#40;right&#40;left&#40;$Statistik, $i&#41;, 1&#41;&#41; == 10 || ord&#40;right&#40;left&#40;$Statistik, $i&#41;, 1&#41;&#41; == 13 &#41;
         &#123;
     	$Statistik = left&#40;$Statistik, &#40;$i - 1&#41;&#41; . " " . right&#40;$Statistik, &#40;strlen&#40;$Statistik&#41; - $i&#41;&#41;;
         &#125;
      &#125;
    
    $neu = array&#40;&#41;;
    $array = explode&#40;" ", $Statistik&#41;;
    for&#40;$x = 0; $x < count&#40;$array&#41;; $x++&#41;
       &#123;
          $array&#91;$x&#93; = trim&#40;$array&#91;$x&#93;&#41;;
          if&#40; $array&#91;$x&#93; != NULL &#41;
            &#123;
               $neu&#91;&#93; = $array&#91;$x&#93;;
            &#125;
       &#125;
    
    
    
    // Anzahl Städte Bestimmen
    
    
    for&#40; $i = 0 ; $i < count&#40;$neu&#41;; $i++ &#41; &#123;
    
      if&#40; $neu&#91;$i&#93; == "Iridium-Mine" &#41;
    	&#123;
                    $iri_mine = $i + 1;
    		$anz_stadt = 0;
     		while&#40; is_numeric&#40;$neu&#91;$i + $anz_stadt + 1&#93;&#41; &#41;
     		 &#123;
     		   $anz_stadt++;
     		 &#125;
    &#125;
    
      
    // Städte-Koordis auslesen
    
      if &#40; $neu&#91;$i&#93; == "Verteidigungsanlagen" &#41;
    	&#123;
      $stadt = array&#40;&#41;;
    
      for &#40; $s = 0; $s < $anz_stadt ; $s++ &#41; &#123;
        
                   $stadt&#91;$s&#93;=$neu&#91;$i+1+$s&#93;;             
                &#125;
     	 &#125;
    
    // Punkte auslesen
    
    
      if &#40; $neu&#91;$i&#93; == "Punkte" &#41; &#123;
      $punkte = array&#40;&#41;;
    	
      for &#40; $s = 0; $s < $anz_stadt ; $s++ &#41; &#123;
                   $test=1;
                   $punkte&#91;$s&#93;=$neu&#91;$i+&#40;7*&#40;$s+1&#41;&#41;&#93;;             
                &#125;
     	 &#125;
    &#125;
    
           
        echo "
        
    
    
    
    
        <table width=\"400\"><tr><td class=\"inputbutton\"  width=\"400\">
        <FONT face=arial size=2>
        Tach du Memme,
        
    
    
        danke für's eintragen deiner Statistik
    
        ".$punkte&#91;0&#93;."
        
    
    
    
        <HR NOSHADE SIZE=\"1\" WIDTH=\"400\" ALIGN=\"LEFT\">
        
    [b]
        <a href=\"javascript&#58;history.go&#40;-1&#41;;\" class=\"inputbutton\">
        &laquo;&laquo; zurück</A>
            </td></tr></table></center>";
            
    
    &#125;
    ?>
    MFG
    misel (mit dem 0815-Editor von Windows unterwegs )

  4. #4
    Kaiserliche Hoheit
    Registriert seit
    15.07.2005
    Ort
    Hagen (NRW)
    Beiträge
    1.515
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    schaus mir morgen nachmittag / abend an (wenn ich den Thread dann wiederfind )
    Zoggerforum.de Betreuer * Mod @ ibforen.de * Admin @ daoc-ds.de
    ICQ Nummer kann via PN erfragt werden

  5. #5
    misel
    Gast

    Standard

    gut *hoff dass er wiedergefunden wird* ^^

    denn trotz langer grübelleien, sehe ich noch immer keinen fehler.

    MFG
    misel

  6. #6
    Kaiserliche Hoheit
    Registriert seit
    15.07.2005
    Ort
    Hagen (NRW)
    Beiträge
    1.515
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    ist in meinem Aufgabenbereich aufgenommen (hab immer noch keinen Editor, sonst würd ichs mir nachher ansehen ...)
    Zoggerforum.de Betreuer * Mod @ ibforen.de * Admin @ daoc-ds.de
    ICQ Nummer kann via PN erfragt werden

  7. #7
    Gast

    Standard

    danke dir, ich guck nu immer mal wieder hier rein und warte auf eine hoffentlich lösung *g*

  8. #8
    Kaiserliche Hoheit
    Registriert seit
    15.07.2005
    Ort
    Hagen (NRW)
    Beiträge
    1.515
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Mein Zeitplan morgen:

    7:00 aufstehen,
    9:00 - 16:00 FH,
    16:00 - 18:00 arbeiten I und zu Geld kommen
    18:00 - 20:00 arbeiten II (Familie zahlt leider nix...)

    wenn ich dich da irgendwo zwischen bekomme gerne
    Zoggerforum.de Betreuer * Mod @ ibforen.de * Admin @ daoc-ds.de
    ICQ Nummer kann via PN erfragt werden

  9. #9
    Kaiserliche Hoheit
    Registriert seit
    15.07.2005
    Ort
    Hagen (NRW)
    Beiträge
    1.515
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Lies dir mal meine Kommentare durch, ansonsten hab ich das Script lediglich umformatiert um besserer lesbarkeit zu erreichen.

    [php:1:27d9300533]<?php
    /** Funktionen */
    // Funktionen zum Entfernen von Absätzen aus der Statistik
    /** Funktionen gehören eigentlich an den Anfang einer PHP Datei... */
    function left($str, $howManyCharsFromLeft)
    {
    return substr($str, 0, $howManyCharsFromLeft);
    }
    function right($str, $howManyCharsFromRight)
    {
    $strLen = strlen($str);
    return substr($str, $strLen - $howManyCharsFromRight, $strLen);
    }


    $date = date("m.d.Y H:i:s");

    if (!isset($ausgefllt)){
    ?>
    <form name="Account" method="post" action="account.php">
    <table width="600" border="0" cellspacing="2" cellpadding="2">
    <tr>
    <td align="center" valign="top"><font size="2" face="Arial, Helvetica, sans-serif">Hier bitte die Account-Statistik eingeben:</font></td>
    </tr>
    <tr>
    <td>
    <textarea name="Statistik" cols="80" rows="25" class="inputtextarea"></textarea></td>
    </tr>
    <tr>
    <td>
    <input type="submit" class="inputbutton" value="Absenden">
    <input name="ausgefllt" type="hidden" id="ausgefllt" value="1">
    </td>
    </tr>
    </table>
    </form>
    <?php } else
    {
    //Die Statistik ins array schmeißen
    /** Einen Array mit " " zu trennen ist wenig Sinnvoll, du solltest besser ";" o.ä. verwenden... */
    $neu = array();
    $array = explode(" ", $Statistik);
    for($x = 0; $x < count($array); $x++)
    {
    $array[$x] = trim($array[$x]);
    if( $array[$x] != NULL )
    {
    $neu[] = $array[$x];
    }
    }

    // Vorgang zum Entfernen von Absätzen aus der Statistik
    /** irgendwie verstehe ich nicht so ganz warum du hier nicht mit str_replace() arbeitest... */
    for( $i = 1; $i <= strlen($Statistik); $i++ )
    {
    if( ord(right(left($Statistik, $i), 1)) == 9 || ord(right(left($Statistik, $i), 1)) == 10 || ord(right(left($Statistik, $i), 1)) == 13 )
    {
    $Statistik = left($Statistik, ($i - 1)) . " " . right($Statistik, (strlen($Statistik) - $i));
    }
    }

    /** Dieser Codeausschnitt ist doppelt, warum? */
    $neu = array();
    $array = explode(" ", $Statistik);
    for($x = 0; $x < count($array); $x++)
    {
    $array[$x] = trim($array[$x]);
    if( $array[$x] != NULL )
    {
    $neu[] = $array[$x];
    }
    }

    // Anzahl Städte Bestimmen
    for( $i = 0 ; $i < count($neu); $i++ )
    {
    /** schaut nach nem ellen langen if Block aus, sowas solltest du mit switch() {} machen... */
    if( $neu[$i] == "Iridium-Mine" )
    {
    $iri_mine = $i + 1;

    /** Also die Art und weise wie du die Städte zählst musst mir mal erklären, irgendwie hab ich das Gefühl als sei dein Array ineffektiv... */
    $anz_stadt = 0;
    while( is_numeric($neu[$i + $anz_stadt + 1]) )
    {
    $anz_stadt++;
    }
    }
    // Städte-Koordis auslesen
    if ( $neu[$i] == "Verteidigungsanlagen" )
    {
    /** *kopfkratz* - ich bin immer mehr der überzeugung, du solltest deine Arraystruktur überarbeiten :P */
    $stadt = array();
    for ( $s = 0; $s < $anz_stadt ; $s++ )
    {
    $stadt[$s]=$neu[$i+1+$s];
    }
    }
    // Punkte auslesen
    if ( $neu[$i] == "Punkte" )
    {
    $punkte = array();
    /** also spätestens jetzt müsst ich wissen wie dein $neu Array aufgebaut ist, bzw. wie dein $Statistik String aussachut... */
    for ( $s = 0; $s < $anz_stadt ; $s++ )
    {
    $test=1;
    $punkte[$s]=$neu[$i+(7*($s+1))];
    }
    }
    }

    /** die echo Anweisung kann man eleganter lösen, ich nehms mal raus und zeigs dir an nem beispiel... */
    /* // Entfernen der komplizierten echo Anweisung |>
    echo "





    <table width=\"400\"><tr><td class=\"inputbutton\" width=\"400\">
    <FONT face=arial size=2>
    Tach du Memme,



    danke für's eintragen deiner Statistik

    ".$punkte[0]."




    <HR NOSHADE SIZE=\"1\" WIDTH=\"400\" ALIGN=\"LEFT\">

    [b]
    <a href=\"javascript:history.go(-1);\" class=\"inputbutton\">
    &laquo;&laquo; zurück</A>
    </td></tr></table></center>";
    */ // Entfernen der komplizierten echo Anweisung <|
    echo <<< EOE



    <!--

    --><!-- zwei
    in einem

    ? da nimm lieber nen neues

    -->

    </p>



    <table width="400">

    <tr>
    <td class="inputbutton">



    Tach du Memme,</p>



    danke f&uuml;r&#39;s eintragen deiner Statistik

    {$punkte[0]}
    </p>
    <hr noshade size="1" />




    <a href="javascript:history.go(-1)" class="inputbutton">
    &laquo;&laquo; zur&uuml;ck
    </a>

    </p>
    </td>
    </tr>
    </table>
    </p>
    EOE;
    }
    ?>[/php:1:27d9300533]

    Meine Kommentare erkennst du an /** KOMMENTAR */ bzw.
    Zoggerforum.de Betreuer * Mod @ ibforen.de * Admin @ daoc-ds.de
    ICQ Nummer kann via PN erfragt werden

  10. #10
    Gast

    Standard

    Okay, vielen, vielen Dank ^^

    Ich werd heute abend mal alles durchgehen und wenn Fragen auftauchen mich hier nochmal melden.

Ähnliche Themen

  1. Fehler im Script?
    Von topkick im Forum Script-Archiv
    Antworten: 2
    Letzter Beitrag: 11.06.2008, 12:36
  2. Fehler im Script
    Von Phil im Forum Script-Archiv
    Antworten: 22
    Letzter Beitrag: 08.02.2006, 19:52
  3. Fehler in Script
    Von Franzi im Forum HTML & CSS Forum
    Antworten: 3
    Letzter Beitrag: 20.08.2005, 19:04
  4. Fehler in HTML-Script
    Von Petra M. im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 3
    Letzter Beitrag: 01.12.2004, 19:30
  5. Fehler im Script
    Von scout1979 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 10
    Letzter Beitrag: 13.09.2004, 22:28

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •