SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Einführung in XHTML, CSS und Webdesign

Einführung in XHTML, CSS und Webdesign zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 24.11.2010, 17:26:31
joudii joudii ist offline
Anfänger
 
Registriert seit: Nov 2010
Alter: 39
Beiträge: 7
Meldung des Kontaktformulars soll nicht in neuem Fenster kommen

Hallo!

Ich habe mir eine Script-Vorlage für ein Captcha-Kontaktformular gezogen.
Ich konnte auch alles bestens an meine Ansprüche anpassen.
Jetzt habe ich aber noch ein Problem:

Das Formular enthält Pflichtfelder, wenn dort ein Eintrag fehlt, kommt eine Meldung. Diese Meldung erscheint dann im gleichen Fenster, allerdings ohne was drum rum (Header, Footer etc.). Das Formular schickt die zu verarbeitenden Daten an eine andere php.-Datei, wo eben auch fest gelegt ist, dass diese Meldung kommt. Ich gehe also davon aus, dass ich genau in dieser Datei auch die Einstellung machen kann, dass kein neues Fenster kommt, sondern z. B. nur ein Container, den man weg klicken kann, oder? Mir würde auch reichen, wenn die Meldung dann direkt unter dem Formular ausgegeben wird.

Kann mir da jemand weiter helfen? Ich kann auch mal das Formular- und das Verarbeitungsskript posten, wenn das weiter hilft?!

Danke im Voraus!
Mit Zitat antworten
  #2  
Alt 24.11.2010, 17:34:48
R4Zz0R R4Zz0R ist offline
Junior Member
 
Registriert seit: Sep 2009
Ort: Wetzlar/Kassel
Alter: 35
Beiträge: 201
AW: Meldung des Kontaktformulars soll nicht in neuem Fenster kommen

Ohne code wirds schwierig zeig doch mal was du da hast dan finden wir da schon ne lösung :D
__________________
Wachsen kann man entweder:

Körperlich -> Man wird größer.
^ Ist so von der Evolution gewollt.

Charakter -> Man wird Geduldiger.
^ Man wächst mit der aufgabe

Kopf -> Man wird Klüger.
^ Wenn die aufgabe probleme macht & man trotzdem deine lösung findet.
Mit Zitat antworten
  #3  
Alt 24.11.2010, 17:58:32
joudii joudii ist offline
Anfänger
 
Registriert seit: Nov 2010
Alter: 39
Beiträge: 7
AW: Meldung des Kontaktformulars soll nicht in neuem Fenster kommen

Ok, auf los geht's los ;)

Hier der Formular-Code:
HTML-Code:
<form method="post" action="kontakt_ausw.php" name="kontakt">
	<table width="500">
	<tr><td width="118"><p>Name: </p></td><td width="770"><p><input name="name" size="50" type="text" <?if (isset($_SESSION['name'])) { echo 'value="' . $_SESSION['name'] . '"'; }?>/></p></td></tr>
	<tr><td><p>Email: </p></td><td><p><input name="email" size="50" type="text" <?if (isset($_SESSION['email'])) { echo 'value="' . $_SESSION['email'] . '"'; }?>/></p></td></tr>
	<tr><td><p>Betreff: </p></td><td><p><input name="betreff" size="50" type="text" <?if (isset($_SESSION['betreff'])) { echo 'value="' . $_SESSION['betreff'] . '"'; }?>/></p></td></tr>
	<tr><td valign="top"><p>Nachricht: </p></td><td><p><textarea name="nachricht" rows="7" cols="45"><?if (isset($_SESSION['nachricht'])) { echo  $_SESSION['nachricht'] ; }?></textarea></p></td></tr>
	
	<tr><td> </td><td><img border="0" src="captcha_img.php?PHPSESSID=<?echo session_id();?>&ver=<?echo time();?>" alt="" /></td></tr>
	<tr><td><p>Code: </p></td><td><p><input maxlength="6" name="txtCode" size="34" type="text" /></p></td></tr>
	<tr><td> </td><td><p><input class="button" type="submit" name="eintrag" value="Senden" />&nbsp;<input class="button" type="reset" name="reset" value="Zur&uuml;cksetzen" /></p></td></tr>
	</table>
</form>
und hier der php-Code:

PHP-Code:
<?
    // Session starten und confog.php includen
    session_start();
    include ("config.php");
    
    // CaptchaCodes abfragen
    $CAPTCHA_RandomText = "";
    if (isset($_POST['txtCode'])){
    $CAPTCHA_EnteredText = str_replace("<","",str_replace(">","",str_replace("'","",str_replace("[","",str_replace("]","",$_POST['txtCode'])))));
    }
    if (isset($_SESSION['CAPTCHA_RndText'])) {
    $CAPTCHA_RandomText = $_SESSION['CAPTCHA_RndText'];
    }

    // Eingabefelder abfragen
    $_SESSION['name'] = $_POST['name'];
    $_SESSION['email'] = $_POST['email'];
    $_SESSION['betreff'] = $_POST['betreff'];
    $_SESSION['nachricht'] = $_POST['nachricht'];
    
    $email_i = $_SESSION['email'];
    
    // Email Funktion
    function pruefe_mail($email_i) {
          if(strstr($email_i, "@")) {
            $email_i = explode ("@", $email_i);
            if(strstr($email_i[1], ".")) $ok = TRUE;
          }
          return $ok;
        }
    
    // Eingaben prüfen
    $fehler = "";
    if(!pruefe_mail($email_i) && !empty($email_i)) {
            $fehler .= "<li>Email fehlerhaft!</li>";
            }
            if ($_SESSION['name'] == ""){ 
            $fehler .= "<li>Name fehlt!</li>";
            }
            if ($_SESSION['email'] == ""){ 
            $fehler .= "<li>Email fehlt!</li>";
            }
            if ($_SESSION['betreff'] == ""){ 
            $fehler .= "<li>Betreff fehlt!</li>";
            }
            if ($_SESSION['nachricht'] == ""){ 
            $fehler .= "<li>Nachricht fehlt!</li>";
            }
            if ($CAPTCHA_EnteredText == $CAPTCHA_RandomText and isset($_POST['txtCode']) == true and isset($_SESSION['CAPTCHA_RndText'])){
            $captcha = true;
            } else {
            $fehler .= "<li>Sicherheitscode fehlt oder fehlerhaft!</li>";
            }
    echo '<div style="border: 1px #000 solid; width: 350px; padding: 5px;">';        
    if ($fehler == ""){
    // Email zumsammensetzen
    $email = "From: " . $_SESSION['email'];
    $nachrichtfertig = $_SESSION['name']. " schrieb über Kontaktformular: \n\n" . $_SESSION['nachricht'];
    $versand = mail($empfaenger, $_SESSION['betreff'], $nachrichtfertig, $email);
            if ($versand) {
            echo '<h3>Kontaktformular</h3>
            <p>Email ist erfolgreich versendet worden!</p>';
            
            // Sessionvariablen löschen
            unset($_SESSION['name']);
            unset($_SESSION['email']);
            unset($_SESSION['betreff']);
            unset($_SESSION['nachricht']);
            }
            
    } else {
    echo '<h3>Kontaktformular</h3>';
    echo $fehler;
    echo '<p><a href="kontakt.php">zurück</a></p>';
    }
    echo '</div>';    

    // Session unset
    unset($_SESSION['CAPTCHA_RndText']);
    
?>
Mit Zitat antworten
  #4  
Alt 24.11.2010, 18:28:01
Benutzerbild von rarios
rarios rarios ist offline
Member
 
Registriert seit: Jun 2006
Beiträge: 655
AW: Meldung des Kontaktformulars soll nicht in neuem Fenster kommen

Also, Die Formulardaten werden weitergeleitet an die PHP-Datei. Bedeutet:
Entweder Du lässt bei Fehlern über die PHP-Datei das Formular mit den eingegeben Daten wieder ausgeben - das müsste in diesem Bereich passieren:
PHP-Code:
<?php
} else {
echo 
'<h3>Kontaktformular</h3>';
    echo 
$fehler;
    unset(
$_SESSION['CAPTCHA_RndText']);  ?>

<form method="post" action="kontakt_ausw.php" name="kontakt">
    <table width="500">
    <tr><td width="118"><p>Name: </p></td><td width="770"><p><input name="name" size="50" type="text" <?if (isset($_SESSION['name'])) { echo 'value="' . $_SESSION['name'] . '"'; }?>/></p></td></tr>
    <tr><td><p>Email: </p></td><td><p><input name="email" size="50" type="text" <?if (isset($_SESSION['email'])) { echo 'value="' . $_SESSION['email'] . '"'; }?>/></p></td></tr>
    <tr><td><p>Betreff: </p></td><td><p><input name="betreff" size="50" type="text" <?if (isset($_SESSION['betreff'])) { echo 'value="' . $_SESSION['betreff'] . '"'; }?>/></p></td></tr>
    <tr><td valign="top"><p>Nachricht: </p></td><td><p><textarea name="nachricht" rows="7" cols="45"><?if (isset($_SESSION['nachricht'])) { echo  $_SESSION['nachricht'] ; }?></textarea></p></td></tr>
    
    <tr><td> </td><td><img border="0" src="captcha_img.php?PHPSESSID=<?echo session_id();?>&ver=<?echo time();?>" alt="" /></td></tr>
    <tr><td><p>Code: </p></td><td><p><input maxlength="6" name="txtCode" size="34" type="text" /></p></td></tr>
    <tr><td> </td><td><p><input class="button" type="submit" name="eintrag" value="Senden" />&nbsp;<input class="button" type="reset" name="reset" value="Zur&uuml;cksetzen" /></p></td></tr>
    </table>
</form>
<?php
    
echo '</div>';
}
Oder Du verwendest JS.
Zum Beispiel könntest Du per Ajax einen Callback schreiben.
__________________
Liebe Grüße
Mit Zitat antworten
  #5  
Alt 24.11.2010, 18:42:54
joudii joudii ist offline
Anfänger
 
Registriert seit: Nov 2010
Alter: 39
Beiträge: 7
AW: Meldung des Kontaktformulars soll nicht in neuem Fenster kommen

Die erste Variante ist wohl die beste für mich. Bin noch ein Newbie auf dem Gebiet und froh, dass ich mittlerweile html und css beherrsche. Mit JS und Ajax habe ich noch gar keine Erfahrungen.

Sorry, dass ich mich so blöd anstelle, aber wo genau hast du das eingefügt? Ich finde die Stelle im php-Code nicht... Du hast das in die Datei eingefügt, die das Formular verarbeitet oder?
Mit Zitat antworten
  #6  
Alt 24.11.2010, 19:29:50
Benutzerbild von rarios
rarios rarios ist offline
Member
 
Registriert seit: Jun 2006
Beiträge: 655
AW: Meldung des Kontaktformulars soll nicht in neuem Fenster kommen

Naja so schwer ist es doch nicht die Stelle zu finden...

PHP-Code:
 } else {
    echo 
'<h3>Kontaktformular</h3>';
    echo 
$fehler;
    echo 
'<p><a href="kontakt.php">zurück</a></p>';
    }
    echo 
'</div>';    

    
// Session unset
    
unset($_SESSION['CAPTCHA_RndText']); 
habe ich durch den o.g. Teil ersetzt
__________________
Liebe Grüße
Mit Zitat antworten
  #7  
Alt 24.11.2010, 23:58:15
R4Zz0R R4Zz0R ist offline
Junior Member
 
Registriert seit: Sep 2009
Ort: Wetzlar/Kassel
Alter: 35
Beiträge: 201
AW: Meldung des Kontaktformulars soll nicht in neuem Fenster kommen

also ...
Ich würde es ein wenig anders machen!
Du machst in deine php datei in der alles angezeigt werden soll folgendes

(pseudocode)
PHP-Code:
<?php
if(isset($_POST['eintrag'])) {
include(
"verarbeiten.php");
}
?>
und machst aus dem verarbeitungscode den teil am ende

PHP-Code:
else {
    echo 
'<h3>Kontaktformular</h3>';
    echo 
$fehler;
    echo 
'<p><a href="kontakt.php">zurück</a></p>';
    }
    echo 
'</div>';    

    
// Session unset
    
unset($_SESSION['CAPTCHA_RndText']); 
zu sowas

PHP-Code:
else {
      
$errorflag 1;
    } 
in deine phpdatei in der du alles anzeigen lässt setzt du nun eine einfach überprüfung ein:

PHP-Code:
if($errorflag === 1) {
    echo 
'<h3>Kontaktformular</h3>';
    echo 
$fehler;
    echo 
'<p><a href="kontakt.php">zurück</a></p>';
    echo 
'</div>';    
    
// Session unset
    
unset($_SESSION['CAPTCHA_RndText']); 

im formular setzt du nun anstelle der php datei die das ganze verarbeiten soll die datei ein auf der du das kontaktformular anzeigen lässt und von der aus es gesendet wird.

sollte eigentlich (sofern ich jetzt von der logik her keinen fehler habe) funktionieren.

ansonsten mach doch mal einen nopaste mit dem quelltext der seite in der du das formular anzeigen lässt und ich bastel es dir so weit weil du möchtest ja das das auf der selben seite angezeigt wird wie die auf der du das formular absenden lässt oder verstehe ich dich da falsch ? :D

LG
R4Zz0R
__________________
Wachsen kann man entweder:

Körperlich -> Man wird größer.
^ Ist so von der Evolution gewollt.

Charakter -> Man wird Geduldiger.
^ Man wächst mit der aufgabe

Kopf -> Man wird Klüger.
^ Wenn die aufgabe probleme macht & man trotzdem deine lösung findet.
Mit Zitat antworten
  #8  
Alt 25.11.2010, 08:37:31
joudii joudii ist offline
Anfänger
 
Registriert seit: Nov 2010
Alter: 39
Beiträge: 7
AW: Meldung des Kontaktformulars soll nicht in neuem Fenster kommen

Das hört sich genau so an, wie ich es haben will :)

Zitat:
Zitat von R4Zz0R Beitrag anzeigen
ansonsten mach doch mal einen nopaste mit dem quelltext der seite
Wie geht das denn? Habe gerade bei Wikipedia gelesen, dass das eine Methode ist, Quellcodes öffentlich einzusehen. Aber wie stell ich das an?
Mit Zitat antworten
  #9  
Alt 25.11.2010, 11:37:37
R4Zz0R R4Zz0R ist offline
Junior Member
 
Registriert seit: Sep 2009
Ort: Wetzlar/Kassel
Alter: 35
Beiträge: 201
AW: Meldung des Kontaktformulars soll nicht in neuem Fenster kommen

auf der seite http://nopaste.info :D

nachdem du den quelltext da abgesendet hast bekommst du einen link den du mir nurnoch hier posten musst :D ist weniger umständlich als den code vin hier zu übernehmen und zu ändern :D
__________________
Wachsen kann man entweder:

Körperlich -> Man wird größer.
^ Ist so von der Evolution gewollt.

Charakter -> Man wird Geduldiger.
^ Man wächst mit der aufgabe

Kopf -> Man wird Klüger.
^ Wenn die aufgabe probleme macht & man trotzdem deine lösung findet.
Mit Zitat antworten
  #10  
Alt 25.11.2010, 12:02:09
joudii joudii ist offline
Anfänger
 
Registriert seit: Nov 2010
Alter: 39
Beiträge: 7
AW: Meldung des Kontaktformulars soll nicht in neuem Fenster kommen

Vielen Dank, dass du so viel Geduld mit mir hast!

Hier der Link von dem Kontaktformular:

http://nopaste.info/2e074d6f5d.html

und hier der von der Verarbeitungsdatei:

http://nopaste.info/def4205f85.html
Mit Zitat antworten
Antwort

Stichworte
container, fenster, formular, neues


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Webseite in neuem Fenster aus Datenbank öffnen kia0907 PHP Grundlagen 2 25.02.2009 19:30:44
Link in neuem Fenster automatisch öffnen agrossm HTML, CSS und JavaScript Help! 2 13.05.2008 19:41:56
Problem mit Session-Vars und neuem Fenster DarkStar PHP für Fortgeschrittene und Experten 1 10.03.2006 18:33:36
in neuem Fenster pdf-Datei darstellen Tikiwiki PHP für Fortgeschrittene und Experten 5 11.04.2005 12:59:26
Trotz Strict Links in neuem Fenster? Dan HTML, CSS und JavaScript Help! 7 23.07.2004 21:05:41


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:22:50 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt