Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
09.08.2006, 11:27
Hype_nrw



Hi,

ich lerne erst seit gestern php, und komme nun nicht weiter.
mein problem ist das ich ein Formular habe welches bei nichteingabe von daten melden soll das etwas fehlt. also "Name vergessen".
das formular geht auch super, allerdings nicht die message!
ich hoffe ihr könnt mir helfen!

CODE:

----------------------------------------------------------------------------------------------------------------

TEST.PHP

<html>
<body>

<u><b>Bitte geben Sie Ihre Daten ein:</b></u>

<br>
<br>

<form action="test2.php" method="POST">
<input name="vorname"> Vorname <p>
<input name="nachname"> Nachname <p>
<input name="email"> E-Mailadresse <p>
<input type="submit" value="OK">
<input type="reset" value="Zurücksetzen">

</body>
</html>

----------------------------------------------------------------------------------------------------------------

TEST2.PHP

<?php

if (empty($vorname)) {
$error = 1;
$msg = "Vorname vergessen";
}

if (empty($nachname)) {
$error = 1;
$msg. = "Nachname vergessen";
}

if (empty($email)) {
$error = 1;
$msg. = "E-Mail vergessen";
}

if $error == 1) {
echo $msg
}
else
{

?>

<html>
<body>

<u><b>Sie haben folgendes eingegeben:</b></u>

<br>
<br>

<?php
echo "Vorname: " ;
echo $_POST['vorname']."<br>\n";
echo "Nachname: ";
echo $_POST['nachname']."<br>\n";
echo "E-Mailadresse: " ;
echo $_POST['email']."<br>\n";
?>

</body>
</html>

<?
}
?>

----------------------------------------------------------------------------------------------------------------

ich habe schon soviele foren durchsucht aber ich bekomm das nciht richtig hin!

--


Dieser Beitrag wurde am 09.08.2006 um 11:28 von Hype2002 bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
001
09.08.2006, 12:13
LeJean



in der test2.php könntest du das hier:
if (empty($vorname))
durch das ersetzen:
if (!$_POST('vorname'))

du solltest in der test2.php sowieso erstmal die Variablen deklarieren. Einfach so checkt php wohl nicht, dass $_POST('vorname') bei dir dasselbe sein soll wie $vorname.

-LeJean-

--

zum Seitenanfang zum Seitenende Profil || Suche
002
09.08.2006, 12:18
Megge



gibts da kein parse error?

PHP-Quellcode:<?php
if $error == 1) {
echo 
$msg
}
else
{
?>
nach dem echo $msg fehlt ein semikolon
PHP-Quellcode:<?php
echo $msg;
?>
wäre richtig

#edit
hab jetzt auch php tags mit drin 8-)

--


Dieser Beitrag wurde am 09.08.2006 um 12:48 von Megge bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
003
09.08.2006, 12:31
CN



PHP-Quellcode:<?php
if (!$_POST('vorname'))
?>
ist falsch. 1. das und 2. sieht das mit empty() besser aus
PHP-Quellcode:<?php
if(empty($_POST["vorname"]))
?>
ferner hat megge recht

achja und lern mal codetags/phptags zu benutzen

--


Dieser Beitrag wurde am 09.08.2006 um 12:37 von CN bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
004
09.08.2006, 13:07
kingduevel



darf ich ganz kurz eine zwischenfrage einwerfen? hoffentlich...

ist "$_POST" nur die kurzschreibweise von "$HTTP_POST_VARS" und absolut legitim und überall einsetzbar? oder muss man beide schreibweisen verschieden einsetzen?

--

zum Seitenanfang zum Seitenende Profil || Suche
005
09.08.2006, 13:39
Kriz



@Megge: Afair darf man bei einem einzeiligen "echo BLAH" das Semikolon weglassen:
PHP-Quellcode:<?php echo "Blubber" ?>

--

K:R-I)Z++
"CSS ist cascading style sheets. Und nicht so'n Ranzspiel." - dp
In memory of Voice († 2005/03/30)

zum Seitenanfang zum Seitenende Profil || Suche
006
10.08.2006, 01:33
theDon



Zitat:
no.plan postete
ist "$_POST" nur die kurzschreibweise von "$HTTP_POST_VARS" und absolut legitim und überall einsetzbar? oder muss man beide schreibweisen verschieden einsetzen?
HTTP_POST_VARS ist deprecated.

--

\o tanz den naziprau! o/

And more than ever, I hope to never fall,
Where enough is not the same it was before

zum Seitenanfang zum Seitenende Profil || Suche
007
10.08.2006, 14:11
Hype_nrw



danke leute,
mein problem ist behoben!

--

zum Seitenanfang zum Seitenende Profil || Suche
008
10.08.2006, 21:44
Chronial



@Megge & Kriz:
Ich glaube vor einem } ist das semikolon optional.
Aber das geht noch kürzer ;)
PHP-Quellcode:<?=$msg ?>
(ja, das ist valide und keineswegs deprecated)

--

"tsuji-giri" (japanisch) - ein neues Schwert an einem Passanten ausprobieren

zum Seitenanfang zum Seitenende Profil || Suche
009
11.08.2006, 00:20
CN



Zitat:
Ich glaube vor einem } ist das semikolon optional.
nein, das ist in perl so, aber nicht in php.

Zitat:
ist "$_POST" nur die kurzschreibweise von "$HTTP_POST_VARS" und absolut legitim und überall einsetzbar? oder muss man beide schreibweisen verschieden einsetzen?
man sollte nur noch $_POST verwenden, das andre ist veraltet

ferner hat kriz recht, das hat aber eigentlich nix mit dem thema zu tun, denn da war nix einzeiliges

chronial, streng genommen geht das auch NOCH kürzer ;) <?$msg?>.. naja. wie auch immer

--


Dieser Beitrag wurde am 11.08.2006 um 00:21 von CN bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
010
11.08.2006, 02:19
Chronial



<?$msg?> funktioniert aber nicht - der ausdruck macht genauso viel wie $msg; im normalen code.

--

"tsuji-giri" (japanisch) - ein neues Schwert an einem Passanten ausprobieren

zum Seitenanfang zum Seitenende Profil || Suche
011
11.08.2006, 03:28
theDon



<?$msg?> macht ohne Shorttags erst einmal gar nichts, genau wie <?=$msg?>.

Portabel ist das daher auch nicht.

Edit:

Zitat:
Using short tags should be avoided when developing applications or libraries that are meant for redistribution, or deployment on PHP servers which are not under your control, because short tags may not be supported on the target server. For portable, redistributable code, be sure not to use short tags.

--

\o tanz den naziprau! o/

And more than ever, I hope to never fall,
Where enough is not the same it was before


Dieser Beitrag wurde am 11.08.2006 um 03:31 von theDon bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
012
11.08.2006, 08:48
Hype_nrw



Hi Leute,
hab da eine neue Frage. Habe es vor eine textbox aufzumachen wenn etwas nicht eingegeben worden ist (funktioniert auch prima). Allerdings wird auf der 2. Seite ncihts angezeigt, alles einfach weiß. ich finde den fehler nicht!

TEST.PHP
PHP-Quellcode:<?php
<html>
<
head>
<
script language="JavaScript">
<!--
function 
EingabenUeberpruefen()
{
    var 
Fehlermeldung "";
 
    if(
document.eingabeformular.vorname.value == "")
    {
        
Fehlermeldung += "Bitte geben Sie Ihren Vornamen an!\n";
    }
 
    if(
document.eingabeformular.nachname.value == "")
    {
        
Fehlermeldung += "Bitte geben Sie Ihren Nachnamen an!\n";
    }

    if(
document.eingabeformular.email.value == "")
    {
        
Fehlermeldung += "Bitte geben Sie Ihre E-Mailadresse an!\n";
    }
 
    if(
Fehlermeldung)
    {
        
alert(Fehlermeldung);
 
        return 
false;
    }
    else
    {
        return 
true;
    }
}
// -->
</script>

</head>
<body>

<u><b><font face="arial" size="5" >Bitte geben Sie Ihre Daten ein</font>:</b></u>

<br>
<br>

<form action="test2.php" method="POST" name="eingabeformular">
<b><font face="arial">Vorname:</font></b><br>
<input name="vorname"><p>
<b><font face="arial">Nachname:</font></b><br>
<input name="nachname"><p>
<b><font face="arial">E-Mailadresse:</font></b><br>
<input name="email"><p>
<font face="arial">
<input type="Submit" value="  Senden  " onClick="return EingabenUeberpruefen();"> 
<input type="reset" value="  Zurücksetzen  ">
</font>
</form>
</body>
</html>
?>
TEST2.PHP
PHP-Quellcode:<?php
<html>
<
body>

<
u><b>Sie haben folgendes eingegeben:</b></u>

<
br>
<
br>

<?
php 

echo "Vorname: " 
echo 
$_POST['vorname'].<br>\n
echo 
"Nachname: "
echo 
$_POST['nachname'].<br>\n
echo 
"E-Mailadresse: " 
echo 
$_POST['email'].<br>\n

?>


</body>
</html>
?>

--

zum Seitenanfang zum Seitenende Profil || Suche
013
11.08.2006, 09:39
scus



hast du das html in die php tags getan, ober hat das das board automatisch getan? wenn du es warst, liegts wahrscheinlich daran...

--

sincères amitiés scus
--
Tand, Tand ist das Gebilde von Menschenhand

zum Seitenanfang zum Seitenende Profil || Suche
014
11.08.2006, 09:49
Hype_nrw



das board hat das eingefügt. also das php um den html-tag bei beiden seiten muss weg!

--

zum Seitenanfang zum Seitenende Profil || Suche
015
12.08.2006, 21:36
Chronial



Zuallererst ist dein javascript an der falschen stelle - nicht ein onClick im button, sondern ein onSubmit im <form> sollte das sein.
Weiterhin sollte dir klar sein, dass man so keine Formulardaten überprüft - das kann man ohne probleme umgehen, bzw. Leute, die javascript deaktiviert haben bekommen davon garnichts mit. Du musst das auf jeden Fall noch im php verankern - meiner Meinung nach, macht es wenig sinn, den Datencheck 2mal zu schreiben - deswegen würde ich ihn nur in php schreiben, und dann meldungen auf der Seite ausgeben - was du sowieso machen musst, wenn du Leute ohne Javascript auf deiner Seite haben willst.

Aber zu deinem Problem: Du hast das Error-handling falsch eingestellt.
Die Zeile:
echo $_POST['vorname'].<br>n;
erzeugt einen parser-error, den deine php-config scheinbar verschweigt. Wenn du diese 3 zeilen korrigierst, geht das bei mir ohne Probleme.

--

"tsuji-giri" (japanisch) - ein neues Schwert an einem Passanten ausprobieren

zum Seitenanfang zum Seitenende Profil || Suche
016
12.08.2006, 22:42
CN



Zitat:
<?$msg?> funktioniert aber nicht - der ausdruck macht genauso viel wie $msg; im normalen code.
ich hab mich vertippt aber der kommentar war sowieso überflüssig

--

zum Seitenanfang zum Seitenende Profil || Suche
017
13.08.2006, 00:27
Chronial



^^

Mh, ich missbrauche thewall schon wieder als chat ^^.
Einfach noch schnell was zum Thema ;)

Du solltest die gleiche Seite als action für dein <form> verwenden, und dann anhand des inhaltes von $_GET bzw. $_POST einen fallunterscheidung einbauen, ob der user eintragen will, oder das Formular gerade abgeschickt hat.
Wenn es abgeschickt wurde, checkst du die daten - sind sie korrekt, mach was immer du vorhast - sind sie nicht korrekt, gibst du die Eintragsseite aus - mit einer Fehlermeldung und den abgeschickten daten aus $_GET/$_POST per value="" in das Formular voreingetragen.

--

"tsuji-giri" (japanisch) - ein neues Schwert an einem Passanten ausprobieren

zum Seitenanfang zum Seitenende Profil || Suche
018
15.08.2006, 01:56
Alcapone



Nebenbei:

Ich kenne ein wirklich gutes, praxisorientiertes Tutorial, wo viele, praktische beispiele dabei sind. Da ich es nicht vorenthalten will, hier der Link:

http://tut.php-q.net/

--

"Everything, that can go wrong, will go wrong" Murphy's Law

zum Seitenanfang zum Seitenende Profil || Suche