Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : script erweitern und es geht nicht :(



scara
25-05-2003, 21:16
<?php
if (isset($submit)) {


if(strlen($name)==0) {
$error="Sie habe keinen Namen angegeben";
}

if(strlen($email)==0 {
$error.="Sie habe keine em@il Adresse angegeben";
}

if(strlen($anfrage)==0 {
$error.="Sie das anfragefeld nicht ausgefüllt";
}


//email senden
$recipient="info@ibizatips.de";
$subject="Anfrage";
$header="Form: " . $email . "\n";
$mail_body="Das Formular wurde am " . date("d.m.Y")
. " um " . date("H:i") . "h abgeschickt.\n";
$mail_body.="Eingetragene Werte:\n\n";
$mail_body.="Datum: " . date("d.m.Y") . "\n";
$mail_body.="Zeit: " . date("d.m.Y, H:i:s",time()) . "\n\n";

$mail_body.="Name: " . $name . "\n";
$mail_body.="E-Mail: " . $email . "\n";
$mail_body.="Anfrage: " . $anfrage . "\n\n";

$mail_body.="Systemdaten des Kunden:\n";
$mail_body.="IP: " . $REMOTE_ADDR . "\n";
$mail_body.="System: " . $HTTP_USER_AGENT . "\n";


mail($recipient,$subject,$mail_body,$header);

//bestaetigung der anfrage anzeigen
echo "Vielen Dank für Ihre Anfrage";

}else{
?>

<form action="http://ibiza.kerneln.de/pflege/form2.php" method=post>
<input type="hidden" name="submit" value="1">
<input type="text" name="name" size="35" value=1>
<input type="text" name="email" size="35">
<textarea name="anfrage" cols="30" rows="3"></textarea>
<input type="submit" value="Abschicken">
</form>

<?php
}
?>



das ist mein script...

ohne diesen teil funzt es :)
if(strlen($name)==0) {
$error="Sie habe keinen Namen angegeben";
}

if(strlen($email)==0 {
$error.="Sie habe keine em@il Adresse angegeben";
}

if(strlen($anfrage)==0 {
$error.="Sie das anfragefeld nicht ausgefüllt";
}

allerdings soll er ja noch überprüfen, ob auch eingaben in den eingabefeldern stehen :)

kann jemand einen fehler sehen oder anderen vorschlag bezüglich de rüberprüfung machen ??
mit if($name=="") (name, email und anfrage als variablen) ging es auch nicht

micha
25-05-2003, 21:28
Hi,

hilft das hier ? :

http://www.mrunix.de/forums/showthread.php?s=&threadid=31847&highlight=php+POST

Gruß micha

scara
25-05-2003, 21:39
bin php anfänger sorry


also mit $_POST["name"] dann :
am anfang deklarieren oder ersetzen.. kanst mir bei einem beispiel wie bei der $name die 2 zeilen kurz zeigen wies heißen muss ?? bitte

if(strlen($_POST["name"])==0) {
$error="Sie habe keinen Namen angegeben";
}

so??


if(strlen($name)==0) {
$error="Sie habe keinen Namen angegeben";
}

if(strlen($email)==0 {
$error.="Sie habe keine em@il Adresse angegeben";
}

if(strlen($anfrage)==0 {
$error.="Sie das anfragefeld nicht ausgefüllt";
}

Gaert
25-05-2003, 21:44
Das was micha meint ist generell richtig... alle Variablen, die von draussen kommen sollte man über $_GET und $_POST bzw. über $_REQUEST holen.

Dein Problem ist, dass du die schließende Klammer ) bei den Ifs nach dem ==0 vergessen hast... schau mal!

Es hilft auch, wenn die PHP Tags des Forums verwendest - das erhöht die übersicht und du siehst die Fehler schneller.

scara
25-05-2003, 22:34
Original geschrieben von Gaert
Das was micha meint ist generell richtig... alle Variablen, die von draussen kommen sollte man über $_GET und $_POST bzw. über $_REQUEST holen.

Dein Problem ist, dass du die schließende Klammer ) bei den Ifs nach dem ==0 vergessen hast... schau mal!

Es hilft auch, wenn die PHP Tags des Forums verwendest - das erhöht die übersicht und du siehst die Fehler schneller.


1.
$_POST ... wie genau müsste ichd as schreiben ?

anstat $variable $_POST ??



tags des forums ?? wie meinst das ??

funzt noch nicht:
http://ibiza.kerneln.de/pflege/form2.php
das form zwar schon, aber auch wenn man nix ausfüllt

<?php
if (isset($submit)) {

if(strlen($name)==0) {
$error="Sie habe keinen Namen angegeben";
}

if(strlen($email)==0) {
$error.="Sie habe keine em@il Adresse angegeben";
}

if(strlen($anfrage)==0) {
$error.="Sie das anfragefeld nicht ausgefüllt";
}


//email senden
$recipient="info@ibizatips.de";
$subject="Anfrage";
$header="Form: " . $email . "\n";
$mail_body="Das Formular wurde am " . date("d.m.Y")
. " um " . date("H:i") . "h abgeschickt.\n\n";

$mail_body.="Datum: " . date("d.m.Y") . "\n";
$mail_body.="Zeit: " . date("G.i") . " Uhr" . "\n\n";

$mail_body.="Eingetragene Werte:\n";
$mail_body.="Name: " . $name . "\n";
$mail_body.="E-Mail: " . $email . "\n";
$mail_body.="Anfrage: " . $anfrage . "\n\n";

$mail_body.="Systemdaten des Kunden:\n";
$mail_body.="IP: " . $REMOTE_ADDR . "\n";
$mail_body.="System: " . $HTTP_USER_AGENT . "\n";


mail($recipient,$subject,$mail_body,$header);

//bestaetigung der anfrage anzeigen
echo "Vielen Dank für Ihre Anfrage";
}else{
?>
<form action="http://ibiza.kerneln.de/pflege/form2.php" method=post>
<input type="hidden" name="submit" value="1">
<input type="text" name="name" size="35" value=1>
<input type="text" name="email" size="35">
<textarea name="anfrage" cols="30" rows="3"></textarea>
<input type="submit" value="Abschicken">
</form>

<?php
}
?>

offe
26-05-2003, 12:44
Hallo,
aus Sicherheitsgründen wurde in deiner php.ini (Konfigurationsdatei für PHP) register_globals auf off gesetzt. Deswegen kannst du auf die Postvariable "name" nicht mit $name, sondern mußt mit $_POST["name"] auf die Variable, zugreifen.

also statt:

if (isset($submit)) {

if(strlen($name)==0) {
$error="Sie habe keinen Namen angegeben";
}

if(strlen($email)==0) {
$error.="Sie habe keine em@il Adresse angegeben";
}

if(strlen($anfrage)==0) {
$error.="Sie das anfragefeld nicht ausgefüllt";
}

dies:

if (isset($_POST["submit"])) {

if(strlen($_POST["name"])==0) {
$error="Sie habe keinen Namen angegeben";
}

if(strlen($_POST["email"])==0) {
$error.="Sie habe keine em@il Adresse angegeben";
}

if(strlen($_POST["anfrage"])==0) {
$error.="Sie haben das Anfragefeld nicht ausgefüllt";
}

statt strlen($_POST["name"])==0 geht auch:
if(empty($_POST["name"]))
oder if(!isset($_POST["name"])) wie bei der Variablen submit

Offe

phate
26-05-2003, 13:07
Und die PHP-Tags finden sich beim Posten direkt über dem Texteingabefeld in Form eines Buttons mit der Bezeichnung PHP wieder. Bei der Codeeingabe einmal klicken für öffnende PHP-Tags, Code eingeben und am Ende nochmal klicken für schliessende PHP-Tags. Dann wird Dein Code schön nichtproportional und mit Syntax-Highlighting gepostet.

Das erhöht eindeutig die Lesbarkeit und die Wahrscheinlichkeit, dass Dir jemand weiterhilft.