tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
27
ZUGRIFFE
1234
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    772
    Hallo zusammen,

    ich hab hier ein Tutorial für ein einfaches Newsscript

    http://www.phpwelt.at/index.php?action=7&show=11

    Ist ja erstmal leicht zu starten, die 4 Dateien erstellen, nen Ordner 'user' erstellen, da die Datei 'avariel.txt' rein, in die 'avariel.txt' mein Passwort.

    So, dann trag ich in die 'edit.htm' Benutzername, Passwort und den Newspost ein. Dann öffnet er die 'newse.php'. Und da fängts dann an. Normalerweise sollte er mir hier ne Meldung ausgeben, entweder 'Alles klar, hat ge****t' oder 'da passt was nicht'. Er bringt aber tatsächlich gar nix, leere Seite.

    Und in der 'news.php' und der 'news.txt' erscheinen auch keine News.

    Wenn ich aber in der 'news.txt' manuell einen Newspost erstelle, erscheint der auch in der 'news.php'. Der Fehler muss also irgendwo in der 'newse.php' oder der 'edit.htm' liegen. Nur wo?
     
    CreativePlains <-- Redesigned Mitte Juli 05

  2. #2
    Avatar von Sir Robin
    Sir Robin Sir Robin ist offline Mitglied Brokat
    Registriert seit
    Feb 2002
    Ort
    Berlin
    Beiträge
    431
    Hallo,

    ich vermute einfach mal das du in der php.ini die Einstellungen "Register-Globals" auf "Off" hast, und somit keine Daten ankommen können, weil du nicht richtig auf sie verweist. Überprüfen ob du besagte Einstellung wirklich auf "Off" hast, kannst du in dem du einfach eine Datei mit dem Inhalt: <?php phpinfo(); ?> machst, und diese dann in deinem Browser aufrufst...dort werden ne Menge Einstellungen dann ausgegeben, und unter anderem auch die Register Globals...

    sollte diese auf "off" sein, dann stell diese entweder, sofern möglich, in der php.ini auf "on" oder du machst folgendes:

    du musst alle Daten die mit einem input-feld aus einem Formular per Post versendet werden, mit $HTTP_POST_VARS[feldname] aufrufen, soll heißen: Wenn du den Wert aus <input name="name"> ausgeben willst, dann musst du: <?php echo $HTTP_POST_VARS[name]; ?> schreiben, und nicht so wie vorher einfach: <?php echo $name; ?> ... in deinem Fall suchst du dir nun in der newse.php die Variablen die aus der edit.htm per Fomular kommen, und gibst dann halt $HTTP_POST_VARS[feldname] dafür ein, wobei "feldname" natürlich für den Namen steht, den das entsprechende Feld hat...

    hoffe ich hab das halbwegs verständlich erklärt...

    weitere Infos zu Register Globals findest du hier und natürlich per Suchenfunktion hier...
     
    Without deviation progress is not possible (F. Zappa)

  3. #3
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    772
    Danke für die schnelle Antwort, aber das war es wohl nicht. Ich hab das mit phpinfo grad mal ausprobiert und die Register_Globals sind sowohl bei Local als auch bei Master Value auf 'On'.
     
    CreativePlains <-- Redesigned Mitte Juli 05

  4. #4
    Registriert seit
    Jul 2002
    Ort
    Frankfurt (Hessen)
    Beiträge
    2.135
    versuch doch mal den:

    PHP-Code:
    # orginal code 
    $check fopen("user/$benutzer","r"); 
    if (
    $check
    {  
    # ersetzen durch 
     
    if (file_exist(user/$benutzer)) 
    {  
    $check fopen("user/$benutzer","r"); 
    und deine userdateine müssen in einem eigenen ordner sein und zwar user ...
     

  5. #5
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    772
    Das mit dem Ordner 'user' ist klar, das hab ich. Deine Änderung des Codes hat er aber gar nicht gemocht:

    Fatal error: Call to undefined function: file_exist() in C:\apache\htdocs\news\newse.php on line 10
     
    CreativePlains <-- Redesigned Mitte Juli 05

  6. #6
    Registriert seit
    Apr 2002
    Beiträge
    1.721
    Es heißt auch file_exists().
     
    War ja nix...

  7. #7
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    772
    Ok, ich habs jetzt mit 'exists' ausprobiert. Das kam dabei raus:
    Warning: Division by zero in C:\apache\htdocs\news\newse.php on line 10

    Dein Name ist nicht registriert!
    Hört sich für mich so an, als ob das Script jetzt grundsätzlich funktioniert, er aber meine Benutzerkennung nicht findet.

    Ich hab aber nen Ordner 'user' angelegt, drin befindet sich die 'avariel.txt' und in der File steht ausschließlich mein Passwort drin. Verschrieben hab ich mich beim Login auch nicht. Warum geht das nicht?!****?
     
    CreativePlains <-- Redesigned Mitte Juli 05

  8. #8
    Registriert seit
    Jul 2002
    Ort
    Frankfurt (Hessen)
    Beiträge
    2.135
    ich und meine flüchtigkeitsfehler *grr*

    if (file_exists("user/$benutzer"))

    nicht nur das s vergessen sondern auch die "
     

  9. #9
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    772
    Ok, jetzt funktioniert alles.
    Danke soweit an alle die mir geholfen haben

    Allerdings hat sich jetzt wieder ein neues kleines Problem ergeben:

    Ist es möglich, ohne größeren Aufwand 2 Features, nämlich die automatische URL-Umwandlung und die Möglichkeit mehrzeiliger News einzubauen?

    Oder sollte ich mich da lieber nach einem anderen Newsscript umschauen?
    Das Dumme ist halt nur, dass dieses Script von den beiden erwähnten Funktionen genau so ist, wie ich mir das vorgestellt hab.
     
    CreativePlains <-- Redesigned Mitte Juli 05

  10. #10
    Registriert seit
    Jul 2002
    Ort
    Frankfurt (Hessen)
    Beiträge
    2.135
    mehrzeilig:

    datei edit.htm
    <input size="100" name="nr">
    ändern in
    <textarea rows=10 cols=30 name=nr></textarea>


    datei newse.php
    $news = fopen("news.txt","w");
    einfügen:
    $nr = nl2br($nr);

    fputs($news,"$date$nl$name$nl$nr$nl$alle_eintraege");


    was meinst du mit url umwandlung****?
     

  11. #11
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    772
    Ich meine wenn ich jetzt ne URL (beispielsweise www.tutorials.de) poste, dass er da automatisch nen Link draus macht.

    Und dann noch ne letzte Frage bezüglich der Sicherheit. Die Passwörter zum News-posten stehen in den *.txt-Files ja im Klartext drin. Ist das nicht reichlich unsicher? Bzw. wie einfach ist es, da unbefugt ran zu kommen?

    \\edit: Ich habs jetzt ausprobiert. Das mit dem mehrzeiligen Post klappt nicht.
    Warning: Supplied argument is not a valid File-Handle resource in C:\apache\htdocs\news\newse.php on line 21

    Warning: Supplied argument is not a valid File-Handle resource in C:\apache\htdocs\news\newse.php on line 23
    News erfolgreich hinzugefügt
    Das bringt die newse.php
    In der news.php steht dann die erste Zeile des mehrzeiligen Posts, die zweite Zeile bildet den Namen des nächsten Posts, die dritte Zeile ist das Datum des nächsten Posts.
    Geändert von Avariel (16.11.02 um 15:11 Uhr)
     
    CreativePlains <-- Redesigned Mitte Juli 05

  12. #12
    Registriert seit
    Jul 2002
    Ort
    Frankfurt (Hessen)
    Beiträge
    2.135
    poste mal zeile 18 bis 24

    linkumwandlung muss ich mal drüber nachdenken...

    nachtrag:
    klar ist die passworddatei unsicher jeder kann sie
    einsehen
    Geändert von melmager (16.11.02 um 17:25 Uhr)
     

  13. #13
    Avatar von Meisterbrau
    Meisterbrau Meisterbrau ist offline Mitglied Bronze
    Registriert seit
    Oct 2002
    Ort
    Koblenz (RLP!)
    Beiträge
    44
    müsste man wohl mit nem preg_replace machen....
    PHP-Code:
    <?php
      $text 
    preg_replace("=(www\\.)(.*)(\\.)(de|org|com|net|biz|info)=sUi""<a href='http://www.\\\\2.\\\\4'>\\\\1\\\\2\\\\3\\\\4</a>"$text);
    ?>
    habs nit ausprobiert...könnte aber klappen
    - allerdings weiß ich nicht wie weit das board den code zerstückelt und ob ich überall richtig escaped hab aber vom prinzip her müssts gehen. habs halt grad auf die schnelle hier hingeschrieben.
    mfg brau

    p.s.: das ersetzt natürlich nicht alle urls, hängt von der endung ab...
    *edit*
    UUUUPPPPS da hatte ich doch glatt die delimiter vergessen.....habs sie jetzt hingemacht und mal ausprobiert: es klappt perfekt..wenn man will kann man ja noch ein target='blank' reinsetzen..damit halt auch im neunen fenster geöffnet wird..usw..
    so
    */edit*
    Geändert von Meisterbrau (16.11.02 um 17:29 Uhr)
     
    "sapere aude"

  14. #14
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    772
    Code newse.php:
    {
    $nr = nl2br($nr);

    fputs($news,"$date$nl$name$nl$nr$nl$alle_eintraege");

    $alle_eintraege=fread($news, filesize("news.txt"));
    $news = fopen("news.txt","w");
    Ich hoffe mal du wolltest den Code der newse.php

    wg. Sicherheit: Könnte ich den Ordner, in dem die Passwort-Dateien sind auch per .htaccess schützen? Oder funktioniert dann das Script nicht mehr?
     
    CreativePlains <-- Redesigned Mitte Juli 05

  15. #15
    Registriert seit
    Jul 2002
    Ort
    Frankfurt (Hessen)
    Beiträge
    2.135
    PHP-Code:
    {
    $news fopen("news.txt","r"); 
    $alle_eintraege=fread($newsfilesize("news.txt")); 
    $news fopen("news.txt","w");
    $nr nl2br($nr);  
    fputs($news,"$date$nl$name$nl$nr$nl$alle_eintraege"); 
    echo 
    "<h3>News erfolgreich hinzugefügt</h3>"
    so ist es richtig

    .htaccess musst du nur beibringen das nur
    localhost zugriff auf das verzeichnis hat dat sollte ****en..
     

Ähnliche Themen

  1. Probleme mit Tutorial
    Von b0gus im Forum Photoshop
    Antworten: 5
    Letzter Beitrag: 07.08.10, 12:28
  2. Probleme mit Tutorial
    Von matzibeater im Forum Flash FAQ
    Antworten: 0
    Letzter Beitrag: 05.07.10, 21:55
  3. Probleme mit RSS-Tutorial
    Von DaRealMC im Forum PHP
    Antworten: 6
    Letzter Beitrag: 11.06.06, 14:20
  4. Probleme mit Tutorial
    Von VCF im Forum Flash Plattform
    Antworten: 6
    Letzter Beitrag: 11.09.05, 20:58
  5. Probleme mit dem IRC Tutorial
    Von Doctor Drunk im Forum PHP
    Antworten: 8
    Letzter Beitrag: 28.12.04, 18:04