php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Bewertung: Bewertung: 10 Stimmen, 5,00 durchschnittlich.
Alt 18.01.2005, 11:25  
Gast
 
Beiträge: n/a
Standard [Erledigt] Problem mit Text Ausgabe in neuem Fenster

Hi

Ich habe ein Gästebuch geschrieben, das bei Absenden der Eingaben eine Meldung anzeigt, Danke für den Eintrag blablabla.." Ich möchte nun aber, dass diese Meldung auf einer neuen Seite (z.B. meldung.php) angezeigt wird und man dann durch einen Link wieder zurück auf das Gästebuch kommt. Der Sinn ist, dass man wenn auf den Link "zurück" klickt die Seite des Gästebuchs neugeladen wird und die neue Nachricht angezeigt wird. Wenn man das so macht wie ich bisher, dass die Meldung auf der gleichen Seite erscheint, dann sieht man den Gästebucheintrag nicht gleich und wenn man F5 (Aktualisieren) drückt, werden natürlich auch der Gästebucheintrag dupliziert, bzw. nochmal gesendet. Allerdings möchte ich auch, das bei einer Fehlereingabe, die "Fehlerausgabe" auf der Seite wieder angezeigt wird. (wie bisher)

Weiss da jemand eine Lösung? (Wenn jemand mir die uniqid()-Methode (Verhindern der erneuten Datensendung)erklären kann wäre mir auch sehr geholfen).

Hier mal mein Code:
PHP-Code:
<?php

    
//bestimmen der anzahl der gästebucheinträge 
    
require('connect.php');
    
$anzeigen=3;
    if(
$vor) {$start=$limit+$anzeigen;}
    if(
$back) {$start=$limit-$anzeigen;}
    if(!
$start) {$start=0;}
    
    
// Auslesen der Einträge
    
$tabellenname="gastbuch";
    
$sql="SELECT absender, email, homepage betreff, message, datum FROM $tabellenname WHERE check=-1 ORDER BY datum DESC LIMIT $start , $anzeigen";
       
    
$result mysql_query($sql$link);
    for(
$i=0;$i<mysql_num_rows($result);$i++)
    {
    
$ergebnis[$i]=mysql_fetch_array($result);
    }
    
// Ermitteln wieviele Einträge vorliegen
    
$sql1="SELECT check FROM $tabellenname WHERE check=-1 ";
    
$result1=mysql_query($sql1$link);
    
$maxmysql_num_rows($result1);
    
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>jaja</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>

<body>
<form action="<?php echo $PHP_SELF?>" method=post>
              </form>
              <tr valign="top">
                <td height="9" colspan="3">
<?php

require('connect.php');
//flag =1 wenn das Formular abgeschickt wurde
if($flag==1)
{
$absender=trim($absender);
$betreff=trim($betreff);
$message=trim($message);
//evtl den HTML Code entfernen
$absender=strip_tags($absender);
$betreff=strip_tags($betreff);
$message=strip_tags($message);
//testen ob alle Felder ausgefüllt sind

if(!$absender)
    {
        
$fehler="Please insert your Name! 
"
;
    }
if(!
$betreff)
    {
        
$fehler.="Please insert the Subject! 
"
;
    }
if(!
$message)
    {
        
$fehler.="Please insert your message! 
"
;
    }
//Wenn Formular vorhanden, die Textausgabe formatieren und flag zurücksetzen, damit Forumlar neu erzeugt wird
if($fehler)
    {
        
$meldung="<div align=center><span class=Stil30>".$fehler."</span></div>";
        unset(
$flag);
    }
else 
//Es liegt kein Fehler vor, Speichern der Infos in DB
    
{
    
//SQL String
    
$tabellenname="gastbuch";
    
$sql="INSERT INTO $tabellenname (absender, email, homepage, betreff, message, datum) values ('$absender', '$email', '$homepage', '$betreff', '$message', now())";
    
// Verbinen zu DB
    
    
mysql_query($sql$link);
    
$meldung="<div align=center><span class=Stil30>Thank you for signing! Your message will be soon online!</span></div>";
    
//Versenden einer e-mail bei neuem Gästebucheintrag
    
$mtext="Es liegt ein neuer Gästebucheintrag von ";
    
$mtext.=$absender;
    
$mtext.=" vor!";
    
$mtext.=" Neuen Eintrag editieren: http://"";
    mail('mail@adresse.de', 'Neuer Gästebucheintrag!', $mtext);
    unset($absender);
    unset($betreff);
    unset($email);
    unset($homepage);
    unset($message);
    }
    //Ausgabe der Meldung
    echo $meldung; // HIER WIRD DIE MELDUNG ANGEZEIGT DIE ICH GERNE AUSLAGERN WÜRDE !!
    }
    //ende flag = 1
    if(!$falg)
    {

?>
                  <div align="
center"></div>
                <div align="
center"></div></td>
              </tr>
              <form action='<?php echo $PHP_SELF; ?>' method="
post">
              <tr valign="
top">
                <td height="
-3"><div align="left"><span class="Stil30">Sign the [b]Guestbook[/b]: </span></div></td>
                <td width="
9%"><span class="Stil30"><font face="VerdanaArialHelveticasans-serif">Name:</font></span><font face="VerdanaArialHelveticasans-serif"></font></td>
                <td width="
41%">
                  <div align="
left">
                    <input name=absender type=text class="
Tabl_backgr_black" value='<?php echo $absender; ?>'>
                    <input type="
hidden" name="flag" value=1>
                  </div></td>
              </tr>
              <tr valign="
top">
                <td height="
-3"></td>
                <td><span class="
Stil38"><font face="VerdanaArialHelveticasans-serif">E-M</font></span><span class="Stil30"><font face="VerdanaArialHelveticasans-serif">ail:</font></span><font face="VerdanaArialHelveticasans-serif"></font></td>
                <td><input name=email type=text class="
Tabl_backgr_black"  value='<?php echo $email; ?>'></td>
              </tr>
              <tr valign="
top">
                <td height="
0"></td>
                <td><span class="
Stil38"><font face="VerdanaArialHelveticasans-serif">Homepage</font></span><span class="Stil30"><font face="VerdanaArialHelveticasans-serif">:</font></span></td>
                <td><input name=homepage type=text class="
Tabl_backgr_black"  value='http://<?php echo $homepage; ?>'></td>
              </tr>
              <tr valign="
top">
                <td height="
0"></td>
                <td><span class="
Stil30"><font face="VerdanaArialHelveticasans-serif">Subject:</font></span><font face="VerdanaArialHelveticasans-serif"></font></td>
                <td><input name=betreff type=text class="
Tabl_backgr_black"  value='<?php echo $betreff; ?>'></td>
              </tr>
              <tr valign="
top">
                <td height="
1"></td>
                <td><span class="
Stil30"><font face="VerdanaArialHelveticasans-serif">Message:</font></span><font face="VerdanaArialHelveticasans-serif"></font></td>
                <td><textarea name=message cols="
30" rows="5" wrap="VIRTUAL" class="Tabl_backgr_black"><?php echo $message; ?></textarea></td>
              </tr>
              <tr valign="
top">
                <td height="
0"></td>
                <td></td>
                <td><input type=submit name=gsend class="
Tabl_backgr_black" value="Sign"></td>
              </tr>
              </form>
              <tr valign="
top">
                <td height="
-1" colspan="3"><div align="center">
                  <span class="
Stil30"></span>
                </div></td>
                </tr>
              <tr valign="
top">
                <td height="
-1" colspan="3"><span class="Stil30"></span></td>
              </tr>
              <tr valign="
top">
                <td height="
0" colspan="3"><div align="center"><span class="Stil30">[b][b]<a name="gbook"></a>[/b]Guestbook[/b]</span></div></td>
              </tr>
              <tr valign="
top">
                <td colspan="
3">
                
<?php
}
?>

<?php
    //Ausgeben der Einträge
    for ($i=0;$i<count($ergebnis);$i++)
    {
     
    $text=nl2br($ergebnis[$i][message]);
    $text= wordwrap( $text,53 , "
", 1);
    echo "
<table border=1 width=400 align=center bordercolor=#999999><tr width=400><td width=77%> ".$ergebnis[$i][absender]." </td>
    
<td widht=400 align=right>  ".$ergebnis[$i][datum]."</td></tr>";
    echo "
<tr width=400><td width=400 colspan=2".$ergebnis[$i][email]." </td></tr>";
    echo "
<tr width=400><td width=400 colspan=2".$ergebnis[$i][homepage]." </td></tr>";
    echo "
<tr width=400><td width=400 colspan=2".$ergebnis[$i][betreff]." </td></tr>";
    echo "
<tr width=400><td width=400 colspan=2".$text." </td></tr></table>";
    echo "
<div align=center><span class=Stil30>******</span></div>";
    }

    
    
    // Ausgeben der Links Vor und Zurück
                    echo "
<table width=400  border=0 cellspacing=1 cellpadding=0 align=center><tr><td align=left>";
                            if($start>=$anzeigen){echo "
[url='".$PHP_SELF."?limit=".$start."&back=1&#gbook']zurück[/url]";}
                    echo "
</td><td align=right>";
                            if($start+$anzeigen<$max){echo "
[url='".$PHP_SELF."?limit=".$start."&vor=1&#gbook']weiter[/url]";}
                    echo "
</tr></table>";
    ?>
                
                
                </td>
              </tr>
              <tr valign="
top">
                <td colspan="
3"></td>
              </tr>
              <tr valign="
top">
                <td></td>
                <td colspan="
2"></td>
              </tr>
              <tr valign="
top">
                <td></td>
                <td colspan="
2" class="Stil32">[url="#anfang"]top[/url]</td>
              
</tr>
            </
table>              
            <
span class="Stil12"></span></td>
          </
tr>
          <
tr>
            <
td><div align="center"></div></td>
          </
tr>
    </
table>          </td>
  </
tr>
</
table></td>
  </
tr>
</
table>



</
body>
</
html>
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 18.01.2005, 11:29  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

zu viel HTML-code.

schau mal hier rein:
http://phpfriend.de/ftopic28022-0-asc-4.html
imported_Ben ist offline  
Alt 18.01.2005, 11:39  
Gast
 
Beiträge: n/a
Standard

Hi,
naja, ich bin ja auch noch Anfänger, somit muss ich mir das gute alte HTML noch so oft wie möglich zur Hand nehmen.

Das mit der Weiterleitung "header" habe ich auch schon getestet. Allerdings kam da immer ne Fehlermeldung, dass der header bereits erzeugt wurde...
Ansonsten kann ich mit deinem Beispiel in Bezug auf das Gästebuch hier nicht viel anfangen.
 
Alt 18.01.2005, 12:12  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

tja. du sollst da auch nur das prinzip verstehen. das werde ich sicherlich nicht nochmal erklären, da es meiner ansicht nach dort ganz gut erklärt wurde.

zu deinem fehler (mal wieder):
28.13. Warning: Cannot add header information - headers already sent ...
http://www.php-faq.de/q/q-fehler-header.html
http://php.net/header

HTML wirst du immer verwenden müssen .. wie willst du sonst etwas im 'brauser' darstellen?
ich meinte nur, dass es für die problembewältigung hier im forum irrelevant ist, ob du das gästebuch in irgendwelche tabellen verpackst oder nicht.

grüße ben.
imported_Ben ist offline  
Alt 18.01.2005, 13:08  
Gast
 
Beiträge: n/a
Standard

Hi,
War ein Missverständnis, ich dachte du meinst, dass ich allgemein zu viel html-code in meinem code verwende. Hätte den HTML-Code ausschneiden sollen. sorry

Versuche das ganze noch mal über den header weg.
Danke für die Links!

Natürlich musst du das nicht nochmal erklären, nur dein gezeigtes Beispiel ist ja ganz anders aufgebaut. Ich müsste meinen ganzen code ändern. Hilfreich wäre da schon eher zu wissen, ob es mit meiner methode überhaupt zu realisieren ist.

Gruß
McCoy
 
Alt 18.01.2005, 13:16  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ja .. und was spricht dagegen meinen code so abzuändern, dass er zu deinem passt?
ich bin ja auch nicht unfehlbar. ich wollte dir nur einen ansatz geben, so dass du mal mit deinem kram rumspielen kannst
imported_Ben ist offline  
Alt 18.01.2005, 14:24  
Gast
 
Beiträge: n/a
Standard

Hi,

ich konnte es nun lösen. Ist allerdings nicht 100% die perfekte Lösung, aber immerhin...

Ich habe nun mir eine zweite php Datei erstellt (action.php), in der ich Teilbereiche des Codes ausgelagert habe. Ausserdem wird das Formular dann nicht mehr per PHP_SELF , sondern zur action.php übergeben.

Nachteil ist dass bei einer falschen oder fehlerhaften Eingabe auch auf die action.php weitergeleitet wird und dort auch die Fehlermeldung ausgegeben wird. Ich habe dort nun ein Java.History.Back eingebaut damit man die Eingaben nicht alle komplett wiederholen muss. Somit hat sich mein Hidden Field Flag auch erledigt.. naja, ich glaube ich gebe mich damit zufrieden.



Hier der Code, den ich ausgelagert habe:
PHP-Code:
<?php
require('connect.php');
//flag =1 wenn das Formular abgeschickt wurde
if($flag==1)
{
$absender=trim($absender);
$betreff=trim($betreff);
$message=trim($message);
//evtl den HTML Code entfernen
$absender=strip_tags($absender);
$betreff=strip_tags($betreff);
$message=strip_tags($message);
//testen ob alle Felder ausgefüllt sind

if(!$absender)
    {
        
$fehler="Please insert your Name! 
"
;
    }
if(!
$betreff)
    {
        
$fehler.="Please insert the Subject! 
"
;
    }
if(!
$message)
    {
        
$fehler.="Please insert your message! 
"
;
    }
//Wenn Formular vorhanden, die Textausgabe formatieren und flag zurücksetzen, damit Forumlar neu erzeugt wird
if($fehler)
    {
        
$meldung="<div align=center><span class=Stil30>".$fehler."<br<a href=\"javascript:history.back();\">back to the guestbook</a>
</span></div>"
;
        unset(
$flag);
    }
else 
//Es liegt kein Fehler vor, Speichern der Infos in DB
    
{
    
//SQL String
    
$tabellenname="gastbuch";
    
$sql="INSERT INTO $tabellenname (absender, email, homepage, betreff, message, datum) values ('$absender', '$email', '$homepage', '$betreff', '$message', now())";
    
// Verbinen zu DB
    
    
mysql_query($sql$link);
    
$meldung="<div align=center><span class=Stil30>Thank you for signing! Your message will be soon online!
[b]<a href=\"contact3.php\">back to the guestbook...
</span></div>"
;
    
//Versenden einer e-mail bei neuem Gästebucheintrag
    
$mtext="Es liegt ein neuer Gästebucheintrag von ";
    
$mtext.=$absender;
    
$mtext.=" vor!";
    
$mtext.=" Neuen Eintrag editieren: http://";
    
mail(mailde', 'Neuer Gästebucheintrag!, $mtext);
    }
    
//Ausgabe der Meldung
    
echo $meldung;
}
?>
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] problem keine ausgabe coraplanet PHP Tipps 2008 12 02.05.2008 18:51
Class Ausgabe Problem wk-moray PHP-Fortgeschrittene 6 12.02.2008 10:06
CSS - Bild im div container überlappt andere container Buschdieb HTML, Usability und Barrierefreiheit 13 19.07.2007 23:17
form.submit() => Ergebnis in neuem Fenster PHP-Fortgeschrittene 6 21.12.2005 18:12
CSS - Design (clear - Problem) HTML, Usability und Barrierefreiheit 7 21.12.2005 14:55
[Erledigt] Link PHP Tipps 2005-2 10 20.07.2005 21:28
[Erledigt] durch Klick auf Text anderen Text einblenden HTML, Usability und Barrierefreiheit 3 03.07.2005 14:41
DIV´s wollen nicht wie ich das will :-) HTML, Usability und Barrierefreiheit 22 28.03.2005 18:36
Problem Suche Array das nur den text in Variable ließt ... PHP Tipps 2005 2 09.01.2005 11:58
variablen ausgabe problem..... PHP Tipps 2005 3 06.01.2005 02:27
Problem mit Ausgabe picco PHP Tipps 2004-2 2 24.12.2004 15:38
problem mit ausgabe bei einer "tmp"-table... nautiluS PHP Tipps 2004-2 0 20.12.2004 15:12
[Erledigt] Bestell FormMailer ausgabe nur in text tabs!?! PHP-Fortgeschrittene 6 22.11.2004 12:03
[Erledigt] Link in neuem Fenster öffnen -- Fullscreen HTML, Usability und Barrierefreiheit 2 17.11.2004 11:03
[Erledigt] Link in neuem Fenster öffnen - JS HTML, Usability und Barrierefreiheit 3 02.09.2004 15:17

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php fehler ausgeben fenster, java textausgabe fenster, php ausgabe in neuem fenster, php meldung in eigenem fenster ausgeben, php ausgabe fenster, java textausgabe im fenster, java textausgabe in fenster, fensterausgabe php, text ausgeben in fenster java, http://www.php.de/php-tipps-2005/16193-erledigt-problem-mit-text-ausgabe-neuem-fenster.html, gästebucheintrag f5 nochmal verhindern, php meldung neues fenster, php fehlermeldung in neuem fenster, php text in eigenem fenster ausgeben, fenster fehlermeldung php, php text in fenster ausgeben, php fehlermeldung im selben fenster, php ausgabe im fenster, php echo als formatierten text in eigenem fenster ausgeben, java ausgabe einer fehlermeldung in neuem fenster

Alle Zeitangaben in WEZ +1. Es ist jetzt 21:22 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.