kostenloser Webspace werbefrei: lima-city


Probleme mit div. Skripts - Hilfe

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    mysteryland

    mysteryland hat kostenlosen Webspace.

    Ich habe diesen Code soeben hier getestet, es zeigt mir jedoch an, dass ein Fehler in der Reihe 17 besteht. Ich kann da jedoch keinen feststellen ... oder bin ich zu bl?d, ihn zu finden? Vielleicht kann mir jemand von euch sagen, was daran falsch ist?

    <html>
    <head>
    <title>Forum</title>
    </head>
    <body>
    <?
    $nick=$_POST['nick'];
    $file="User/".nick.".txt";
    if(is_file($file))
    {
    $PW=$_POST['PW'];
    $namen="User/".$nick.".txt";
    $testen=fopen($namen,"r");
    $richtig=fgets("$testen,1000);
    if ($richtig=$PW)
    {
    $text=$_POST['text'];
    $kategorie=$_POST['kategorie'];
    $themaa=$_POST['thema'];
    $thema=$kategorie.": ".$themaa;
    $timestamp=time();
    $datum=date("YmdHis",$timestamp);
    $zeit1=date("d.m.y",$timestamp);
    $zeit2=date("H.i",$timestamp);
    $text=ereg_replace("<","<",$tet);
    $text=ereg_replace(">",">",$text);
    $thema=ereg_replace("<","<",$thema);
    $thema=ereg_replace(">",">",$thema);
    $inhalt="<br><br><b>".$thema."</b><br><br>".$nick." schrieb am ".$zeit1." um ".$zeit2.":<br>".$text."<br><br>";
    $datei = fopen("Themen/".$datum.".php","w");
    fwrite($datei, $inhalt);
    $datei = fopen("Namen/".$datum.".php","w");
    fwrite($datei, $thema);
    }
    else {echo "Falsches Passwort";}
    else {echo "Falscher Name";}
    }
    ?>
    </body>
    </html>

    DarkAurora
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. 0******a

    Nach erstem ?berfliegen habe ich mehrere Fehler gesehen:
    $file="User/".nick.".txt"; --> falsch
    $file="User/".$nick.".txt"; --> richtig

    if ($richtig=$PW) --> falsch
    if ($richtig==$PW) --> richtig

    $text=ereg_replace("<","<",$tet); --> falsch
    $text=ereg_replace("<","<",$text); --> richtig

    Ausserdem solltest du die Dateien, die du mit fopen() ?ffnest mit fclose() auch wieder schliessen.

    Falls die ?nderungen trotzdem nichts an dem Fehler ?ndern, solltest du die Fehlermeldung posten (was du eigentlich von vorneherein h?ttest tun sollen). Ausserdem glaube ich, du meinst "Zeile 17" und nicht "Spalte 17" ;-)


    Nachtrag:
    else {echo "Falscher Name";}
    }
    --> falsch
    }
    else {echo "Falscher Name";}
    --> richtig

    Das letzte else geh?rt zum allerersten if und kommt erst ausserhalb des mit { und } eingeschlossenen Bereichs.
  4. Autor dieses Themas

    mysteryland

    mysteryland hat kostenlosen Webspace.

    Okay, danke, ich werde es gleich mal austesten.

    Ich habe doch nichts von einer Spalte geschrieben, sondern von Reihe und das ist doch das selbe wie Zeile ...

    DarkAurora

    So, ich habe jetzt alles soeit berichtigt, aber die Fehlermeldung bleibt. Diese lautet:

    Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/webpages/lima-city/mysteryland/html/send.php on line 17
  5. 0******a

    Sorry, habe einen Fehler ?bersehen, der genau dort war, wo du geschrieben hattest... :-(
    $richtig=fgets("$testen,1000); --> falsch
    $richtig=fgets("$testen",1000); --> richtig

    Und ich weiss jetzt auch nicht, wie ich auf Spalte komme. ;-)
  6. Autor dieses Themas

    mysteryland

    mysteryland hat kostenlosen Webspace.

    Okay, auf ein neues! Vielen Dank f?r die rasche Hilfe!

    ---

    Es ist doch echt zum Heulen. Nun zeigt es an, dass in Reihe 14 ein Fehler ist. Hier die Fehlermeldung:

    Warning: fgets(): supplied argument is not a valid stream resource in /home/webpages/lima-city/mysteryland/html/send.php on line 14
    Falsches Passwort

    (Immerhin er sagt schon mal falsches Passwort, was eigentlich aber auch nicht sein kann, da ich wei?, dass es richtig ist ... komisch, komisch)

    DarkAurora
  7. 0******a

    Aaargh, sorry. Mein Fehler.
    In meinem letzen Post h?tte es heissen m?ssen:

    $richtig=fgets("$testen,1000); --> falsch
    $richtig=fgets($testen,1000); --> richtig
  8. Autor dieses Themas

    mysteryland

    mysteryland hat kostenlosen Webspace.

    Naja, kann ja mal passieren. Wie hei?t es doch so sch?n: nobody is perfect.

    Ich probiere es dann mal aus und gebe bekannt, ob es klappt oder nicht.

    ---

    Alles klar, es funzt! Vielen lieben Dank!
  9. 0******a

    OK, aber ich m?chte noch zwei Sachen zu deinem Skript anmerken:
    1.:
    Ich hoffe, die ganzen ereg_replace()-Aufrufe sehen in deinem Skript anders aus und nur duch das Posten hier im Forum sieht es so aus, als w?rdest du etwas mit sich selbst ersetzen ;-)

    2.:
    Du k?nntest dein Skript einfacher und sicherer (normalerweise passt das gar nicht zusammen) machen, indem du statt die Passw?rter in Textdateien zu speichern, sie in PHP-Dateien speicherst. Der Inhalt der PHP-Dateien kann ja nicht ausgelesen werden, bei Textdateien schon. Ein kurzes Beispiel, wie es besser w?re:
    Inhalt User/DarkAurora.php:

    <?php
    $richtig = "71201967";
    ?>


    Anpassen des Skripts:
    <html>
    <head>
    <title>Forum</title>
    </head>
    <body>
    <?
    $nick=$_POST['nick'];
    $file="User/".nick.".php";
    if(is_file($file))
    {
    &nbsp;&nbsp;$PW=$_POST['PW'];
    &nbsp;&nbsp;include $file;

    &nbsp;&nbsp;if ($richtig == $PW)
    &nbsp;&nbsp;{
    &nbsp;&nbsp;&nbsp;&nbsp;// die Sachen machen, die du da halt machst
    &nbsp;&nbsp;}
    &nbsp;&nbsp;else
    &nbsp;&nbsp;{
    &nbsp;&nbsp;&nbsp;&nbsp;echo "Falsches Passwort";
    &nbsp;&nbsp;}
    }
    else
    {
    &nbsp;&nbsp;echo "Falscher Name";
    }
    u.s.w.
  10. Autor dieses Themas

    mysteryland

    mysteryland hat kostenlosen Webspace.

    Nun, ich habe das aus einem Tutorial hierher und wollte das malausprobieren, um ein wenig zu lernen, da ich mit PHP bisher noch nicht viel gemacht habe. Aber ich komme bei dem n?chsten Schritt auch schon wieder nicht weiter ... es ist zum Verr?cktwerden.
  11. 0******a

    Falls es wieder ein Fehler ist, poste es hier (und ausserdem vielleicht mal eine neue Version deines Quellcodes). Ansonsten mach einfach einen neuen Thread mit deinem Problem auf.
  12. Autor dieses Themas

    mysteryland

    mysteryland hat kostenlosen Webspace.

    Okay, es geht diesmal um folgende Datei:

    <html>
    <head>
    <title>Forum</title>
    </head>
    <body>
    <?
    $von=$HTTP_GET_VARS['von'];
    $bis=$von+19;
    $b=0;
    $verzeichnis=dir("Themen/");
    $i=0;
    while($eingang=$verzeichnis->read())
    {
    $nummer[$i]=$eintrag;
    $i++;
    }
    sort($nummer);
    $verzeichnis->close();
    echo "<table border=1>";
    while ($i>1)
    {
    $eintrag=$nummer[$i];
    $name="Namen/".$eintrag;
    $datei = fopen($name,r);
    $text = fgets($datei,999);
    $eintrag=ereg_replace(".php","",$eintrag);
    $link="text.php?ID=".$eintrag;
    $kategorie=$_GET["kategorie"];
    $pos=strpos($text,$kategorie);
    if ($pos !== FALSE)
    {
    $text="<tr><td width=300><a href="$link">$text</a></td></tr>";
    $all[$b]=$text;
    $b=$b+1;
    }
    $i=$i-1;
    }
    $c=0;
    $zahl=$b;
    $zahl=$zahl/20;
    $aufgerundet=ceil($zahl);
    $seite=0;
    while ($seite!=$aufgerundet)
    {
    $seite=$seite+1;
    $vonrech=$seite*20-20;
    if ($von!=$vonrech)
    {
    echo "<a href="thema.php?kategorie=".$kategorie."&von=.$vonrech."">Seite ".$seite."</a>";
    }
    else
    {echo "Seite",$seite" ";
    }
    }
    while ($c!=$b)
    {
    $text=$all[$c];
    if (($c >= $von) and ($<=$bis))
    {
    echo $text;
    }
    $c=$c+1;
    }
    echo "</table>";
    ?>
    </body>
    </html>


    Und der Fehler lautet:

    Parse error: parse error, unexpected T_VARIABLE in /home/webpages/lima-city/mysteryland/html/thema.php on line 32
  13. 0******a

    $text="<tr><td width=300><a href="$link">$text</a></td></tr>"; --> falsch
    $text="<tr><td width=\"300\"><a href=\"$link\">$text</a></td></tr>"; --> richtig
  14. Autor dieses Themas

    mysteryland

    mysteryland hat kostenlosen Webspace.

    Ahhh, dann ist aber das Tutorial falsch ... na, da kann ich ja dann suchen bis ich schwarz werde. Danke, gleich mal testen.

    ---

    Menno, durch diese vielen Fehlermeldungen kommt frau ja nie voran. Es tut mir leid, wenn ich damit schon nerven sollte. Bin halt dabei, es zu lernen. Irgednwann werde ich schwierigere Fehler etc. sicher selber beheben k?nnen. Hier also die n?chste Fehlermeldung:

    Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in /home/webpages/lima-city/mysteryland/html/thema.php on line 49
  15. 0******a

    Das ist von der Form her eigentlich genau der gleiche Fehler. Am besten schreibe ich eine Erkl?rung dazu, damit du auch was dazu lernst ;-)
    echo "<a href="thema.php?kategorie=".$kategorie."&von=.$vonrech."">Seite ".$seite."</a>"; --> falsch
    echo "<a href=\"thema.php?kategorie=$kategorie&von=$vonrech\">Seite $seite.</a>"; --> richtig

    Es gibt zwei verschiedene Arten von Strings (Zeichenketten) in PHP. Einmal die, die in " (Anf?hrungsstriche) eingeschlossen sind und dann die, die in ' (Hochkommata) eingeschlossen sind. Der Hauptunterschied zwischen diesen beiden ist, dass bei Anf?hrungsstrichen Variablen ausgewertet werden und diverse Sonderzeichen gekennzeichnet (escaped) werden m?ssen.
    Beispiel:
    $test = 3;
    echo "Inhalt: $test"; // Ausgabe = "Inhalt: 3"
    echo 'Inhalt: $test'; // Ausgabe = "Inhalt: $test"
    echo 'Inhalt: ' . $test; // Ausgabe = "Inhalt: 3"
    An diesem Beispiel hast du auch gesehen, was der . da eigentlich soll. Er verkn?pft Strings (egal ob in " oder in ' eingefasst).

    Wenn du als Ausgabe in deinem HTML-Dokument
    <a href="seite5.html"> Seite 5</a>
    stehen haben willst, dann kannst du das entweder so machen:
    echo '<a href="seite5.html"> Seite 5</a>';
    oder so:
    echo "<a href=\"seite5.html\"> Seite 5</a>";
    Die Anf?hrungstriche beim zweiten Beispiel werden mit dem Escapezeichen gekennzeichnet, so das der PHP-Parser weiss, dass der String dort nicht zu Ende ist, sondern dass die gekennzeichneten Anf?hrungsstriche zum String selbst geh?ren (also Teil des Inhalts sind).

    Das war der kleine Grundkurs. Vielleicht findest du ja jetzt schon selbst Fehler. Ansonsten halt immer weiter fragen. Hier gibt es viele Leute, die dir weiterhelfen k?nnen.
  16. Autor dieses Themas

    mysteryland

    mysteryland hat kostenlosen Webspace.

    Okay, das habe ich verstanden, danke.

    So etwas in derf Art dachte ich mir schon und ich habe es auch mit diesem Backslash versucht, aber da waren so viele ", dass ich nicht wusste, wo ich das nun hinsetzen muss. Ich werde versuchen, nun damit klarzukommen.

    DarkAurora
  17. 0******a

    Problem(e) gel?st --> Close

    Nachtrag:
    Der Threadtitel wird ge?ndert und der Thread wieder er?ffnet, weil weitere Probleme vorhanden sind.
  18. 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!