php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2004-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 22.12.2004, 17:50  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 311
kampfnickel
Standard php mit formularen

tag, ich mal wieder ^^
die Syntax von JS und PHP ist ja so ziemlich ähnlich, also dürfte doch auch der Funktionsaufbau so sein, wie bei JS oder?
also:
Code:
<?
function pruefen() {

if (zahl < 25) {
echo "richtig";
} else {
          echo "falsch";
          }
}
?>

<form method="post" action="andere_seite.php">
  <input type="submit" value="senden" onClick="pruefen()">
</form>
(das ist jetzt nur ein Beispiel, also keine richtige Anwendung)

weil ich will eine if abfrage machen und erst wenn sie "true" ist, soll eine andere Seite aufgerufen werden. das mit der anderen Seite dürfte ja durch das attribut "action='andere-seite.php' " geschehen oder? (wenn ich das so richtig verstanden habe)
kann mir vielleicht jemand den code dafür geben, für so eine richtige if anweisung, die geht, dass ich etwas habe, wo ich mal "nachschlagen" kann?!
oder anders gefragt, wie kann ich es in php machen, dass man auf eine bestimmte Seite weiter geleitet wird, erst "nachdem" die if funktion erfüllt worden ist. wie kann ich das einem Button (oder Submit) mitteilen?
__________________
Rollt nen Ball und die Ecke und ist weg!
kampfnickel ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 22.12.2004, 17:52  
Gast
 
Beiträge: n/a
Standard

Das geht nicht, PHP greift erst wieder beim Laden der nächsten Seite. Sowas kannst du nur mit JS oder einer anderen clientseitigen Sprache lösen. Und wenn du JS sowieso kannst, dann weißt du ja, wie dein Problem zu lösen ist. Das Blöde dabei ist nur, dass es überhaupt keine Prüfung gibt, wenn man JS deaktiviert hat.
 
Alt 22.12.2004, 17:53  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 311
kampfnickel
Standard

hm.. ich sachen JS hab ich auch keine ahnung, nur so ein bisschen, wie jetzt das mit der einfachen if funktion und so nen paar kleinigkeiten.
also eher mangelhaft

edit: und welche Lösung gibt es dann in PHP dafür? wenn es überhaupt eine gibt
__________________
Rollt nen Ball und die Ecke und ist weg!
kampfnickel ist offline  
Alt 22.12.2004, 17:59  
Gast
 
Beiträge: n/a
Standard

Du schickst das Formular ab und überprüfst die Eingaben auf der nächsten Seite.
 
Alt 23.12.2004, 11:49  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 311
kampfnickel
Standard

also erst ganz normal das Formular erstellen, ohne PHP, dies dann abschicken und auf der nächsten Seite kann ich dann wo ich die Daten stehen habe aus dem Formular diese IF Funktion erstellen?!
also abfragen ob die Daten alle richtig sind oder ob ggf. welche fehlen?!
__________________
Rollt nen Ball und die Ecke und ist weg!
kampfnickel ist offline  
Alt 23.12.2004, 12:03  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ein kleines, sich eigentlich selbst erklärenden beispiel:
PHP-Code:
<?php
   
   session_start
();

   if( isset(
$_POST['sent']) )
   {
        
/**
          *   Irgendwelche Funtkionen aufrufen und eventuell irgendwohin
          *   weiterleiten oder so .. z.B. per header() 
          *   auf genau diese Seite, um in den ELSE-Zweig zu kommen.
          */

        
if( strcmp(trim($_POST['foo']),'') == 
            
||
            
strcmp(trim($_POST['bar']),'') == )
        {
            
$_SESSION['foo'] = $_POST['foo'];
            
$_SESSION['bar'] = $_POST['bar'];

            
header'Location: ' $_SERVER['PHP_SELF'] . '?error=' );
        }

        
/**
          *   noch irgendwas machen .. eventuell auch noch ein innerer
          *   ELSE-Zweig. Ist jedem selbst Ã¼berlassen und hängt davon ab,
          *   was eigentlich geschehen soll.
          */

   
}
   else
   {
        
/**
          *   z.B. das Formular anzeigen
          *   Bei einer inkorrekten Eingabe erscheint eine Fehlermeldung.
          */        

        
if( isset($_GET['error']) )
        {
             echo 
'<strong style="color:#ff0000;">Fehler. Ãœberprüfen Sie die Eingaben.[/b]';
        }

        
printf'<form method="post" action="%s">
                  <input type="text" name="foo" value="%s" />
                  <input type="text" name="bar" value="%s" />
                  <input type="hidden" name="sent" value="1" />
                  <input type="submit" name="absenden" value="weg damit" />'
,
               
$_SERVER['PHP_SELF'],
               
$_SESSION['foo'],
               
$_SESSION['bar']); 
        
        
session_destroy(); 
   }
   

?>
grüße ben
imported_Ben ist offline  
Alt 23.12.2004, 12:13  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 311
kampfnickel
Standard

vielleicht nicht ganz so "selbsterklärend" für einen, der noch kaum ahnung von php hat. also so zum teil isses klar, was passiert/passieren soll, nur so ein paar Befehle sagen mir noch gar nichts, müsste ich selbst erst alle nachgucken, so wie:
strcmp
trim(das heÃ*ß ja soweit ich weiß irgendwas mit anpassen?!)
$_SESSION
header (denke, dadurch kommt man dann auf eine andere seite, wenn man das "location" sieht in der Klammer)
printf
$_SERVER
session_start/"_destroy (da denke ich mal, dass das die "Funktion" sein soll, wo sie beginnt und aufhört)

MfG
__________________
Rollt nen Ball und die Ecke und ist weg!
kampfnickel ist offline  
Alt 23.12.2004, 12:27  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von kampfnickel
müsste ich selbst erst alle nachgucken
dafür gibt es das manual
http://php.net/funktionsname

Zitat:
Zitat von kampfnickel
strcmp
vergleicht zwei zeichenketten.
man könnte auch schreiben
Code:
if( $var1 == $var2 )
aber dagegen sträube ich mich.

Zitat:
Zitat von kampfnickel
trim
schneidet alle leerzeichen am anfang und am ende der variable ab.

Zitat:
Zitat von kampfnickel
$_SESSION
das superglobale array $_SESSION.
das ist keine funktion.
über sessions kannst du hier ne menge nachlesen:
http://php.net/session

Zitat:
Zitat von kampfnickel
header
hat verschiedene anwendungsbereiche. einer davon ist die weiterleitung.
beachte den manualeintrag .. du wirst zu 98% eine fehlermeldung erhalten. einfach mal nach diese fehlermeldung im forum oder auf http://php-faq.de suchen .. du wirst fündig.

Zitat:
Zitat von kampfnickel
printf
eine form der strukturierten, formatierten ausgabe. ich hätte auch alles per echo ausgeben lassen können .. das ist mir aber zu unübersichtlich.

Zitat:
Zitat von kampfnickel
$_SERVER
erstelle eine datei mit folgendem inhalt
PHP-Code:
<?php

   phpinfo
();

?>
da findest du ganz unten den inhalt des arrays $_SERVER .. schau mal rein

Zitat:
Zitat von kampfnickel
session_start/"_destroy
startet und beendet eine session.
session destroy habe ich hier nur verwendet, damit ich die arrayelemente $_SESSION['foo'] und $_SESSION['bar'] nicht immer einzelnd zurücksetzen muss, wenn ich nen neuen test mache

das mal so in kürze .. der rest steht im manual.

grüße ben.
imported_Ben ist offline  
Alt 23.12.2004, 12:53  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 311
kampfnickel
Standard

danke
dann werde ich mich da mal ordentlich dahinter setzen und versuchen zu verstehen was ich lese ^^
__________________
Rollt nen Ball und die Ecke und ist weg!
kampfnickel ist offline  
Alt 23.12.2004, 12:54  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

bei fragen .. weißt du ja wo du hilfe finden kannst
imported_Ben 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
Reset Button bei Formularen TeazY PHP Tipps 2008 2 24.12.2007 14:59
Programm zum erstellen von Formularen cycap Beitragsarchiv 2 30.07.2007 23:12
Datenvererbung bei Formularen udn Fehlermeldungen Sonja PHP Tipps 2005-2 1 11.10.2005 10:42
Pflichfeld bei formularen PHP Tipps 2005-2 7 04.10.2005 19:02
Sonderzeichen & in Formularen und MySQL PHP Tipps 2005-2 4 25.08.2005 19:42
Problem mit Formularen seit register_globals=off PHP Tipps 2005-2 28 22.08.2005 16:35
ENTER bei Formularen lomtas PHP Tipps 2005 2 07.04.2005 13:45
HTML_QuickForm Problem mit validate() und zwei Formularen El Barto PHP-Fortgeschrittene 6 06.04.2005 09:07
Variablenübergabe bei Formularen PHP Tipps 2004-2 4 15.12.2004 19:23
courser-Tasten in Formularen?! HTML, Usability und Barrierefreiheit 1 22.10.2004 17:51
Mehrfach-Auswahl in Formularen HTML, Usability und Barrierefreiheit 4 17.09.2004 20:37
Problem in formularen mit sprachausgabe PHP Tipps 2004 6 03.08.2004 23:34
Variablenübergabe bei Formularen? PHP Tipps 2004 5 03.08.2004 09:47
Abhängige Ausgabe der www-Adresse in Formularen? PHP Tipps 2004 2 19.07.2004 16:35
Enctype bei Formularen HTML, Usability und Barrierefreiheit 2 18.07.2004 16:06


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