php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 01.10.2009, 16:59  
Benutzer
 
Registriert seit: 18.09.2009
Beiträge: 32
PHP-Kenntnisse:
Anfänger
kleiner57990 befindet sich auf einem aufstrebenden Ast
Standard Mit der POST methode mit einen Button auf zwei verschieden setie verlinken.

Hallo at all.

hab mich jetzt schon dumm gegooglet aber leider nichts gefunden vielleicht hat ihr jemand eine gute idee.

Und zwar möchte ich das wenn man auf den button Senden klikt und alle felder richtig ausgefüllt sind er mich auf Seite b verlinkt.

Ist dies jedoch nicht der fall soll er sich auf die eingabe seite wieder verlinken in der man die benötigten felder dann ausfüllen kann.

Hat jemand eine idee ihr zu wäre euch sehr verbunden
kleiner57990 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 01.10.2009, 19:46  
Erfahrener Benutzer
 
Benutzerbild von ChillSn
 
Registriert seit: 28.07.2009
Beiträge: 267
PHP-Kenntnisse:
Fortgeschritten
ChillSn befindet sich auf einem aufstrebenden Ast
ChillSn eine Nachricht über Skype™ schicken
Standard

Schau mal hier in der Tutorial-Sektion unter dem Stichwort Affenformular.

Gruß, ChillSn
__________________
PHP-Code:
while($humans>=2)
       
war(); 
ChillSn ist offline  
Alt 01.10.2009, 19:52  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.269
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Bau dir ein Affenformular und wenn es korrekt ausgefüllt wurde leitest du auf Seite B weiter mit header(). Die POST-Daten gehen dann verloren, aber du kannst sie in einer Session zwischenspeichern oder eine HTTP-Request-Klasse - zum Verschicken von POST-Daten ohne Formular - verwenden.
Chriz ist gerade online  
Alt 05.10.2009, 13:24  
Benutzer
 
Registriert seit: 18.09.2009
Beiträge: 32
PHP-Kenntnisse:
Anfänger
kleiner57990 befindet sich auf einem aufstrebenden Ast
Standard

Danke für eure hilfe aber ich habe es aus irgendeinen grund nicht hinbekommen.
Also möchte ich das ganze anders machen und zwar hab ich eine datei(bsp.datei) zwei HTML siete (bsp:erfolg.php und misserrfolg.php).

Im test sieht das ganze dan so aus
PHP-Code:
<?php
$errors
= array("KNRANR" "telefon" "DOa" "PLZWa" "SHa" "NVK" "SO" ,"NDS" ,
 
"NVB" "K" "BLZ" ,"radiobutton3" "radiobutton4" "Konto" "radiobutton1" ,
 
"Nc" "SHc" "PLZWc" , )
?>
<?php
if (isset($_POST["Senden"])) {

    if (!isset(
$_POST["KNRANR"]) || !trim($_POST["KNRANR"])) {
        
$errors["count"]++;
        
$errors["knranr"] = true//das geht dan so weiter bis ich alle durch habe

if ($errors["count"] >= 2) {
    echo 
'   Bitte alle rot markierten Felder ausfüllen  ';
    
$fehlerknranr  =17;//das geht dan soweiter bis ich alle durch habe
}
else if (isset(
$errors['knranr'])) {
    echo 
'TEST';
    
$fehlerknranr =17;//das geht dann auch soweiter bis alle durch sind
}
?>
<?php
}
else
{
if(isset(
$errors)==0)
?>
//Ihr ist dan der HTML code für erfolg.php
?>
<?php
}
if ((isset(
$_POST["Senden"]) && $errors>0) OR !isset($_POST["Senden"])) {
?>
//hier ist der HTML code für misserfolg.php
Doch problem ist zu beginn zeigt er beide formulare eine unter der anderen an sobald ich dan Daten senden drück leiter er mich weiter auf misserfolg.php und dort bleibt er dann auch, selbst wenn ich alle felder richtig ausfülle.
Bin am verzweiflen kann mir da jmd weiterhelfen oder ein guten tipp geben
kleiner57990 ist offline  
Alt 05.10.2009, 13:45  
Benutzer
 
Benutzerbild von ALEC23
 
Registriert seit: 25.08.2009
Beiträge: 80
PHP-Kenntnisse:
Anfänger
ALEC23 befindet sich auf einem aufstrebenden Ast
Standard

Schau Dir mal diese Zeile an

Zitat:
Zitat von kleiner57990 Beitrag anzeigen
if(isset($errors)==0)
und dann Deine anderen Bedingungen an. Habe jetzt weiter oben im Code noch nicht geschaut.
ALEC23 ist offline  
Alt 05.10.2009, 13:50  
Benutzer
 
Registriert seit: 18.09.2009
Beiträge: 32
PHP-Kenntnisse:
Anfänger
kleiner57990 befindet sich auf einem aufstrebenden Ast
Standard

Die sind doch richtig oder nicht?

PHP-Code:
if (isset($errors)==0
gib erfolg.php aus

PHP-Code:
if ((isset($_POST["Senden"]) && $errors>0) OR !isset($_POST["Senden"])) { 
gib misserfolg.php aus
kleiner57990 ist offline  
Alt 05.10.2009, 13:50  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Bei einem Affenformular muss man nicht mit header/location herumhüpfen. Einfach eine Steuerdatei bauen, welche dann die benötigten Seiten nachlädt:

PHP-Code:
$anzeigen 'formular.php';
$err = array();

if ( isset(
$_POST['formular']) ) {
  
// Formular wurde abgeschickt. Prüfen, ob alles ok ist
  
if ( $empty($_POST['name']) ) {
    
$err[] = 'Bitte geben Sie Ihren Namen ein.';
  }
  if ( 
$empty($_POST['email']) ) {
    
$err[] = 'Bitte geben Sie Ihre Emailadresse ein.';
  }

  
// Sind Fehler festgestellt worden?
  
if ( count($err) == ) {
    
// alles ok

    // Daten verarbeiten (Speichern, Mailen, was auch immer)
    
$anzeigen 'danke.php';
  }
}

include (
$anzeigen); 
Das als Beispiel für ein Formular mit nur 2 Feldern. Der Rest ist trivial.
Wolla ist offline  
Alt 05.10.2009, 13:58  
Benutzer
 
Registriert seit: 18.09.2009
Beiträge: 32
PHP-Kenntnisse:
Anfänger
kleiner57990 befindet sich auf einem aufstrebenden Ast
Standard

Ja so funktioniert es ja auch aber ich wollte sie ja auf zwei verschieden seite schiken einmal misserfolg wenn was nicht klappt(und wenn man die seite zum ersten mal aufruft) und erfolg.php wen es klappt.

Dan habe ich ihr im forum den tipp mit einen affenforumlar bekommen und habe sofort versucht dies umzusetzen doch dann bekamm ich immer ein fehler meldung das daten nicht abgeschikt werden konnte weil schon was gesendet wurde(kenn den fehler begriff nicht mehr genau)nach dem ich den fehler geoogelt hatte und alle leerzeichen etc kontrollierte funkt es immer nocht nicht es kam immer der gleiche fehler.

Dann fand ich bei google die zweite variante die die ich gerade am versuchen bin.

Und deine variante habe ich getest die funktioniert nicht so richtig da err ja immer =0ist oder hab ich das nur falsch gemacht?

Geändert von kleiner57990 (05.10.2009 um 14:03 Uhr).
kleiner57990 ist offline  
Alt 05.10.2009, 14:11  
Benutzer
 
Benutzerbild von ALEC23
 
Registriert seit: 25.08.2009
Beiträge: 80
PHP-Kenntnisse:
Anfänger
ALEC23 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von kleiner57990 Beitrag anzeigen
Und deine variante habe ich getest die funktioniert nicht so richtig da err ja immer =0ist oder hab ich das nur falsch gemacht?
Wieso? Du zählst doch mit count($err) alle Elemente im Array $err. Wenn diese gleich null sind, dann wird ist die Bedingung erfüllt und der Codeblock wird ausgeführt. Diese Werte werden in Wollas Code z.B. mit $err[] = 'Bitte geben Sie Ihre Emailadresse ein.'; dem Array hinzugefügt.
ALEC23 ist offline  
Alt 05.10.2009, 14:17  
Benutzer
 
Registriert seit: 18.09.2009
Beiträge: 32
PHP-Kenntnisse:
Anfänger
kleiner57990 befindet sich auf einem aufstrebenden Ast
Standard

ach so das beudeta also das ich meine ganze count++ wegmachen muss?

Sorry wenn meine fragen dumm klingen bin noch ziemlicher anfänger und das ist mein erste mal mit arrays

PHP-Code:
<?php
$anzeigen
="laboschueler2.php";
$errors=array();
?>

<?php
if (isset($_POST["Senden"])) {

    if (!isset(
$_POST["KNRANR"]) || !trim($_POST["KNRANR"])) {
        
$errors["count"]++;
        
$errors["knranr"] = true;
    }
//immer soweiter bis ich sie alle eingetippt habe
if ($errors["count"] >= 2) {
    echo 
'   Bitte alle rot markierten Felder ausfüllen  ';
    
$fehlerknranr  =17;//immer so weiter bis ich sie alle eingetippt habe
}
else if (isset(
$errors['knranr'])) {
    echo 
'Bitte Kunden bzw Abonummer angeben!';
    
$fehlerknranr =17;//immer so weiter bis ich sie alle eingetippt habe

?>
<?php
}
if (
count($errors)==0){
?>
erfolg seite
<?php
}
if ((isset(
$_POST["Senden"]) && $errors>0) OR empty($_POST["Senden"]))
{

?>
miss erfolg seite
Beim aufruf der seite zeigt er beide formulare an, drücke ich dan den SENDEn knopf ohne was anzugeben, bleibt nur noch die misserfolg seite das ist auch richtig, allerdings sobald ich alles ausgefüllt habe schikt er mich zu der erfolg.php seite was auch richtig ist doch unter dieser seite zeite er mir immer noch die misserfolg.php seite an

Geändert von kleiner57990 (05.10.2009 um 14:39 Uhr).
kleiner57990 ist offline  
 


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] Per POST Methode Text mit "</textarea> PHP Tipps 2005-2 3 25.10.2005 14:46
Probleme mit der post methode PHP Tipps 2005-2 19 28.09.2005 15:28
wiedermal ein kleines problem mit der post methode Tic Rederon PHP Tipps 2005-2 4 23.08.2005 08:59
post methode Tic Rederon PHP Tipps 2005-2 17 09.08.2005 14:35
Form Button Verlinken HTML, Usability und Barrierefreiheit 6 02.02.2005 21:35

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
button verschieden verlinken, formular button verlinken und post, verlinken button php, methode post ohne button, \get/button.php\, get button php, post methode html mit 2 buttons, felder ausfüllen mit post methode

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:56 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