wenn $_POST[]; nicht übergeben string mit '0' füllen?

seomaniac

Grünschnabel
Guten Abend liebe Comm,

Ich stehe wiedermal vor einem übergabe Problem und zwar:

habe eine .php die per $_POST(''); übergebenen Werte von verschiedenen Formularen
bearbeiten soll.

Jetzt zu dem eigentlichem Poblem welches mir Kopfschmerzen bereitet
und ich leider an dieser Stelle ziemlich lang Geknabbert habe:

in Form1 wird z.b.: "name" und "vorname"
angegeben die per $_POST übermittelt werden,

in dem anderen Form2 aber: "name", "vorname" und eine "nummer"

wenn ich aber nun von Script1 weiterleite findet mein Script "nummer" nicht und es treten
Fehler auf.

Wie kann ich es nun Regeln dass, wenn "nummer" nicht im Form vorhanden ist,
also nicht übermittelt wird
PHP:
$nummer = $_POST['nummer'];
mit
PHP:
 $nummer = '';
ersetzt bzw ein wert zugewiesen wird und wenn
bei form2 dann etwas Übermittelt wird der Wert aus dem Feld zugewiesen wird?

...
Dies hier Funktioniert leider nicht:
PHP:
if ( !isset($_POST['nummer'])) { $nummer = '';};

Vielen lieben Dank und noch einen guten Rutsch ins neue Jahr :)
 
Wenn du zwei Forms hast, musst du auch zwei Submit-Buttons haben. Jeder Button ist nur für SEIN Form verantwortlich.

<form1>
<zelle1>
<zelle2>
<submit1>
</form1>

<form2>
<zelle1>
<zelle2>
<submit2>
</form2>

Das nur kurz zur Veranschaulichung. Du kannst, wenn du bei Form1 auf Submit klickst, nicht auf die Werte von Form2 zugreifen und umgekehrt.

Gruß

PS: Theoretisch müsste deine Lösung funktionieren, nur einen Strichpunkt braucht man am Ende einer if-Abfrage sicherlich nicht. ;)
 
Hallo,

die IF-Bedingung passt und müsste eigentlich funktionieren!

wenn ich aber nun von Script1 weiterleite findet mein Script "nummer" nicht und es treten
Fehler auf.
Wohin weiterleiten?
Allerdings so wie ich dich verstanden habe, hast du ein Skript für zwei Formulare.


Wenn du den String $nummer mit 0 füllen willst (wie im Thread-Titel), wenn er nicht existiert, dann müsste es so heißen:
PHP:
if ( !isset($_POST['nummer']) ) $nummer = '0';

Guten Rutsch ;)
 
comfreak, ich habe etwas vergessen zu erwähnen:

die beiden form werden vorher per dropdown ausgewählt und das eine unterscheidet sich minimal von dem anderen, die rechnung allerdings ist gleich :)

so funktioniert es:
PHP:
if ( !isset($_POST['nummer']) ) $fn = '0';
if ( isset($_POST['nummer']) ) $fn = $_POST['nummer'];
echo $nummer;

oder gibts es noch einen besseren weg?

/e: was haben dann die geschweifen klammern zu bedeuten, ich hatte die funktion schon, hatte aber nicht funktioniert :D ->

falsch:
PHP:
if ( !isset($_POST['nummer'])) { $nummer = '0';};
if ( isset($nummer )) { $i4 = $_POST['nummer'];};

nochmal ein dickes danke an euch beide :)
 
Zuletzt bearbeitet:
comfreak, ich habe etwas vergessen zu erwähnen:

die beiden form werden vorher per dropdown ausgewählt und das eine unterscheidet sich minimal von dem anderen, die rechnung allerdings ist gleich :)

so funktioniert es:
PHP:
if ( !isset($_POST['nummer']) ) $fn = '0';
if ( isset($_POST['nummer']) ) $fn = $_POST['nummer'];
echo $nummer;

oder gibts es noch einen besseren weg?

/e: was haben dann die geschweifen klammern zu bedeuten, ich hatte die funktion schon, hatte aber nicht funktioniert :D ->

falsch:
PHP:
if ( !isset($_POST['nummer'])) { $nummer = '0';};
if ( isset($nummer )) { $i4 = $_POST['nummer'];};

nochmal ein dickes danke an euch beide :)
So wie ich es geschrieben habe, nur mit einer null im hinteren String:
PHP:
$fn = isset( $_POST['nummer'] ) ? $_POST['nummer'] : '0';

Gruß
 
Seomaniac, du hast einen Fehler in deinen If-Abfragen. Theoretisch sind die richtig, aber die Syntax ist falsch. ;)

PHP:
if ( !isset($_POST['nummer'])) { $nummer = '0';}; 
if ( isset($nummer )) { $i4 = $_POST['nummer'];};

du darfst hinter den geschwungenen Klammern kein Semikolon (Strichpunkt) machen!
€: Mir fällt gerade auf, du behandelst bei der 1. Abfrage den $_POST von nummer, und beim 2. die Variable nummer, die du kurz zuvor gesetzt hast, falls sie nicht da war. Also wird die 2. if-Abfrage immer ausgeführt... Absicht?

PHP:
if ( !isset($_POST['nummer'])) { $nummer = '0';}
if ( isset($nummer )) { $i4 = $_POST['nummer'];}

Gruß, Lime

PS: Wenn du zwei if-Abfragen hast, die genau entgegengesetzte Regeln abfragen, dann kannst du statt zwei if-Abfragen eine if-else-Abfrage machen, wie bereits oben geschrieben.
 
Zuletzt bearbeitet:
Zurück