php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 06-10-2005, 22:03
gringo15
 Newbie
Links : Onlinestatus : gringo15 ist offline
Registriert seit: Aug 2005
Beiträge: 14
gringo15 ist zur Zeit noch ein unbeschriebenes Blatt
Standard Nicht markierte Checkboxen per $_POST

Hallo !

folgende Situation:

ich übertrage die Formulardaten einer Suchmaske per $_POST an das
auszugebende Element.

Da die Ausgabe über mehrere Seiten erfolgt habe ich die Postdaten
in die $_SESSION Variable übertragen mittels:

PHP-Code:
if ($HTTP_POST_VARS){
    
//echo "POSTDATEN:<br>";
    //print_r ($HTTP_POST_VARS)."<br><br>";
    
foreach($_POST as $key => $value)
    
$_SESSION[$key] = $value;
}
//echo "<br>SESSIONDATEN:<br>";          
//print_r ($_SESSION); 
Ich benötige aber auch die leeren Checkboxen welche dann in die Session-Variable geschrieben werden. Dies funktioniert leider nicht.
Alle anderen Felder werden mit "Leer" gefüllt. Warum keine "Checkboxen" ?

POSTDATEN:
Array ( [kunde] =>123 [project] => [plz] => [vertrieb] => [country] => [month] => [year] => [branche] => [sto] => [product] => [typ] => [fremd] => [konzept] => [equip] => [messen] => [firma] => [fototyp] => [medien] => )

SESSIONDATEN:
Array ( [kunde] =>123 [project] => [plz] => [vertrieb] => [country] => [month] => [year] => [branche] => [sto] => [product] => [typ] => [fremd] => [konzept] => [equip] => [messen] => [firma] => [fototyp] => [medien] => [einzelmodul] => on [fassade] => on ) 0

Die Postdaten der leeren Checkboxen werden hier leider nicht übermittelt.
In der Session bleiben diese natürlich erhalten.
Ich möchte auch keine einzelnen Checkboxen abfragen, da dies auf Dauer zu aufwändig währe, da sich diese Suchmaske beliebig erweitern lässt.

Weiß jemand warum das so ist ?

Ich habe die "Suche Funktion" bereits seit 3 Stunden benutzt




Vielen Dank


Gruß Ingo

Geändert von gringo15 (06-10-2005 um 22:05 Uhr)
Mit Zitat antworten
freelancermap.de - IT Projektvermittlung für Selbständige und Freiberufler
  #2 (permalink)  
Alt 06-10-2005, 22:11
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Ich benötige aber auch die leeren Checkboxen welche dann in die Session-Variable geschrieben werden. Dies funktioniert leider nicht.
Is so. Wenn der Browser da keine Lust zu hat, dann hat er die halt nicht.

Zitat:
Die Postdaten der leeren Checkboxen werden hier leider nicht übermittelt.
In der Session bleiben diese natürlich erhalten.
Nur, dass sie in der Session rein gar nichts mit der Checkbox zu tun haben.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #3 (permalink)  
Alt 06-10-2005, 22:12
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
    foreach($_POST as $key => $value)
    
$_SESSION[$key] = $value
Das ist n Witz, oder???
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #4 (permalink)  
Alt 07-10-2005, 03:15
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

1. http://tut.php-q.net/formulare.html#u13
2. http://de3.php.net/manual/en/function.isset.php
Mit Zitat antworten
  #5 (permalink)  
Alt 07-10-2005, 14:38
gringo15
 Newbie
Links : Onlinestatus : gringo15 ist offline
Registriert seit: Aug 2005
Beiträge: 14
gringo15 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@TobiaZ

warum sollte das ein Witz sein ?

Kennst du eine bessere Möglichkeit Variablen über
mehrere Seiten zu transportieren ?

Die Möglichkeit die Postdaten über "hidden" Felder zu überreichen
hat bei mir ab der 3ten Seite leider nicht mehr funktioniert.

Gruß Ingo
Mit Zitat antworten
  #6 (permalink)  
Alt 07-10-2005, 14:41
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Die Möglichkeit die Postdaten über "hidden" Felder zu überreichen hat bei mir ab der 3ten Seite leider nicht mehr funktioniert.
heißt nicht, dass sie an sich nicht funktioniert.

aber darum ging's nicht - tobiaz meinte vermutlich, dass es nicht ungefährlich ist, ausnahmslos alles, was vom client kommt, in eine session zu stecken.

selbst wenn dein benutzermanagement (solltes es eins geben) anders funktioniert und dadurch nicht beeinflusst werden kann, lässt es immer noch türen für einen ddos-angriff übrig.
Mit Zitat antworten
  #7 (permalink)  
Alt 07-10-2005, 15:11
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

$_SESSION = $_POST;

spart dir die foreach und zeigt dir noch eindeutiger, dass du dem Benutzer erlaubst alles was er will in die Session zu schreiben.

Also vorher die erlaubten indexe definieren und die Werte entsprechend überprüfen.

Never trust incomeing data
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #8 (permalink)  
Alt 07-10-2005, 19:39
gringo15
 Newbie
Links : Onlinestatus : gringo15 ist offline
Registriert seit: Aug 2005
Beiträge: 14
gringo15 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hmm...

Ich habe das jetzt so gelöst:
PHP-Code:
if (isset($HTTP_POST_VARS)){
    unset(
$_SESSION[$postdata]);
    foreach(
$_POST as $key => $value)
    
$_SESSION[$postdata][$key] = $value;

die Seite wird wohl primär nur in unserem Intranet laufen.
Das einer von den Bürofuzzis einen DDOS Angriff auf diese Seite
ausführen halte ich für recht unwahrscheinlich
Aber der Sicherheitsaspekt ist trotzdem nicht zu vernachlässigen,
deshalb werde ich zumindest die Indexe auf Validät prüfen.
Eine Benutzerverwaltung muß ich noch einbauen.
Deshalb das zweidimensionale Array.

Aber trotzdem Vielen Dank
Gruß Ingo

P.S Diese (isset()) Abfrage? Ist diese der Sauberkeit des Codes wegen, oder kann ich mir dieses "isset" sparen.
Gerade die C++ Progger sind doch auch extrem schreibfaul.

Geändert von gringo15 (07-10-2005 um 19:42 Uhr)
Mit Zitat antworten
  #9 (permalink)  
Alt 07-10-2005, 19:55
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

$_SESSION[postdata] = $_POST; willst du nicht verwenden?
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #10 (permalink)  
Alt 07-10-2005, 19:57
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
P.S Diese (isset()) Abfrage? Ist diese der Sauberkeit des Codes wegen, oder kann ich mir dieses "isset" sparen.
Gerade die C++ Progger sind doch auch extrem schreibfaul.
Ne isset-Abfrage ist "eigentlich" überflüsssig, denn das $_POST -Array existiert sowieso immer!

Noch überflüssiger ist sie, weil du auf http-post-vars prüfst, aber _post verwendest. Sinn ist klar?
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #11 (permalink)  
Alt 07-10-2005, 20:24
gringo15
 Newbie
Links : Onlinestatus : gringo15 ist offline
Registriert seit: Aug 2005
Beiträge: 14
gringo15 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo !


Zitat:
$_SESSION[postdata] = $_POST; willst du nicht verwenden?
Hmm .. Danke für den Tip .. Aber in die Schleife will ich noch die
Validätsprüfung einbauen ! Denke so wird der Code kompakter.

Zitat:
Ne isset-Abfrage ist "eigentlich" überflüsssig, denn das $_POST -Array existiert sowieso immer!

Noch überflüssiger ist sie, weil du auf http-post-vars prüfst, aber _post verwendest. Sinn ist klar?
Wenn ich ehrlich bin nicht ganz !
Ist http-post-vars nicht das gleiche wie das Post - Array ??
Wenn dann währe die Abfrage immer TRUE, und dann würde mir die Routine jedesmal die $_SESSION[$postdata] überschreiben.
Das tut Sie aber nicht !

BTW: Die "isset-Frage" bezieht sich nicht nur auf diese Beispiel.
Ist es generell angebracht die if() Abfragen mit isset zu schreiben, oder kann ich mir das sparen. Funktionieren tut beides !
Mit Zitat antworten
  #12 (permalink)  
Alt 07-10-2005, 20:32
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Ist http-post-vars nicht das gleiche wie das Post - Array ??
Naja, nicht so ganz. Siehe das Manual. $HTTP_POST_VARS ist in erster linie erstmal veraltet. Und wenn du die möglichkeit, $_POST zu verwenden, hast, dann hat die post-vars-variante in deinem Code nichts mehr zu suchen?

Zitat:
Wenn dann währe die Abfrage immer TRUE, und dann würde mir die Routine jedesmal die $_SESSION[$postdata] überschreiben.
Ja, und wenn kein if davor ist, genauso! empty() sollte dir ein Begriff sein. Ich betrachte das zumindest als Grundlagen.

Fazit: $_POST mit empty() verwenden!!!

Zitat:
Ist es generell angebracht die if() Abfragen mit isset zu schreiben, oder kann ich mir das sparen. Funktionieren tut beides !
Letzteres halte ich für humbug. Deine Überzeugung kommt vielleicht aber auch daher, dass du unsere Regeln noch nicht verinnerlicht hast Wie sieht es mit error_reporting E_ALL und undefinierten Variablen/Indexen aus? Aus diesem Grund ist eine isset-Abfrage bei allen POST und GET abfragen zwingend notwendig, es sei denn, sie fand vorher statt. Nur variablen, bei denen du 100% sicher bist, dass sie bereits definiert sind, erfordern keine vorherige prüfung auf existenz.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #13 (permalink)  
Alt 07-10-2005, 20:54
gringo15
 Newbie
Links : Onlinestatus : gringo15 ist offline
Registriert seit: Aug 2005
Beiträge: 14
gringo15 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Aha .. jetzt wird einiges klar !

Ich stolpere im Inet noch über "alten" Code von Php.
Nja .. da werde ich meine PHP-Bücher nochmals durchwälzen.


Zitat:

Ja, und wenn kein if davor ist, genauso! empty() sollte dir ein Begriff sein. Ich betrachte das zumindest als Grundlagen.
Jetz verstehe ich. Stimmt ... das sollte Grundlage sein

Ich komme programmiertechnisch leider aus einer komplett anderen Richtung. Dewegen habe ich noch manchmal Schwierigkeiten mit PHP.

Nichtsdestotrotz
Vielen Dank
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

PHP Marktplatz-Software
PHP Marktplatz-SoftwareEs hat sich viel getan! Die neue Version 7.5.9 unserer PHP Marktplatz-Software ebiz-trader steht ab sofort zur Verfügung.

28.10.2019 | Berni

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni


 

Aktuelle PHP Scripte

Microweber CMS

Open source, drag and drop website builder

13.01.2020 Berni | Kategorie: HTML5/ EDITOR
PhoneGap Apps mit JS, CSS3 und HTML5 erstellen ansehen PhoneGap Apps mit JS, CSS3 und HTML5 erstellen

PhoneGap, Framework zur Erstellung hybrider Applikationen für mobile Endgeräte.

13.01.2020 Berni | Kategorie: App-Entwicklung
Bo)Tickets

Bo)Tickets bietet Ihnen eine Schnittstelle für Kundenanfragen an. In dem Script definieren Sie Supportbereiche, also zum Beispiel „Technik, Buchhaltung, Support“. Ihre Kunden können dann über ein Formular eine Anfrage abschicken.

31.12.2019 bocombo | Kategorie: PHP/ Ticketsystem
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 03:33 Uhr.