-
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
-
10.03.09 15:44 #2
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ü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...
}
/*********************************
// allgemeine ausgabe
*********************************/
//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:
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 :)
Mein MottoWie 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.
-
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
-
10.03.09 16:34 #4
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
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:
anstattPHP-Code:echo "<form action='".$PHP_SELF."' method='post'>";
meiner Meinung nach müsste es aber funktionieren...PHP-Code:echo "<form action='g.php' method='post'>";
Jeder freut sich über eine positive Bewertung oder ein Danke :)
Mein MottoWie 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.
-
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
-
10.03.09 17:43 #6
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öschtGeändert von queicherius (15.03.09 um 12:58 Uhr) Grund: link fehlt ab jetzt
Jeder freut sich über eine positive Bewertung oder ein Danke :)
Mein MottoWie 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.
-
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)
-
10.03.09 19:19 #8
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ü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...
}
/*********************************
// allgemeine ausgabe
*********************************/
//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>";
?>Geändert von queicherius (10.03.09 um 19:40 Uhr)
Jeder freut sich über eine positive Bewertung oder ein Danke :)
Mein MottoWie 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.
-
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ü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>
-
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
-
Hab jetzt die Zeile
gegenCode :1
echo "<form action='".$PHP_SELF."' method='post'>";
getauscht, es tut sich aber immer noch nichts :/Code :1
echo "<form action='".$_SERVER['PHP_SELF']."' method='post'>";
Bin ich zu blöd, oder warum geht das bei mir einfach nicht?
-
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
-
du meinst
Code :1
header("Location: $_SERVER['PHP_SELF']"); // ein reload...
Wenn ich das so hochlade tut sich gar nichts mehr auf der Site...
-
11.03.09 14:26 #14
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 :)
Mein MottoWie 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.
-
11.03.09 14:42 #15
- 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 !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
-
Shoutbox PHP
Von maarian im Forum PHPAntworten: 21Letzter Beitrag: 14.09.07, 01:14 -
shoutbox
Von damienhirst12 im Forum HTML-EditorenAntworten: 2Letzter Beitrag: 27.02.02, 12:33 -
Ich will ne ShoutBOX!
Von Comander_Keen im Forum PHPAntworten: 6Letzter Beitrag: 01.02.02, 19:47 -
Shoutbox und Tut...
Von bloody im Forum PHPAntworten: 7Letzter Beitrag: 04.01.02, 21:05



4Danke

Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren