kostenloser Webspace werbefrei: lima-city


Fehler in foreach

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    testworld

    testworld hat kostenlosen Webspace.

    Huhu ich hab folgendes Pronblem:

    Warning: Invalid argument supplied for foreach() in /home/webpages/lima-city/testworld/html/a.php on line 63

    Mein Skript:
    <?php
    session_start();
    if(!isset($_SESSION['username']))
       {
       echo "Bitte erst <a href=\"login.html\">einloggen</a>";
       exit;
       }
       
    $user = $_SESSION['user'];
    $welt = $_SESSION['welt'];
    $link = $_SESSION['link'];
    $ehrlich = $_POST["ehrlich"];
    $leistung = $_SESSION['leistung'];
    $stufe = $_SESSION['stufe'];
    
    
     $datei = fopen("anfrage.txt","r+");
    $anfrage = fgets($datei, 1000);
    $userdata = explode("|", $anfrage);
    fclose($datei);
    
    $da = fopen ("anfrage.txt","r+");
    $zei = fgets($da,5000);
    $d = explode("!", $zei);
    fclose($da);
    
    $a = $d[1]; 
    
    
    if ($ehrlich=="Ja")
       { 
       $userdatei = fopen ("$userdata[3].txt","a");
          fwrite($userdatei, $userdata[1]);
          fwrite($userdatei, " ");
          fwrite($userdatei, $userdata[2]);
          fwrite($userdatei, "|");
          fclose($userdatei);
          
          
          
    
             $datei = fopen ("anfrage.txt","r+");
    $zeile = fgets($datei,500);
    $data = explode("!", $zeile);
    $data[0] =  " ";//tauscht die eingelesene 14 durch 1 aus
    $datei = fopen ("anfrage.txt","w+"); //leert die datei
    foreach($data as $dings)//durchläuft das array und schreibt jeden wert zurück in die datei
    {
     fwrite($datei, $dings." ");
    }
    fclose($datei);
    
    echo "Danke, $userdata[1] wurde eingetragen";
    
     }
     else
     {
      $datei = fopen ("anfrage.txt","r+");
    $zeile = fgets($datei,5000);
    $data = explode("!", $zeile);
    $data[0] =  "";//tauscht die eingelesene 14 durch 1 aus
    $datei = fopen ("anfrage.txt","w+"); 
    foreach($a as $dings)
    {
     fwrite($datei, $dings." ");
    }
    fclose($datei);
    echo "Danke, $userdata[1] wurde entfernt";
    }
    ?>
     <body  	bgcolor="orange">
    <br>
    <br>
    Zur <a href=index.html>Startseite</a>
    <br>
    <br>
    Zum <a href=anfrage.php>Anfragen Bereich</a>

    Was mach ich falsch? o.O



    Beitrag zuletzt geändert: 9.11.2009 15:51:48 von cbhp
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. ...

    interpretieren wir doch einfach mal diese Zeile:

    Warning: Invalid argument supplied for foreach() in /home/webpages/lima-city/testworld/html/a.php on line 63

    Ungültiges Argument in der foreach Schleife in Zeile 63 angegeben.

    => gehe zu Zeile 63.

    $datei = fopen ("anfrage.txt","w+");
    foreach($a as $dings) <= da haben wirs...
    {
    fwrite($datei, $dings." ");
    }
    fclose($datei);


    danach siehst du: es muss etwas am $a falsch sein, da dings ja nur etwas zugewiesen werden soll:
    $a = $d[1];

    wie hast du es vorher gemacht?:
    $data[0] = " ";

    und? drauf gekommen?

    achso: großer Tipp! Steig sofort auf mysql um. Ist nur von vorteil für dich..
  4. Autor dieses Themas

    testworld

    testworld hat kostenlosen Webspace.

    Also mein problem ist dies:

    Adrion|<a href=http://welt14.freewar.de/freewar/internal/fight.php?action=watchuser&act_user_id=1009>Adrion</a>|1gm|ds|!Adrion|<a href=http://welt14.freewar.de/freewar/internal/fight.php?action=watchuser&act_user_id=1009>Adrion</a>|1gm|ds|!Adrion|<a href=http://welt14.freewar.de/freewar/internal/fight.php?action=watchuser&act_user_id=1009>Adrion</a>|1gm|ds|!

    Ich möchte jetzt gerne den 1. teil bis zum 1. Ausrufezeichen gelöscht wird ohne das beim 2. und 3. Teil das ausrufezeiichen und der Text gelöscht wird Aber wen ich diesen Skript:
    else
    {
    $datei = fopen ("anfrage.txt","r+");
    $zeile = fgets($datei,5000);
    $data = explode("!", $zeile);
    $data[0] = "";//tauscht die eingelesene 14 durch 1 aus
    $datei = fopen ("anfrage.txt","w+"); //leert die datei
    foreach($data as $dings)//durchläuft das array und schreibt jeden wert zurück in die datei
    {
    fwrite($datei, $dings." ");
    }
    fclose($datei);
    echo "Danke, $userdata[1] wurde entfernt";

    benutze gehen immer alle Ausrufezeichen weg wie kan ich das ändern da immer nur das ertse weg geht?
  5. testworld schrieb:
    Also mein problem ist dies:

    Adrion|<a href=http://welt14.freewar.de/freewar/internal/fight.php?action=watchuser&act_user_id=1009>Adrion</a>|1gm|ds|!Adrion|<a href=http://welt14.freewar.de/freewar/internal/fight.php?action=watchuser&act_user_id=1009>Adrion</a>|1gm|ds|!Adrion|<a href=http://welt14.freewar.de/freewar/internal/fight.php?action=watchuser&act_user_id=1009>Adrion</a>|1gm|ds|!

    Ich möchte jetzt gerne den 1. teil bis zum 1. Ausrufezeichen gelöscht wird ohne das beim 2. und 3. Teil das ausrufezeiichen und der Text gelöscht wird Aber wen ich diesen Skript:
    else
    {
    $datei = fopen ("anfrage.txt","r+");
    $zeile = fgets($datei,5000);
    $data = explode("!", $zeile);
    $data[0] = "";//tauscht die eingelesene 14 durch 1 aus
    $datei = fopen ("anfrage.txt","w+"); //leert die datei
    foreach($data as $dings)//durchläuft das array und schreibt jeden wert zurück in die datei
    {
    fwrite($datei, $dings." ");
    }
    fclose($datei);
    echo "Danke, $userdata[1] wurde entfernt";

    benutze gehen immer alle Ausrufezeichen weg wie kan ich das ändern da immer nur das ertse weg geht?



    $data = explode("!", $zeile); ->hier wird dein Ausrufezeichen gelöscht... das trennzewichen verschwindet...

    dein erstes Problem ist: du kannst nicht 2 mal dasselbe dokument öffnen ineinander!!!
    du musst zwischendurch die Datei schließen. Außerdem: hast du da nur 1 Zeile? und die ist auch nicht länger als 5000 zeichen?

    so

    2. belese dich zu Arrays


    3. schreibe bitte diene Ausgangssituation. Den Code haben wir jetzt, jetzt brauchen wir eine typische Testdatei. einfach den Inhalt reinposten. Dann schreibst du, was du raushaben willst, sonst können wir dir gar nicht helfen...
  6. Autor dieses Themas

    testworld

    testworld hat kostenlosen Webspace.

    Ich meld mich dan hier auch nochmal... wollt nur mal sagen das ich nun auf mysql umgesprungen bin ;)
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!