php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 14.01.2005, 16:16  
Gast
 
Beiträge: n/a
Standard Löschen von übergebenen Formularinhalten

Hallo Wissende!

Mit dem FOlgenden Code hole ich alle Formularinhalte ab und schreibe sie in einen Text und sende sie per Mail().

Code:
foreach ($https as $key => $value) {
	$text = $text."".$key." : ".stripslashes($value)."\n\n";
}
Leider werden dabei auch die hiddenfelder mit ihren "keys" und "values" in den "text" geschrieben.

Wie kann ich felder, von denen ich weiss, dass sie fix sind, finden und löschen, bevor sie gemailt oder dem "text" hinzugefügt werden???

Danke für Tipps
Tom
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 14.01.2005, 16:17  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.235
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Stellt sich für mich die Frage, woher das Array $https stammt....
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline  
Alt 14.01.2005, 16:24  
Gast
 
Beiträge: n/a
Standard

Ich habe extra nur den wichtigsten Fetzen gesendet!

Es funzt ja soweit alles, nur das ich eben nicht alle Infos per mail senden will.

$https=$HTTP_POST_VARS;
 
Alt 14.01.2005, 16:27  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.235
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Woher soll ich denn wissen, wo $https herkommt. btw. Nimm $_REQUEST und nicht $HTTP_POST_VARS....

Wenn du Filtern willst, gibt es zwei Möglichkeiten: Entweder du schaust vor der Ausgabe das $key an und entscheidest dich dort, oder du ziehst aus deinen Formular- Parametern von vornherein nur die Inhalte raus, die du brauchst. Also das ganze ohne foreach machen...
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline  
Alt 14.01.2005, 16:42  
Gast
 
Beiträge: n/a
Standard

Liefert $_REQUEST das gleiche Ergebnis wie $HTTP_POST_VARS und warum soll ich $HTTP_POST_VARS nicht mehr verwenden???

Also so wie ich es sehr, werde ich die foreach lassen müssen, da das Script doch von vielen verschiedenen Formularen verschiedenster User aus angesprochen wird und ich nur sicherstelle, welche VAR´s "fix" sind. Und eben die will/muss ich löschen.

NUR WIE???
if $key == "next" then exit

aber wird dann nicht die ganze Schleife durchbrochen?

oder geht auch so was hier:

if $key not = "next" or "url" then $text = $text."".$key." : ".stripslashes($value)."\n\n";

komme von turbopascal und tue mich noch etwas schwer..
 
Alt 14.01.2005, 17:58  
Erfahrener Benutzer
 
Registriert seit: 05.07.2004
Beiträge: 1.476
DiBo33
Standard

if ($key! ="next"&&$key!="url") $text = $text."".$key." : ".stripslashes($value)."\n\n";

Zitat:
komme von turbopascal und tue mich noch etwas schwer..
Auch bei TuboPascal benötigst du die Doku, warum also nicht auch bei PHP?
DiBo33 ist offline  
Alt 15.01.2005, 11:32  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.235
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Zitat:
Zitat von torud
Liefert $_REQUEST das gleiche Ergebnis wie $HTTP_POST_VARS und warum soll ich $HTTP_POST_VARS nicht mehr verwenden???
Ja. Man sollte es nicht mehr verwenden, weil es deprecated ist. Näheres im PHP-Manual. Wenn es irgendwann einmal verschwindet aus der Sprache, hast du ein Problem. Das andere ($_***** für Superglobals) ist etwas einheitlicher, denke das ist so der einzige Grund. Es gibt nämlich noch $_COOKIES, $_SERVER und und und.

Zitat:
Zitat von torud
NUR WIE???
if $key == "next" then exit
Fast. PHP kennt kein "then". Für PHP steht wie in Java oder C auch das nächste Statement oder der gesamte Bereich zwischen geschweiften Klammern als auszuführendes Statement. Und man mache am besten Klammern. Also:
if ($key == "next") exit;
Jetzt gibt es nur noch das Problem, dass exit in PHP eine vollkommen andere Bedeutung hat. Es bricht leider das gemsamte Script ab. Hier hilft dann beispielsweise "continue". In einer Schleife, wie es foreach ist, führt es direkt das nächste Element aus und überspringt den gesamten restlichen Code. In deinem Beispiel also den nächsten Eintrag.

So würde es richtiger aussehen:
Code:
if ("$key" == "next") continue;
Oder gleich so, wie DiBo33 es geschrieben hat.

Zitat:
Zitat von torud
if $key not = "next" or "url" then $text = $text."".$key." : ".stripslashes($value)."\n\n";
Wie DiBo33 geschrieben hat.
Es gibt noch weitere Möglichkeiten, einfach einmal damit experimentieren...

Beispiel:
PHP-Code:
<?php
switch ($key)
{
    case 
'next':
    case 
'url':
    case 
'anythinghidden':
        break;
    default:
        
$text $text."".$key." : ".stripslashes($value)."\n\n";
        break;
}
?>
oder
PHP-Code:
$hidden_fields = array('next''url');
foreach (
$https as $key => $value)
{
    if (! 
in_array($key$hidden_fields))
        
$text $text."".$key." : ".stripslashes($value)."\n\n"

mepeisen ist offline  
Alt 15.01.2005, 16:57  
Gast
 
Beiträge: n/a
Standard

Hallo Ihr Beiden!

Das war genau die Antwort, die ich brauchte!
Tipps mit ein paar Erläuterungen - einfach Klasse!

DANKE!

Thomas
 
 


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
Problem bei Übergabe von Formularinhalten PHP Tipps 2004 4 09.06.2004 14:10

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php formularinhalt löschen, stripslashes in formularen, stripslashes entfernen formular

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