ilch Forum » Allgemein » HTML, PHP, SQL,... » Aktualiesirungs Problem

Geschlossen
  1. #1
    User Pic
    Djmuck Mitglied
    Registriert seit
    08.04.2007
    Beiträge
    36
    Beitragswertungen
    0 Beitragspunkte
    Hallo zusammen,

    Ich habe ein Problem mit einer Aktualiesirung.
    Ich habe ein Formula gebaut, in der man ein text eingibt und dieser dann auf einer anderen seite wiedergespiegelt wird.

    Wenn ein eintrag gemacht wurde bekommt der benutzer ein text angezeigt "Abgeschickt" .

    Nun das Problem, Die felder sind nun alle wieder leer, man könnte also ein neun text eingeben... Wenn man aber jetzt ausversehn aktualiesirt hat, wird der letzte eingegebende text noch einmal eingetragen auf der anderen seite. Was also heist das der letzte eingegebende text ihrgendwo im Browser cache liegt.

    Wie kann ich das verhindern?

    Hoffe ich konnte das Problem einigermassen erklären...

    mfg DJMUCK
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Babulo Mitglied
    Registriert seit
    13.05.2008
    Beiträge
    152
    Beitragswertungen
    0 Beitragspunkte
    <meta http-equiv="cache-control" content="no-cache">


    in den <head> - Bereich der index.htm des designs zunge
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Djmuck Mitglied
    Registriert seit
    08.04.2007
    Beiträge
    36
    Beitragswertungen
    0 Beitragspunkte
    Danke babulo,
    das problem ist das es von einer php datei aus gesteuert wird,
    diese wurde als iframe in der seite nur verlinkt.

    Ich habe versucht diesen Meta:

    echo "<meta http-equiv=\"cache-control\" content=\"no-cache\">\n";


    in meiner php datei zu baun, allerdings weiß ich nicht an welcher stelle ich denn setzen müste damit der auch funtzt.
    Ich habe schon viel rum experiementirt, leider ohne erfolg.

    Normalerweise währe es ja so, sobald man ein eintrag gemacht hatte erscheint der text " Abgeschickt" , nun müste er aber wieder zurück an der stelle wo der text "Abgeschickt" nicht steht hin. Und weil er nicht zurück geht, kommt es ja auch zu dem Problem. Es wurde also auch reichen wenn er unmittelbar danach wieder zur ursprungs seite keren würde, sobald man auf Senden gekilckt hat. Wie würde das dann ausehn vom code her?

    Wie könnt ich das Problem noch lösen?
    Ich hefte hier einfach mal den kompleten code hier an.

    <?php
    
    require_once('ww_config.php');
    
    
    //prüft ob auf "senden" geklickt wurde
    
    if(isset($_POST['send']) && $_POST['send'] == "send")
    {
    	$error = 0;
    
    	//wandelt alle Sonderzeichen um
    	$name = htmlentities($_POST['name']);
    	$title = htmlentities($_POST['title']);
    	$comment = htmlentities($_POST['comment']);
    
    	//wenn name oder titel leer gelassen wurde dann wird eine
    	//errorvariable erzeugt
    	if(empty($name) OR empty($title))
    	{
    		$error++;
    		$message .= "<br />"._no_input;
    	}
    
    	if(strlen($comment) >= $max_length_comment)
    	{
    		$error++;
    		$message .= "<br />"._comment_to_long;
    	}
    
    
    	if(strlen($name) >= $max_length_name)
    	{
    		$error++;
    		$message .= "<br />"._name_to_long;
    	}
    
    
    	if(strlen($title) >= $max_length_title)
    	{
    		$error++;
    		$message .= "<br />"._title_to_long;
    	}
    
    	//wenn beide Felder ausgefült sind, sprich die error Variable
    	// noch auf 0 steht wird der Eintrag in die MySQL Tabelle
    	// vorgenommen
    	if( $error == 0 AND $activ == 1)
    	{
    		$sql = "INSERT INTO ww_wish (name, title, comment, date)
    				VALUES (
    						'".mysql_real_escape_string($name)."',
    						'".mysql_real_escape_string($title)."',
    						'".mysql_real_escape_string($comment)."',
    						'".time()."'
    						)";
    		mysql_query($sql) OR die(mysql_error());
    
    		$message = _send;
    	//wenn die Felder leer sind wird dieser Fehler angezeigt
    	}
    }
    
    echo "<div style=\"width:170px; font-size: x-small; background-color: black;\" id=\"wishbox\">\n";
    echo "<fieldset>\n";
    echo "<legend>"._box_title." </legend>\n";
    echo $message ;
    if($activ == "1")
    {
    
    	echo "	<form action=\"".$_SERVER["PHP_SELF"]."\" method=\"post\">";
    
    	echo "		<label for=\"name\">"._your_name."</label>\n";
    	echo "		<input type=\"text\" name=\"name\" /><br />\n";
    
    	echo "		<label for=\"title\">"._your_wish."</label>\n";
    	echo "		<input type=\"text\" name=\"title\" /><br />\n";
    
    	echo "		<label for=\"comment\">"._greetings."</label><br />\n";
    	echo "		<textarea name=\"comment\" cols=\"15\" rows=\"5\" style=\"overflow:auto\"></textarea><br />\n";
    
    	echo "		<input type=\"hidden\" name=\"send\"  value=\"send\">\n";
    	echo "		<input type=\"submit\" name=\"submit\" value=\""._send_wish."\"/>\n";
    
    	echo "	</from>\n";
    
    }else{
    	echo _offline;
    }
    echo "<br /><font size=\"1\"><a href=\"http://punkt-null.de/static/wwish\">Weichwish 0.1</a></font>\n";
    echo "</fieldset>\n";
    echo "</div>\n";
    
    ?>



    Zuletzt modifiziert von Djmuck am 26.06.2008 - 23:19:34
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Babulo Mitglied
    Registriert seit
    13.05.2008
    Beiträge
    152
    Beitragswertungen
    0 Beitragspunkte
    <?php
    
    require_once('ww_config.php');
    
    
    //prüft ob auf "senden" geklickt wurde
    
    if(isset($_POST['send']) && $_POST['send'] == "send")
    {
        $error = 0;
    
        //wandelt alle Sonderzeichen um
        $name = htmlentities($_POST['name']);
        $title = htmlentities($_POST['title']);
        $comment = htmlentities($_POST['comment']);
    
        //wenn name oder titel leer gelassen wurde dann wird eine
        //errorvariable erzeugt
        if(empty($name) OR empty($title))
        {
            $error++;
            $message .= "<br />"._no_input;
        }
    
        if(strlen($comment) >= $max_length_comment)
        {
            $error++;
            $message .= "<br />"._comment_to_long;
        }
    
    
        if(strlen($name) >= $max_length_name)
        {
            $error++;
            $message .= "<br />"._name_to_long;
        }
    
    
        if(strlen($title) >= $max_length_title)
        {
            $error++;
            $message .= "<br />"._title_to_long;
        }
    
        //wenn beide Felder ausgefült sind, sprich die error Variable
        // noch auf 0 steht wird der Eintrag in die MySQL Tabelle
        // vorgenommen
        if( $error == 0 AND $activ == 1)
        {
            $sql = "INSERT INTO ww_wish (name, title, comment, date)
                    VALUES (
                            '".mysql_real_escape_string($name)."',
                            '".mysql_real_escape_string($title)."',
                            '".mysql_real_escape_string($comment)."',
                            '".time()."'
                            )";
            mysql_query($sql) OR die(mysql_error());
    
            $message = _send;
        //wenn die Felder leer sind wird dieser Fehler angezeigt
        }
    }
    echo '<meta http-equiv="cache-control" content="no-cache">';
    echo '<META HTTP-EQUIV="Pragma" CONTENT="no-cache">';
    echo "<div style=\"width:170px; font-size: x-small; background-color: black;\" id=\"wishbox\">\n";
    echo "<fieldset>\n";
    echo "<legend>"._box_title." </legend>\n";
    echo $message ;
    if($activ == "1")
    {
    
        echo "    <form action=\"".$_SERVER["PHP_SELF"]."\" method=\"post\">";
    
        echo "        <label for=\"name\">"._your_name."</label>\n";
        echo "        <input type=\"text\" name=\"name\" /><br />\n";
    
        echo "        <label for=\"title\">"._your_wish."</label>\n";
        echo "        <input type=\"text\" name=\"title\" /><br />\n";
    
        echo "        <label for=\"comment\">"._greetings."</label><br />\n";
        echo "        <textarea name=\"comment\" cols=\"15\" rows=\"5\" style=\"overflow:auto\"></textarea><br />\n";
    
        echo "        <input type=\"hidden\" name=\"send\"  value=\"send\">\n";
        echo "        <input type=\"submit\" name=\"submit\" value=\""._send_wish."\"/>\n";
    
        echo "    </from>\n";
    
    }else{
        echo _offline;
    }
    echo "<br /><font size=\"1\"><a href=\"http://punkt-null.de/static/wwish\">Weichwish 0.1</a></font>\n";
    echo "</fieldset>\n";
    echo "</div>\n";
    
    ?>



    PS: Link zu Seite wäre net schlecht zwinker
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Djmuck Mitglied
    Registriert seit
    08.04.2007
    Beiträge
    36
    Beitragswertungen
    0 Beitragspunkte
    Danke für die Mühe Babulo. aber es geht leider immer noch nicht.

    Hier mal der direckt link zum Formular:

    [url]Habe ich erstmal wieder endfernt ^^[/url]

    Und hier der link auf dem der eintrag wieder gespiegelt wird.
    Da dieser Password geschützt ist, sende ich dir per PN die daten zu ok.

    [url]Habe ich erstmal wieder endfernt ^^[/url]

    Wie gesagt im eingabe Formula ein test eintrag machen, dann steht oben in Roter schrift "Abgeschickt" wenn das erfolgt ist und du jetzt z.b. einfach noch mal Aktuallisierst, dann kannst du schaun das der selbe eintag noch mal drin steht..


    Zuletzt modifiziert von Djmuck am 27.06.2008 - 20:47:55
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    DiaMonD Mitglied
    Registriert seit
    12.01.2007
    Beiträge
    196
    Beitragswertungen
    0 Beitragspunkte
    dann versuchs mal so.

    Ich mache php immer so:

    ich erstelle eine datei (bspw. index.php)
    und mach deinen PHP sourcecode in eine andere datei (z.b. content.php)

    index.php
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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 http-equiv="cache-control" content="no-cache"> // hier der wichtige Code
    <link rel="stylesheet" type="text/css" href="davidsstyles.css">
    <title>Test für dich</title>
    </head>
    <body>
    <?php include('content.php') ?>
    </body>
    </html>


    und das wars eigentlich schon. Sollte im Prinzip klappen.

    Freundliche Grüße

    jeatrexs


    Zuletzt modifiziert von DiaMonD am 27.06.2008 - 13:39:55
    Übrigens umbenannt: JeaTreXs
    jeatrexs Solutions
    Don't ask what jeatrexs means zwinker
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Djmuck Mitglied
    Registriert seit
    08.04.2007
    Beiträge
    36
    Beitragswertungen
    0 Beitragspunkte
    Danke DiaMonD für dein Hilfe.. lächeln
    Aber leider macht er es trotzdem... traurig

    Kann man ein zwichen code einbaun der eingesetzt wird an der stelle wo dann steht "Abgeschickt" ? Sowas wie eine art weiterleitung, so das er zur uhrsprungsseite zurückkert?

    Dann dürfte das ja eig auch nicht mehr sein oder?
    Denn sobald ich denn Browser schlisse und denn link neu aufrufe gehts ja wieder, bis ich ebend ein neun Text eingegeben habe.

    Uhrsprünglich war ja win Capcha code eingebaut, denn muste ich allerdings rausnehmen. traurig
    Der grund dafür war, man konnte im Firefox ohne Probleme text eingeben, absenden und nach dem absenden hat er automatich ein neuen capcha code generiert. Aber beim Internet Explorer wolte er nicht... Sobald man über dem IE versucht hat ein text einzugeben, gings beim ersten mal, aber man merkte schon das immer noch der gleiche capcha code zu sehn war. Wenn man manuell akt. wollte, schrieb er dann immer Falcher Cod Spam...

    Da ich keine lösung gefunden habe, dachte ich mir. ich muss den capcha code komplet raus nehmen, und nun hab ich jetzt das Problem.


    Zuletzt modifiziert von Djmuck am 27.06.2008 - 13:59:43
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten