PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   is_numeric im Formular (http://www.selfphp.de/forum/showthread.php?t=11713)

fips 12.11.2005 19:03:40

is_numeric im Formular
 
Hallo!

Ich habe ne kurze Frage:

Ich verwende in einem Formular folgendes:

Um leere Felder zu prüfen:
PHP-Code:

if (isset($_POST['submit']) and empty($_POST['miete'])){echo $de["error_miete"];echo $de['br']; $_POST[errorcode] = "1";}; 

Um zu prüfen ob deren Eingabe numerisch ist:
PHP-Code:

if (isset($_POST['submit']) and isset($_POST['miete']) and is_numeric($_POST['miete'])){}else{echo $de["error_miete_numeric"];echo $de['br']; $_POST[errorcode] = "1";}; 


Nun habe ich bei der Überprüfung ob der Wert numerisch ist das Problem dass
diese if Abfrage schon beim ersten Aufruf erfolgt und die Fehlermeldung
ausgegeben wird.

Wie mach ich das richtig??

feuervogel 12.11.2005 22:05:37

AW: is_numeric im Formular
 
du machst nicht sowas sinnloses wie if( bedingung ) {#leer#} else {#befehle#}. denn der elsezweig tritt ja immer ein.

schreib lieber sowas hier:
PHP-Code:

if ( isset($_POST['submit']) and ( !isset($_POST['miete']) or !is_numeric($_POST['miete'] ) ) ){echo $de["error_miete_numeric"];echo $de['br']; $_POST[errorcode] = "1";} 

und das semikolon nach der letzten klammer habe ich gelöscht.

fips 13.11.2005 09:40:16

AW: is_numeric im Formular
 
Danke!

Ich bin nun schon ein paar Stunden davor gesessen aber ich bekomms einfach nicht dann das dieses Formular gesendet wird wenn der errocode 0 ist und submit belegt ist.

Das schaut dann folgendermaßen aus:

PHP-Code:

if (isset($_POST['submit']) and $senden == 2) {
     echo 
"Speicherfunktion aufrufen!";
   }
   else
   {

FORMULAR AUSGEBEN
        
if($_POST[errorcode] == 0) {$senden 2;}


Warum funktioniert das so nicht?

Zu sehen is das Ganze hier sobald die Pflichtfelder korrekt belegt sind wird unten die Variable Errocode und Senden
eingeblendet, die Werte passen aber er spring oben nicht in die if Bedingung.

Ich bin echt am verzweifeln, ich sitze nun schon Stunden davor bekomms aber nicht hin.

feuervogel 13.11.2005 10:36:27

AW: is_numeric im Formular
 
ich weiß echt nicht, was du willst.

"formular senden" bedeutet für mich: der benutzer klickt auf den submit-button des formulars. ob er das tut und unter welchen bedingungen, kannst du mit php nicht überprüfen.

wenn error-code == 0 und submit belegt sieht so aus:
PHP-Code:

if( $_POST'errorcode' ] == && !empty($_POST'submit' ] ) ) {

//code




fips 13.11.2005 12:15:12

AW: is_numeric im Formular
 
Hi!

Danke für die Antwort und deine Geduld, leider funktioniert das auch nicht.

Ich hab das komplette Script nun mal in ne txt kopiert und hier hinkopiert.

Wär toll wenn du kurz reinschauen könntest. DANKE!

feuervogel 13.11.2005 12:22:52

AW: is_numeric im Formular
 
so lange du es nicht kommentierst, ich nicht weiß, was du willst und ich keine zeit habe, werde ich nicht reingucken.

fips 13.11.2005 13:20:28

AW: is_numeric im Formular
 
Sorry!

Ja das Problem ist ist dass das Formular nun ohne die Eingaben zu prüfen
speichert. D.h. es wird die If Bedingung scheinbar nicht berücksichtigt.

Ich habe die txt Datei nun nochmal überarbeitet und kommentiert,
ich hoffe das passt nun so.

Das Ganze läuft in der PHPlib, deshalb ist ein connecten zur DB nicht
nötig.

feuervogel 13.11.2005 14:27:20

AW: is_numeric im Formular
 
du willst also die daten die aus dem formular kommen auf gewisse dinge hin überprüfen und erst, wenn sie gewissen kriterien genügen, speichern?

PHP-Code:

<?php
include_once ('immo/lang/de.php');

// Prüfen ob der Errorcode 0 und und um Submit leer ist

if( $error == && !empty($_POST['submit']) ) { 

// Ausgabe des Errorcodes 
    
echo $error;

1. frage: wo kommt die variable $error her, bzw. wo wird sie gesetzt?

2. frage: nur wenn $error == 0 wird $error ausgegeben. ist das nicht leicht überflüssig?

feuervogel 13.11.2005 14:30:10

AW: is_numeric im Formular
 
am besten baust du dir mal ein winziges formular mit 1-2 feldern, und zeigst uns dann genau, wie du vorgehen willst.

fips 13.11.2005 16:44:55

AW: is_numeric im Formular
 
Also ich hab nun ein kleines Formular geschrieben, so wie ich mir das
vorgestellt hab.

Egal was ich mache, er speichert das Formular nach dem Submit und
prüft die Felder nicht.

Hier der Code:
[PHP<?php

$de['br'] = "<br />";


if( $error == 0 && !empty($_POST['submit']) ) {

echo "Daten in DB schreiben";

}
else
{

echo "Formular ausgeben";

echo "<form id=\"add_item\" action=\"test.php\" method=\"post\">\n";
if (!isset($_POST['submit'])) {
$error = 1;}

// TExtfeld
if (isset($_POST['submit']) and empty($_POST['name'])){echo $de["error_name"];echo $de['br']; $error = 1;};
echo "<label for=\"name\">".$de['t1_name']."</label><input type=\"text\" name=\"name\" class=\"input-text\" maxlength=25 value=\"$_POST[name]\" />".$de['br'];

if (isset($_POST['submit']) and empty($_POST['telefon'])){echo $de["error_telefon"];echo $de['br']; $error = 1;};
echo "<label for=\"telefon\">".$de['t1_telefon']."</label><input type=\"text\" name=\"telefon\" class=\"input-text\" maxlength=25 value=\"$_POST[telefon]\" />".$de['br'];

// Textfeld

echo "<input type=\"submit\" value=\"Anzeige eintragen\" name=\"submit\" />\n";
echo "</div>";
echo "</form>";
echo $de['br'];
echo "<br /><br />";
echo "<b>Der Errorcode lautet ".$error."</b>";
echo "<br />";
}
?>[/PHP]

Und hier steht es
zum testen bereit.

DANKE


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:40:15 Uhr.

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