tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von ComFreek
ERLEDIGT
NEIN
ANTWORTEN
6
ZUGRIFFE
364
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    seomaniac seomaniac ist offline Mitglied
    Registriert seit
    Dec 2011
    Beiträge
    18
    hallo liebe tutorials.de community
    ich hoffe das ich hier ein paar nüztliche antworten von kompetenten usern erhalte
    und ein teil von euch werde

    hier mein problem:

    PHP-Code:
    //in dem vorigem formular ist ein dropdown was 'typ' übergibt entweder $d1 oder $d2


    $d1 = array( 'd1.php''d2.php''d3.php');
    $e1 = array( 'e1.php''e2.php''e3.php');

    $typ $_POST['typ']; // so kommt ein error = Uninitialized string offset: 1 in dieser php zeile der includes
    // $typ = $d1; // so geht es komischerweise

    include $typ[1];

    //hier ist noch rechen content

    include $typ[3];

    //bitte um hilfe wie ich den typ übernehmen kann ohne einen error zu erzeugen
    // vielen dank :) ; 
     

  2. #2
    Avatar von ComFreek
    ComFreek ComFreek ist gerade online [x] Let it be logic!
    tutorials.de Moderator
    Registriert seit
    Jun 2009
    Beiträge
    2.364
    Blog-Einträge
    4
    Hallo,

    bist du dir sicher, dass das Formular wirklich fehlerfrei versendet wird und es auch ein Formularelement mit dem Namen "typ" gibt?

    Poste mal die Ausgabe des folgenden Codes:
    PHP-Code:
    var_dump($_POST); 
     
    mfg ComFreek

    Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
    Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
    [PHP] Überprüfen, ob Website erreichbarSicherheit in PHP-Codes schaffenGoogle Chrome-Extension für tutorials.dejson_compress()

  3. #3
    seomaniac seomaniac ist offline Mitglied
    Registriert seit
    Dec 2011
    Beiträge
    18
    PHP-Code:
    array(5) { ["typ"]=> string(5"de_w3" ["sex"]=> string(1"M" ["vorname"]=> string(3"max" ["name"]=> string(5"power" ["gebname"]=> string(0"" 
    danke für die schnelle hilfsbereitschaft

    /e:

    das hauptproblem ist eig das ich eine haupt vor auswahl treffe in noch einem formular vorher in der der typ per dropdown schon übernommen wird diese per post dann an das nächste formular gegeben wird und ich diese ja dann wieder laden und neu posten muss.

    gibt es da vielleicht noch eine einfachere lösung?

    lg
    Geändert von seomaniac (29.12.11 um 17:59 Uhr)
     

  4. #4
    Avatar von ComFreek
    ComFreek ComFreek ist gerade online [x] Let it be logic!
    tutorials.de Moderator
    Registriert seit
    Jun 2009
    Beiträge
    2.364
    Blog-Einträge
    4
    Bitte achte auf Groß- und Kleinschreibung

    Also entweder kannst du bei deinem 2. Formular ein verstecktes Input-Feld mit dem vorher ausgewähltem Typ hinzufügen:
    HTML-Code:
    <input type="hidden" name="typ" value="<?php GetTypeFromCurrentPOST(); ?>" />
    Oder du kannst den Wert auch in der Session speichern:
    PHP-Code:
    $_SESSION['form1_typ'] = GetTypeFromCurrentPOST(); 
    seomaniac bedankt sich. 
    mfg ComFreek

    Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
    Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
    [PHP] Überprüfen, ob Website erreichbarSicherheit in PHP-Codes schaffenGoogle Chrome-Extension für tutorials.dejson_compress()

  5. #5
    seomaniac seomaniac ist offline Mitglied
    Registriert seit
    Dec 2011
    Beiträge
    18
    danke für deine schnellen antworten

    Ich habe es nun mit dem Hidden getestet:

    PHP-Code:
    <input type="hidden" name="typ" value="$<?php echo $_POST['typ'];?>" />
    es wird auch nun laut dem vardump übergeben:

    PHP-Code:
    array(5) { ["typ"]=> string(6"$de_1
    aber erstens Gefällt mir das nicht das der Hidden im Quelltext sichtbar ist und
    zweitens gibt es dennoch einen Error in der kommenden php.

    PHP-Code:
    NoticeUninitialized string offset1 in ...php on line 109 
    das ist wiedermal die include zeile :-/

    ich habe es mit if else getestet vor include:

    PHP-Code:
    if ( $typ == "de_1" ) {
        
    $typ $de_1;
    } else {
        
    $typ $typ;

    dann funktioniert es Komischerweise, hat wohl wirklich etwas mit dem dollar Zeichen zutun :-/

    wenn ich $typ = '$'.$typ; anstatt des ifs gebe dann tritt der Uninitialized string wieder auf.

    gibt es denn evtl noch einen Besseren weg? da ich nicht immer wenn ich neue dinge integriere vorher ein neues if in die datei schreiben möchte.

    lg
     

  6. #6
    Avatar von ComFreek
    ComFreek ComFreek ist gerade online [x] Let it be logic!
    tutorials.de Moderator
    Registriert seit
    Jun 2009
    Beiträge
    2.364
    Blog-Einträge
    4
    Was willst du denn genau machen?

    Zuerst sollte man überhaupt nicht Daten von außen für eine Include-Zeile benutzen. Aber auch das einfache Ausgeben des Strings aus $_POST kann gefährlich sein!

    Siehe auch mein Tutorial: Sicherheit in PHP-Codes schaffen

    aber erstens Gefällt mir das nicht das der Hidden im Quelltext sichtbar ist und
    zweitens gibt es dennoch einen Error in der kommenden php.
    Ist jetzt der Fehler beim Zugriff auf $_POST['typ'] oder bei $typ[1]?


    Probiere mal folgendes:
    PHP-Code:
    //in dem vorigem formular ist ein dropdown was 'typ' übergibt entweder $d1 oder $d2 


    $de_1 = array( 'd1.php''d2.php''d3.php'); 


    if ( isset(
    $_POST['typ']) )
    {
      
    $typ $_POST['typ'];
      if ( 
    $typ == 'de_1' )
        
    $typ $de_1;
      else
        exit(
    'Falscher Wert für Typ-Parameter!');


      include(
    $typ[3]);  // Sicher, dass es 3 heißen muss?
      // Denn im Array $de_1 gibt es dieses Element nicht.
      // Die Indizes fangen bei 0 an!
    }
    else
    {
      exit(
    'Typ-Parameter nicht übergeben.!');

     
    mfg ComFreek

    Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
    Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
    [PHP] Überprüfen, ob Website erreichbarSicherheit in PHP-Codes schaffenGoogle Chrome-Extension für tutorials.dejson_compress()

  7. #7
    seomaniac seomaniac ist offline Mitglied
    Registriert seit
    Dec 2011
    Beiträge
    18
    Danke für deine Hilfe mein guter,
    ich habe leider noch nicht all zu große Ahnung von php, das ist für mich eher noch Neuland

    habe es jetzt so Gelöst das ich die Arrays die ich vor verpackt hatte nun
    anstatt
    PHP-Code:
    $d1 = array( 'd1.php''d2.php''d3.php');
    $e1 = array( 'e1.php''e2.php''e3.php');

    $typ $_POST['typ']; 
    direkt so verpacke:
    PHP-Code:
    $typ $_POST['typ'];
    if ( 
    $typ == 'd1' ) {$typ = array( 'd1.php''d2.php''d3.php');}
    if ( 
    $typ == 'e1' ) {$typ = array( 'e1.php''e2.php''e3.php');} 
    ist ein Schritt gespart, denn ob ich nun oben vorher was Anlege oder diese hier heraus Definiert wird ist doch Wurst oder gibt es da ein paar Sicherheitsbedenken?

    lg

    /e: das ist nur ein Musterbeispiel was ich hier zur Veranschaulichung genommen habe, natürlich funktionierte es auch schon zum Test als ich es noch ohne Post einfach übernommen hatte
    Geändert von seomaniac (29.12.11 um 23:45 Uhr)
     

Ähnliche Themen

  1. Problem mit Array-Übergabe an Funktion
    Von Matty82 im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 07.07.10, 10:38
  2. POST-Übergabe des Array $_FILES mit CURL
    Von frank burian im Forum PHP
    Antworten: 9
    Letzter Beitrag: 20.07.07, 14:47
  3. Antworten: 2
    Letzter Beitrag: 22.06.07, 12:28
  4. Problem mit verschlüsselter Verbindung und Post-Php Scripten
    Von cameeel im Forum Hosting & Webserver
    Antworten: 0
    Letzter Beitrag: 08.03.07, 22:15
  5. Antworten: 7
    Letzter Beitrag: 10.09.04, 10:14

Stichworte