tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
JA
ANTWORTEN
19
ZUGRIFFE
541
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    deh3nne deh3nne ist offline Mitglied
    Registriert seit
    Dec 2008
    Beiträge
    20
    Bin PHP Beginner und mein Prog geht nicht so richtig...

    Ich wollte mir selbst eine Shoutbox zimmern und das Grundgerüst steht soweit und funktioniert auch schon aber es tritt ein Problem auf:

    Schreibt man einen neuen Eintrag und schickt diesen ab, taucht er nicht sofort auf, sondern erst nach einer Aktualisierung der site!?

    Link: Link

    QT: http://wwwpub.zih.tu-dresden.de/~s0500979/Trash/QT.txt

    Danke für die Hilfe

    PS:Allgemeine Verbesserungen zum QT sind auch gern gesehen
     

  2. #2
    Avatar von queicherius
    queicherius queicherius ist offline ♥ PHP ♥
    Registriert seit
    Oct 2008
    Ort
    Stuttgart
    Beiträge
    439
    ich hab mal das Script ein bisschen umgeschrieben (keine grundlegenden Veränderungen, hab nur noch eine "html-freie" Version hinzugefügt)

    PHP-Code:
     <?php
     
     
    // festlegung der variablen
              
             
    $filename "../Trash/new.txt";
             
    $bool 1;
             
    $htmlanzeigen 1;
             
    // neuen eintrag hinzuf&uuml;gen

    if($_POST["a"] == "new"){
             
    $newtext $_POST['text'];
                      
              
    //Schonmal geschrieben?
             
    $file fopen($filename"r");

             
    $cont fread($filefilesize($filename));
             
    $cont explode("|"$cont);

             for(
    $i 0$i sizeof($cont);$i++){
                  if(
    strcmp($newtext$cont[$i]) == 0){
                     
    $bool 0;
                     echo 
    "<p>das wurde schon geschrieben<br></p>";
                  }
             }
             
    fclose($file);
             
             
             
    //txt aktualisieren falls der text nicht schon einmal geschrieben und die Länge größer null ist
             
    $file fopen($filename"a+");

             if(
    $bool == && strlen($newtext) > 0){
                
    fwrite($file,"|".$newtext);
             }


             
    fclose($file);
             
             
    header("Location: $PHP_SELF"); // ein reload...
    }

    /*********************************
    // allgemeine ausgabe
    *********************************/

             //auslesen
             
    $file fopen($filename"r");

             
    $out fread($filefilesize($filename));

             
    $out explode("|"$out);

             echo 
    "<div>";
             for(
    $i 0$i sizeof($out);$i++){
                  switch 
    $htmlanzeigen{
                  
                  case 
    1:
                  echo 
    $i." "$out[$i] . "<br>";
                  break;
                  
                  case 
    0:
                  case default:
                  echo 
    $i." "htmlentities($out[$i]). "<br>";
                  break;
                  } 
             }

             echo 
    "<p><br>Anzahl Einträge: ".sizeof($cont) . "</p>";
             
    fclose($file);


             echo 
    "</div>";
             echo 
    "<form action='g.php' method='post'>";
             echo 
    "<textarea name='text' cols='50' rows='10'></textarea><br>";
             echo 
    "<input type='hidden' name='a' value='new'>";
             echo 
    "<input type='submit' value=' Blub '>";
             echo 
    "</form>";




     
    ?>
     
    Jeder freut sich über eine positive Bewertung oder ein Danke :)

    Wie poste ich falsch
    Nachdem ich Google, die FAQ und die interne Suche erfolgreich ignoriert habe, erstelle ich zwei bis fünf neue Themen in den falschen Unterforen, mit kreativen Titel und undeutlichem Text, unter dem sich jeder etwas anderes vorstellen kann. Helfende Posts anderer Mitglieder ignoriere ich einfach und nörgle, dass mir niemand helfen kann.
    Mein Motto

  3. #3
    deh3nne deh3nne ist offline Mitglied
    Registriert seit
    Dec 2008
    Beiträge
    20
    mhm, das hat mein Problem nicht gelöst ausgegeben wird noch immer das selbe http://wwwpub.zih.tu-dresden.de/~s0500979/Trash/sa.php

    aber ich hab fragen an deinen Quelltext:

    Wie funktioniert oder was macht
    Code :
    1
    
    if($_POST["a"] == "new")
    ?

    und die Variable $htmlanzeigen wird doch nie geändert?!
    Weiter weiß ich nicht was du mit "html-freie" Version meinst...

    Danke soweit

    mfg Henne
     

  4. #4
    Avatar von queicherius
    queicherius queicherius ist offline ♥ PHP ♥
    Registriert seit
    Oct 2008
    Ort
    Stuttgart
    Beiträge
    439
    Zitat Zitat von deh3nne Beitrag anzeigen
    Wie funktioniert oder was macht
    Code :
    1
    
    if($_POST["a"] == "new")
    ?
    das prüft ob die übergebene Variable "a" (die unten in dem hidden-feld steht) "new" ist und führt nur dann das eintragen durch
    http://www.schattenbaum.net/php/if.php

    Zitat Zitat von deh3nne Beitrag anzeigen
    und die Variable $htmlanzeigen wird doch nie geändert?!
    Weiter weiß ich nicht was du mit "html-freie" Version meinst...
    das ist für dich zum einstellen wenn du $htmlanzeigen auf 0 setzt gibt es den Inhalt mit htmlentities aus (also ohne html, wie links u.a.)

    und noch ein Versuch:
    PHP-Code:
    echo "<form action='".$PHP_SELF."' method='post'>"
    anstatt
    PHP-Code:
    echo "<form action='g.php' method='post'>"
    meiner Meinung nach müsste es aber funktionieren...
     
    Jeder freut sich über eine positive Bewertung oder ein Danke :)

    Wie poste ich falsch
    Nachdem ich Google, die FAQ und die interne Suche erfolgreich ignoriert habe, erstelle ich zwei bis fünf neue Themen in den falschen Unterforen, mit kreativen Titel und undeutlichem Text, unter dem sich jeder etwas anderes vorstellen kann. Helfende Posts anderer Mitglieder ignoriere ich einfach und nörgle, dass mir niemand helfen kann.
    Mein Motto

  5. #5
    deh3nne deh3nne ist offline Mitglied
    Registriert seit
    Dec 2008
    Beiträge
    20
    ok, das "a" in dem hidden field hab ich nicht wahrgenommen
    aber nochmal zum Verständnis: es wird gefragt ob die Variable a gleich dem String "new" ist? oder wie? wozu dient es?


    aber gehen tuts dennoch nicht, deine überarbeitete Version liegt hier: http://wwwpub.zih.tu-dresden.de/~s0500979/Trash/sa.php
     

  6. #6
    Avatar von queicherius
    queicherius queicherius ist offline ♥ PHP ♥
    Registriert seit
    Oct 2008
    Ort
    Stuttgart
    Beiträge
    439
    es dient einfach nur zum Testen, ob der Nutzer einen Beitrag in die Datei schreiben will.
    (ja das mit dem string ist richtig)

    falls es dir hilft:
    bei mir funktioniert das Script
    hier

    EDIT:
    Link gelöscht
    Geändert von queicherius (15.03.09 um 12:58 Uhr) Grund: link fehlt ab jetzt
    deh3nne bedankt sich. 
    Jeder freut sich über eine positive Bewertung oder ein Danke :)

    Wie poste ich falsch
    Nachdem ich Google, die FAQ und die interne Suche erfolgreich ignoriert habe, erstelle ich zwei bis fünf neue Themen in den falschen Unterforen, mit kreativen Titel und undeutlichem Text, unter dem sich jeder etwas anderes vorstellen kann. Helfende Posts anderer Mitglieder ignoriere ich einfach und nörgle, dass mir niemand helfen kann.
    Mein Motto

  7. #7
    deh3nne deh3nne ist offline Mitglied
    Registriert seit
    Dec 2008
    Beiträge
    20
    Das selbe Skript, was du oben gepostet hast? Wie kann das sein?

    Ist die if abfrage überhaupt sinnvoll?
    Geändert von deh3nne (10.03.09 um 18:53 Uhr)
     

  8. #8
    Avatar von queicherius
    queicherius queicherius ist offline ♥ PHP ♥
    Registriert seit
    Oct 2008
    Ort
    Stuttgart
    Beiträge
    439
    die if abfrage ist schon sinnvoll ansonsten prüfst du ja immer ob du das Zeug reinschreiben musst

    bei mir lief das Script mit diesem Code:
    PHP-Code:
    <?php
     
     
    // festlegung der variablen
              
             
    $filename "new.txt";
             
    $bool 1;
             
    $htmlanzeigen 1;
             
    // neuen eintrag hinzuf&uuml;gen

    if($_POST["a"] == "new"){
             
    $newtext $_POST['text'];
                      
              
    //Schonmal geschrieben?
             
    $file fopen($filename"r");

             
    $cont fread($filefilesize($filename));
             
    $cont explode("|"$cont);

             for(
    $i 0$i sizeof($cont);$i++){
                  if(
    strcmp($newtext$cont[$i]) == 0){
                     
    $bool 0;
                     echo 
    "<p>das wurde schon geschrieben<br></p>";
                  }
             }
             
    fclose($file);
             
             
             
    //txt aktualisieren falls der text nicht schon einmal geschrieben und die Länge größer null ist
             
    $file fopen($filename"a+");

             if(
    $bool == && strlen($newtext) > 0){
                
    fwrite($file,"|".$newtext);
             }


             
    fclose($file);
             
             
    header("Location: $PHP_SELF"); // ein reload...
    }

    /*********************************
    // allgemeine ausgabe
    *********************************/

             //auslesen
             
    $file fopen($filename"r");

             
    $out fread($filefilesize($filename));

             
    $out explode("|"$out);

             echo 
    "<div>";
             for(
    $i 0$i sizeof($out);$i++){
                  switch (
    $htmlanzeigen){
                  
                  case 
    1:
                  echo 
    $i." "$out[$i] . "<br>";
                  break;
                  
                  case 
    0:
                  default:
                  echo 
    $i." "htmlentities($out[$i]). "<br>";
                  break;
                  } 
             }

             echo 
    "<p><br>Anzahl Einträge: ".sizeof($out) . "</p>";
             
    fclose($file);


             echo 
    "</div>";
             echo 
    "<form action='".$PHP_SELF."' method='post'>";
             echo 
    "<textarea name='text' cols='50' rows='10'></textarea><br>";
             echo 
    "<input type='hidden' name='a' value='new'>";
             echo 
    "<input type='submit' value=' Blub '>";
             echo 
    "</form>";




     
    ?>
    Geändert von queicherius (10.03.09 um 19:40 Uhr)
     
    Jeder freut sich über eine positive Bewertung oder ein Danke :)

    Wie poste ich falsch
    Nachdem ich Google, die FAQ und die interne Suche erfolgreich ignoriert habe, erstelle ich zwei bis fünf neue Themen in den falschen Unterforen, mit kreativen Titel und undeutlichem Text, unter dem sich jeder etwas anderes vorstellen kann. Helfende Posts anderer Mitglieder ignoriere ich einfach und nörgle, dass mir niemand helfen kann.
    Mein Motto

  9. #9
    deh3nne deh3nne ist offline Mitglied
    Registriert seit
    Dec 2008
    Beiträge
    20
    ok , das mit der if ist sinnvoll, geb ich zu...

    Aber was noch offen ist, ich kopiere deinen Quelltext, schreibe ihn mir in meine *.php und trotzdem kommt nicht dasselbe raus, wie kommt das? Ich hoffe mal ich mache dabei keine dummen Anfängerfehler (zur Sicherheit: in der Datei steht nur der PHP Tag?)

    Kann es auch am Server liegen?

    Weiter habe ich festgestellt, das das meine *.php mit deinem Skript nicht im internet Explorer geht sondern nur im Firefox :?


    geht immer noch nicht, hier ist genau der Text, der in der Datei steht:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    
    <?php echo "<?xml version='1.0' encoding='ISO-8859-1' ?>"; ?>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
     
     
            <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
            <meta name="GENERATOR" content="Phase 5">
            <meta name="AUTHOR" content="Henne">
            <meta name="copyright" content="Hendrik Schuster">
            <meta name="description" content="Private Homepage, zu Vorführ und Präsentationszwecken!">
            <meta name="abstract" content="Private Homepage, zu Vorführ und Präsentationszwecken!">
            <meta name="keywords" content="deh3nne, Henne, Hendrik, Schuster, Medieninformatik, TU, Dresden">
            <meta name="page-topic" content="Private Homepage">
            <link rel="stylesheet" href="CSS/Standard.css" type="text/css">
     
     
    </head>
     
     
     
    <body lang="de-DE">
     
    <?php
     
     // festlegung der variablen
     
             $filename = "new.txt";
             $bool = 1;
             $htmlanzeigen = 1;
     
    // neuen eintrag hinzuf&uuml;gen
     
    if($_POST["a"] == "new"){
             $newtext = $_POST['text'];
     
              //Schonmal geschrieben?
             $file = fopen($filename, "r");
     
             $cont = fread($file, filesize($filename));
             $cont = explode("|", $cont);
     
             for($i = 0; $i < sizeof($cont);$i++){
                  if(strcmp($newtext, $cont[$i]) == 0){
                     $bool = 0;
                     echo "<p>das wurde schon geschrieben<br></p>";
                  }
             }
             fclose($file);
     
     
             //txt aktualisieren falls der text nicht schon einmal geschrieben und die Länge größer null ist
             $file = fopen($filename, "a+");
     
             if($bool == 1 && strlen($newtext) > 0){
                fwrite($file,"|".$newtext);
             }
     
     
             fclose($file);
     
             header("Location: $PHP_SELF"); // ein reload...
    }
     
     
     
             //auslesen
             $file = fopen($filename, "r");
     
             $out = fread($file, filesize($filename));
     
             $out = explode("|", $out);
     
             echo "<div>";
             for($i = 0; $i <= sizeof($out);$i++){
                  switch ($htmlanzeigen){
     
                  case 1:
                  echo $i." ". $out[$i] . "<br>";
                  break;
     
                  case 0:
                  default:
                  echo $i." ". htmlentities($out[$i]). "<br>";
                  break;
                  }
             }
     
             echo "<p><br>Anzahl Einträge: ".sizeof($out) . "</p>";
             fclose($file);
     
     
             echo "</div>";
             echo "<form action='".$PHP_SELF."' method='post'>";
             echo "<textarea name='text' cols='50' rows='10'></textarea><br>";
             echo "<input type='hidden' name='a' value='new'>";
             echo "<input type='submit' value=' Blub '>";
             echo "</form>";
     
     
     
     
     ?>
     
    </body>
    </html>
     

  10. #10
    Avatar von Loomis
    Loomis Loomis ist offline Mitglied Bunt
    Registriert seit
    Jul 2002
    Ort
    Aschaffenburg
    Beiträge
    1.538
    Hi,

    tausche $PHP_SELF gegen $_SERVER['PHP_SELF'].
     
    mfg
    --------------------------------------------------------------------------------
    Kein Support via PN, Email, ICQ, Brieftaube oder Flaschenpost!

    Besucht den tutorials.de-Chat | Anleitung
    RTFM - PHP-Handbuch - MySql Handbuch
    --------------------------------------------------------------------------------
    Surftipp...Der Postillon
    --------------------------------------------------------------------------------
    Signatur v2.2

  11. #11
    deh3nne deh3nne ist offline Mitglied
    Registriert seit
    Dec 2008
    Beiträge
    20
    Hab jetzt die Zeile
    Code :
    1
    
    echo "<form action='".$PHP_SELF."' method='post'>";
    gegen
    Code :
    1
    
    echo "<form action='".$_SERVER['PHP_SELF']."' method='post'>";
    getauscht, es tut sich aber immer noch nichts :/

    Bin ich zu blöd, oder warum geht das bei mir einfach nicht?
     

  12. #12
    Avatar von Loomis
    Loomis Loomis ist offline Mitglied Bunt
    Registriert seit
    Jul 2002
    Ort
    Aschaffenburg
    Beiträge
    1.538
    Du hast noch mehr $PHP_SELF im Code.
     
    mfg
    --------------------------------------------------------------------------------
    Kein Support via PN, Email, ICQ, Brieftaube oder Flaschenpost!

    Besucht den tutorials.de-Chat | Anleitung
    RTFM - PHP-Handbuch - MySql Handbuch
    --------------------------------------------------------------------------------
    Surftipp...Der Postillon
    --------------------------------------------------------------------------------
    Signatur v2.2

  13. #13
    deh3nne deh3nne ist offline Mitglied
    Registriert seit
    Dec 2008
    Beiträge
    20
    du meinst
    Code :
    1
    
    header("Location: $_SERVER['PHP_SELF']"); // ein reload...

    Wenn ich das so hochlade tut sich gar nichts mehr auf der Site...
     

  14. #14
    Avatar von queicherius
    queicherius queicherius ist offline ♥ PHP ♥
    Registriert seit
    Oct 2008
    Ort
    Stuttgart
    Beiträge
    439
    Komisch... bei mir funktionierts ja
    Aber noch komischer finde ich dass es in IE nicht läuft.
    Weiß jemand wiso das so ist...
     
    Jeder freut sich über eine positive Bewertung oder ein Danke :)

    Wie poste ich falsch
    Nachdem ich Google, die FAQ und die interne Suche erfolgreich ignoriert habe, erstelle ich zwei bis fünf neue Themen in den falschen Unterforen, mit kreativen Titel und undeutlichem Text, unter dem sich jeder etwas anderes vorstellen kann. Helfende Posts anderer Mitglieder ignoriere ich einfach und nörgle, dass mir niemand helfen kann.
    Mein Motto

  15. #15
    Avatar von tombe
    tombe tombe ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2004
    Ort
    Möglingen (BaWü)
    Beiträge
    3.109
    Also wenn $PHP_SELF und $_SERVER['PHP_SELF'] nicht funktioniert, welchen Server hast du installiert.

    Ist zwar schon länger her aber ich hatte mit diesen Variablen (und somit mit dem kompletten Skript) auch das Problem das sie nicht vorhanden waren.
    Zu dieser Zeit lief alles mit dem Windows eigenen PWS (Personal Web Server). Als ich dann XAMPP installierte hat alles geklappt, vielleicht liegt es bei dir auch an so etwas und nicht am Skript selber !
    deh3nne bedankt sich. 
    Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.

    Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.

Ähnliche Themen

  1. Shoutbox PHP
    Von maarian im Forum PHP
    Antworten: 21
    Letzter Beitrag: 14.09.07, 01:14
  2. shoutbox
    Von damienhirst12 im Forum HTML-Editoren
    Antworten: 2
    Letzter Beitrag: 27.02.02, 12:33
  3. Ich will ne ShoutBOX!
    Von Comander_Keen im Forum PHP
    Antworten: 6
    Letzter Beitrag: 01.02.02, 19:47
  4. Shoutbox und Tut...
    Von bloody im Forum PHP
    Antworten: 7
    Letzter Beitrag: 04.01.02, 21:05