Anzeige:
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 15 von 25

Thema: Warum?

  1. #1
    Registrierter Benutzer Avatar von maik15
    Registriert seit
    23.08.2004
    Ort
    weit weg
    Beiträge
    215

    Warum?

    Hi,

    Habe mir ein kleines Forum gebastelt.
    zum Forum
    Was sind das für fehlermeldungen?
    An dieser stelle sollte eigentlich die anzahl der antworten stehen.
    Ich habe einfach die datei mit den antworten in ein array aufgeteilt und die array-teile zählen lassen.
    Bei mir auf dem PC (offline mit Apache) läuft es ohne probleme.
    alle datein haben die vollen rechte (777).
    wie könne diese behoben werden?

    Gruß
    Maik

  2. #2
    Registrierter Benutzer Avatar von ExRevel
    Registriert seit
    08.11.2004
    Ort
    Stuttgart
    Beiträge
    33
    Vllt. liegt es an einer anderen Konfiguration. Auszug aus dem Manual:
    Ist PHP zu dem Schluss gekommen, dass filename eine lokale Datei spezifiziert, wird es versuchen, einen Stream an dieser Datei zu öffnen. Die Datei muss für PHP verfügbar sein, weshalb Sie sicherstellen müssen, dass die Dateirechte diesen Zugriff ermöglichen. Wenn Sie Safe Mode oder open_basedir aktiviert haben, können weitere Einschränkungen zutreffen.
    ciao Exi
    The CodeWars Project (Coding Contest for AI Buffs)

  3. #3
    Registrierter Benutzer Avatar von maik15
    Registriert seit
    23.08.2004
    Ort
    weit weg
    Beiträge
    215
    habe zwar keine ahnung, was das beduetet aber kann man das beheben?
    wenn ja wie?

    Gruß
    Maik

  4. #4
    Registrierter Benutzer Avatar von Gaert
    Registriert seit
    09.05.2002
    Ort
    Nußloch
    Beiträge
    1.317
    Hallo,

    wenn das die Ursache sein sollte (kannst ja mal über phpinfo() schauen ob diese Einstellungen aktiviert sind) müsstest du die php.ini ändern bzw. deinen Provider fragen oder wechseln.

    Gruß,

    Gaert


  5. #5
    Registrierter Benutzer
    Registriert seit
    25.12.2004
    Beiträge
    217
    Hallo maik15,

    liest du in diesem Script:
    http://maik.dsarun-hosting.de/forum/ausgabe.php?nr=1

    die Textdatei genauso ein wie auf der Übersichtsseite(wo die Fehler kommen)?
    Weil dann kommst du ja ansich an die Datei ran, muss also am Pfad liegen.

    Gruß

    nEox

  6. #6
    Registrierter Benutzer Avatar von maik15
    Registriert seit
    23.08.2004
    Ort
    weit weg
    Beiträge
    215
    vorne bei der Startseite ist das problem bei der anzahl der Antworten, was du meinst ist das auslesen der gesamten AW.
    bei mir auf dem PC steht bei der unteren Fehlermeldung bloß 3 Antworten (so wie online, bloß anzahl 3)
    und bei der darüber 2 Antworten.
    Bei dem Online-forum steht bloß 1 Antwort bei beiden (direkt unter der meldung)

    Maik

  7. #7
    Registrierter Benutzer
    Registriert seit
    25.12.2004
    Beiträge
    217
    Hallo maik15,

    Bei dem Online-forum steht bloß 1 Antwort bei beiden (direkt unter der meldung)
    klar, aber in deinem 1. Post hast du geschrieben:

    Ich habe einfach die datei mit den antworten in ein array aufgeteilt und die array-teile zählen lassen.
    Also musst du ja die Datei einlesen und wie du gesagt hast in ein Array aufteilen und die Gesamtzahl zählen. Der Fehler tritt auf, wenn du die Datei einliest. Beim "Test 1" handelt es sich um diese Datei: http://maik.dsarun-hosting.de/forum/eintraege/1_aw.txt

    Wenn man auf "Test 1" klickt ("ausgabe.php") müsstest du ja dann eigentlich die gleiche Datei einlesen und einfach ausgeben (auch diesem Fall http://maik.dsarun-hosting.de/forum/eintraege/1_aw.txt).

    Daher wärs gut wenn du die Pfade überprüfst. Denn öffnen kannst du die Dateien ja vermutlich.

    Gruß nEox

  8. #8
    Registrierter Benutzer Avatar von maik15
    Registriert seit
    23.08.2004
    Ort
    weit weg
    Beiträge
    215
    ach so meinst du das... werde ich gleich morgen machen!

    aber habe noch eine kleine andere frage, zu smileys.
    ich habe mir mal gedanken über smileys gemacht, wegen einfügen.
    allein mit php ohne hilfe von java script o.ä. kann man kein text in ein textarea am cursor einfügen oder?

    Ich dachte mir, mann könnte es so machen, das der benutzer z.b. ;-) eingibt (zeichen sind am rand definiert) und dann ein php-text dieses stück text in ein <img src...> tauscht, bevor es in die *.txt datei geschrieben wird.

    wie mache ich das mit dem umwandeln von ;-) zu <img src...>???

    also, das der beutzer ;-) angibt und ein php sript, vor dem eintragen diese zeichen in das jeweilige <img src...> verwandelt und das <img src...> statt dem ;-) in die*.txt schreibt.

    Maik

  9. #9
    Registrierter Benutzer Avatar von ExRevel
    Registriert seit
    08.11.2004
    Ort
    Stuttgart
    Beiträge
    33
    Lesen bildet, PHP verfügt über ganz wunderbare Funktionen wie str_replace() oder preg_replace, was dir lieber ist. Diese Funktionen findest du auch in dem doch recht netten Manual von php.net wieder. Beispiel:
    Code:
    $antwort = str_replace(';)', "<img src=\"...\"></img>", $antwort);
    Ganz simpel.

    ciao Exi
    The CodeWars Project (Coding Contest for AI Buffs)

  10. #10
    Registrierter Benutzer
    Registriert seit
    24.12.2001
    Ort
    anywhere before EOF
    Beiträge
    236
    Etwas OffTopic:
    http://maik.dsarun-hosting.de/forum/...ll/interessant
    Will sagen, Sicherheitslücke, prüfe deine Eingaben, so dass nur Dateien geöffnet werden die dazu gedacht sind und nicht beliebig im Dateisystem rumgewühlt werden kann...
    chmod -R +t /*

  11. #11
    Registrierter Benutzer Avatar von maik15
    Registriert seit
    23.08.2004
    Ort
    weit weg
    Beiträge
    215
    gut, danke!
    wie könnte ich es noch sicherer machen, das der bloß *.txt datein annimmt?
    Mit direkten Dateinamen prüfen geht ja nicht, wel es eine fortlaufende zahl ist...

    Maik

  12. #12
    Registrierter Benutzer Avatar von maik15
    Registriert seit
    23.08.2004
    Ort
    weit weg
    Beiträge
    215
    es gibt noch ein problem, ich lasse jeden eintrag in einer txt datei speichern.
    aber um antworten zu können, müssen die datein das volle schreib recht haben.
    Wie kann ich das automatisch machen lassen?
    denn nach jedem eintrag selber von hand jede txt datei die rechte geben ist unmöglich!
    den gesamten ordner das recht geben geht auch nicht, dann hat bloß der ordner das recht und die datein nicht.
    Kennt jemand abhilfe?

    könnte das auch das problem vom anfang beheben?

    Maik

  13. #13
    Registrierter Benutzer
    Registriert seit
    25.12.2004
    Beiträge
    217
    Zitat Zitat von maik15
    wie könnte ich es noch sicherer machen, das der bloß *.txt datein annimmt?
    Übergib einfach nur die ID des Eintrags(z. B. 1 oder 31) dann öffnest nur die Datei:
    PHP-Code:

    $pfad_zur_datei 
    'eintraege/' $_GET['id'] . '.txt';

    if (
    file_exists($pfad_zur_datei)) {

    fopen...


    Zitat Zitat von maik15
    denn nach jedem eintrag selber von hand jede txt datei die rechte geben ist unmöglich!
    Ein Blick ins Manual kann nie schaden...
    http://de2.php.net/chmod

    Gruß
    nEox
    Geändert von nEox (03-06-2005 um 18:17 Uhr)

  14. #14
    Registrierter Benutzer
    Registriert seit
    24.12.2001
    Ort
    anywhere before EOF
    Beiträge
    236

    Exclamation

    Zitat Zitat von nEox
    Übergib einfach nur die ID des Eintrags(z. B. 1 oder 31) dann öffnest nur die Datei:
    PHP-Code:

    $pfad_zur_datei 
    'eintraege/' $_GET['id'] . '.txt';

    if (
    file_exists($pfad_zur_datei)) {

    fopen...


    Und genau das löst das Problem nicht in $_GET['id'] kann nach wie vor ein Elternverzeichnisverweis stehen (../) der es ermöglicht aus dem eigentlichen Verzeichnis auszubrechen und jede beliebige *.txt Datei zu lesen sofern PHP Rechte zum lesen hat, oder gar schreiben wenn Beiträge editiert werden können. Beschränkt sich zwar AFAIK so nur auf *.txt weil PHP nicht für Poison-Null-Bytes anfällig ist wie das z. B. bei PERL der Fall wäre, kann aber auch schon Schaden anrichten.

    Prüfe $_GET['id'] vorher z. B. mit preg_match( '/^\d+$/', $_GET['id']) ob es auch wirklich nur aus Ziffern besteht. Weiteres findest Du in der Manual zum Thema Mustererkennung...
    Geändert von sticky bit (03-06-2005 um 19:15 Uhr)
    chmod -R +t /*

  15. #15
    Registrierter Benutzer
    Registriert seit
    25.12.2004
    Beiträge
    217
    Hallo maik15,

    sticky bit hat recht. Ein is_numeric() sollte es aber auch tun.

    Gruß nEox
    Geändert von nEox (03-06-2005 um 23:06 Uhr)

Lesezeichen

Berechtigungen

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