mathefritz: $_GET inhalt geht verloren

  • php-Datei "default.php" enthält Links die den folgenden Code aufgerufen;

  • die Links enthalten Parameter ?reg=....,

  • mit Klick auf den Link "neue Region" am Ende des folgenden Codes soll das spiel erneut, mit neuem Wert in $_GET["reg"] beginnen: leider geht DANN $_GET["reg"] verloren ( nicht gesetzt ) .

Wie dem abhelfen? Ich schätze Eure Hilfe sehr, und würde mich über sich auf die spezielle Frage beschränkende Antwort freuen. F.

<html>
<head><meta charset="utf-8"><title>Erfassung</title>
</head>
<body><h1>Companies</h1>
<?php
   if ( !isset($_GET["reg"])) die("sofort,nst: lost reg");
   if ( $_GET["reg"] == ""  ) die("sofort,empty:lost reg");
   
                                    require(".limits.php");
if ( !isset($POST["firmenname"]) ) {

  if ( !($db = mysqli_connect("..........", ".......", ".......",
                                                  ".......") ) ) {
      die("Fehler: " . mysqli_connect_error() . "!");
  }
}
$zeilen = Anzahl($db,$_GET["reg"])+0;
  
echo "bereits erfaßt in ",$_GET["reg"],": ",
      $zeilen," von max. ", $maxAdressen[$_GET['reg']],"<br>";
  
if ( $zeilen
     >=   $maxAdressen[$_GET['reg']]
   ){echo "mehr sollen es nicht werden<br>";
     echo "<a href='http://wirbler.com'>klick mich</a>";
     exit;
}
// -----------------------------------------------------------------
function Anzahl($daba,$region){ if ( !$daba )   die("DB lost");
                                if ( !$region ) die("func: reg lost");

 $sqll = "SELECT COUNT(*) FROM FlyerVersandAdresse" . $region;

                                if (!$sqll) die("sqll lost");
 $e   = mysqli_query($daba,$sqll);
                                if (!$e  ) die("e lost");
 $row = mysqli_fetch_row($e);   if (!$row) die("row lost");

 return $row[0];
}
// ------------------------------------------------------------------
if (isset($_POST["firmenname"]) && $_POST["firmenname"] != "" && 
    isset($_POST["strassehn" ]) && $_POST["strassehn" ] != "" &&
    isset($_POST["plz"       ]) && $_POST["plz"       ] != "" &&
    isset($_POST["stadt"     ]) && $_POST["stadt"     ] != ""
   ) {
    $sql = "INSERT INTO FlyerVersandAdresse" . $_GET["reg"]."
    (firmenname,
     strassehn,
     plz, stadt, land)
     VALUES (?, ?, ?, ?, ?)";
    $kommando = mysqli_prepare($db, $sql);
    mysqli_stmt_bind_param
    ($kommando, "ssiss", $_POST["firmenname"], $_POST["strassehn"],
                         $_POST["plz"],        $_POST["stadt"],
                         $_POST["land"]
    );
    if (mysqli_stmt_execute($kommando) ){
//         <a href=\"gb-edit45.php?id=$id\">Bearbeiten</a>";
    } else {
             echo "Fehler: " . mysqli_error($db) . "!";
           }
  $zeilen = Anzahl($db,$_GET["reg"]);
  echo $zeilen,". Adresse in ",$_GET["reg"]," hinzugefügt<br>";
  mysqli_close($db);
  echo " ",$_GET["reg"],": closed";
} 
?>
<form method="post">
Name:       <input type="text"   name="firmenname"        required /><br />
Straße/Hnr: <input type="text"   name="strassehn"         required /><br />
PLZ/ZIP:    <input type="text"   name="plz" pattern="\d+" required /><br />
Stadt:      <input type="text"   name="stadt"             required /><br />
ggf Land:   <input type="text"   name="land"            /><br />
            <input type="submit" name="Submit" value="Eintragen" />
            <input type="reset"                value="reset" />
</form>
 <a href="https://cloudlogin02.world4you.com/index.php/apps/files">Kaffeepause</a><br>
 <a href="default.php">neue Region</a><br>
 <a href="http://wirbler.com">neues Mitarbeiter-Login</a>
</body>
</html>
Das schließen der DB so wie jetzt scheint mir etwas unsinnig.
  1. Hallo mathefritz,

    Ich schätze Eure Hilfe sehr, und würde mich über sich auf die spezielle Frage beschränkende Antwort freuen.

    Die gibts hier nur sehr selten. Vor allem, da du offensichtlich nicht willens bist, dir gegebene Hinweise zu beachten.

    Bis demnächst
    Matthias

    --
    Dieses Forum nutzt Markdown. Im Wiki erhalten Sie Hilfe bei der Formatierung Ihrer Beiträge.
  2. Guck dir deinen Link mal genau an. Wie soll denn ein reg-Parameter ankommen, wenn du ihn nicht setzt?

    Der Rest des Codes wäre nach einem ersten Aufräumen vielleicht im Zustand "Kraut und Rüben"...

    Gut benannte Funktionen können Dokumentation ersetzen. Anzahl würde ich z.b. umbenennen in AnzahlAdressenInRegion.

    Die if isset Wüste vor dem INSERT würde ich auslagern in eine Funktion PostDatenVollstaendig. Den INSERT Klumpen ebenfalls, in eine Funktion SpeichereAdresse.

    Die DB Verbindung brauchst du, glaube ich, immer, nicht nur dann, wenn kein Firmenname gepostet ist.

    Das Schließen der DB Verbindung ist unnötig, das macht PHP automatisch wenn der Request fertig bearbeitet ist.

    Alle Funktionen, die du gebildet hast, sammelst du am Ende deines PHP Blocks. Der Teil, der nicht in Funktionen steckt, gehört beieinander, an den Anfang und sollte so klein wie möglich sein.

    Eine Seitengenerierung teils aus statischem HTML und teils aus HTML-freien Echos ist ebenfalls nicht wirklich schick. Du solltest überlegen, ob du an diesen Stellen ein HTML Fragment includest.

    Das ist jetzt kein aufgeräumtes Posting, aber ich sitze hier vor dem Smartphone, da ist das nicht so einfach....

    Rolf

    1. Hallo Rolf b

      ...Wie soll denn ein reg-Parameter ankommen, ...

      Aufgerufen wird Erfassung.php aus default.php, auf der der "Erfasser" einen Link anklick; alle Links dort zeigen auf Erfassung.php und unterscheiden sich nur im "?reg=...." Parameter; ein ERSTES Mal
      wird default.php von einer Seite außerhalb besucht, und da klappt die Parameterübergabe, und es können, mit richtigen Ergebnissen, Einträge in der DB erfolgen.
      Nach einer
      Folge von Einträgen für die erste gewählte Region, wenn der Erfasser den Link "neue Region" klickt, der wieder die o.g. default.php aufruft, wo der Erfasser die neue Region anklickt, was wieder zu Erfassen.php führt, geht der Parameter verloren.

      Allerdings klapp es wenn, statt klick auf "neue Region", im Browserverlauf 2 Schritte zurückgegangen wird, (2mal Tastenfolge Alt+Linkspfeil ) was auch zu default.php führt.

      Gut benannte Funktionen ...

      ja, schon gut, wenn auch lästig zu Tippen

      Eine Seitengenerierung teils aus statischem HTML ...

      statisches HTML sehe ich eigentlich nur nach dem "?>"; Das soll mit require(...) aufgenommen werden ?

      ..ich sitze hier vor dem Smartphone, ...

      DANKE um so mehr für Deine Mühe

      Gruß Fritz.

  3. Lieber mathefritz,

    <form method="post">

    wohin, glaubst Du, wird der Browser nach dem Abschicken geführt? Und was steht dann in der Adresszeile des Browsers? Und was hättest Du gerne, dass dort (auch noch) steht? Und was müsstest Du dafür ändern (besser: hinzufügen)?

    Liebe Grüße,

    Felix Riesterer.

    1. Hallo Felix, Danke für Deinen Beitrag
      die
      submits (also Klicks auf "Eintragen") klappen eigentlich .
      Dies Art Formular, ohne action Angabe, scheint gängig zu sein. Mein bekannter, für den ich in dieser Arbeit unentgeltlicher Helfer bin, hat das in der Hinsicht aus Wenz/Hauser abgetippt. Submit führt offensichtlich den php-Code der Seite durch. ( der auch schon beim Aufruf der Seite gelaufen ist, und nur beim ersten Lauf zur DB verbindet, weil eben bei weiteren firmenname schon existiert )

      wohin, .. wird der Browser .. geführt?

      wenn da Änderungen in der Adresszeile erfolgen sind die zu schnell um erkennbar zu sein, und schließlich steht wieder dasselbee dort - soll ja auch, für die nächste Erfassung

      Und was hättest ...

      wäre sehr nett von Dir wenn Du mir des Rätsels Lösung verätst.

      Gruß F.

      1. Lieber mathefritz,

        wäre sehr nett von Dir wenn Du mir des Rätsels Lösung verätst.

        nein, das wäre fahrlässig, denn dann hätte ich Dir einen Lernerfolg verwehrt. Eine verratene Lösung ist wie eine abgeschriebene Hausaufgabe: Du hast zwar die Lösung, aber nichts dabei gelernt.

        Liebe Grüße,

        Felix Riesterer.

        1. Lieber mathefritz,

          oh, ich bin wirklich gerührt - das ist nicht ironisch gemeint

          nein, das wäre fahrlässig,.... Lernerfolg verwehrt. .. verratene Lösung ist ... abgeschriebene Hausaufgabe: :... nichts dabei >gelernt.

          normalerweise ist das auch meine Meinung, manchmal zählt aber nur das Ergebnis;

          • wie ist das Resultat nun zu bewerten?
            ------------------------------------------------------------------------------------- . Erfassung.php und default.php sind sich im selben Ordner, so meinte ich, um aus Erfassung.php default.php aufzurufen genüge default.php, aber tut's nicht, nichteinmal ./default.php genügt, nur der absolute . Ach, ich sehe gerade, daß auch in default.php die Links zu Erfassung.php absolut s
            Eigentlich
            gewann ich die Lösung, immer noch verwirrt, nur "forschend", nicht schlußfolgernd,
            weil der Initiater des Projekts, dem - wie auch mir -, meine default.php
            optisch nicht so gefiel, studierend
            "Thomas Theis, PHP 7 und MySQL 5.6" ne ansprechende Seite fand
            und
            diese so hemdsärmlig wild adaptierte - mit gewiss HTML-Kenntnis < meinen, daß
            mein Haarerest zuBergeStand Bauch mich schmerzte. Ganz wie sie sein soll ist sie nicht, aber brauchbar.
            Die
            Links am Ende der Erfassung.php, "neue Region"
            bleibt natürlich nicht, aber auch funktioniert, sind also nun
            <a href="https://cloudlogin02.world4you.com/index.php/apps/files">Kaffeepause</a><br>
            <a href="http:flh.lima-city.de/packages/GebietsButtons870.html">GBneue Region</a><br>
            <a href="http:flh.lima-city.de/ADrERf/default.htm">neue Region</a><br>
            <a href="./default.htm">EinPreDot neue Region</a><br> <a href="http://wirbler.com">neues Mitarbeiter-Login</a>

          Übrigens will der I. nun je "Erfasser" nur ein "Gebiet", Gebietswechsel entfällt, nur "Kaffepause" bleibt. LG Fritz. BITTEkEINEdOWLOADS (wget)VON lima-city die mögens nicht Qelle GebietsButtons870.html folgt

          <!DOCTYPE html><html xmlns:date="http://exslt.org/dates-and-times" lang="en">
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;">
          <meta charset="utf-8">
          <title>Mitarbeiter» Adressen</title>
          <meta name="author" content="Mike van Riel">
          <meta name="description" content="">
          <link href="../css/template.css" rel="stylesheet" media="all">
          <script src="js/jquery-1.7.1.min.js" type="text/javascript"></script><script src="../js/jquery-ui-1.8.2.custom.min.js" type="text/javascript"></script><script src="../js/jquery.mousewheel.min.js" type="text/javascript"></script><script src="../js/bootstrap.js" type="text/javascript"></script><script src="../js/template.js" type="text/javascript"></script><script src="../js/prettify/prettify.min.js" type="text/javascript"></script><link rel="shortcut icon" href="../img/favicon.ico">
          <link rel="apple-touch-icon" href="../img/apple-touch-icon.png">
          <link rel="apple-touch-icon" sizes="72x72" href="../img/apple-touch-icon-72x72.png">
          <link rel="apple-touch-icon" sizes="114x114" href="../img/apple-touch-icon-114x114.png">
          </head>
          <body>
          <div class="navbar navbar-fixed-top">
          <div class="navbar-inner"><div class="container">
          <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></a><a class="brand" >Mitarbeiter</a><div class="nav-collapse"><ul class="nav">
          <li class="dropdown">
          
            <b class="caret"></b></a><ul class="dropdown-menu"></ul>
          </li>
          <li class="dropdown" id="charts-menu"> <b class="caret"></b></a><ul class="dropdown-menu"><li><a href="../graph_class.html"><i class="icon-list-alt"></i> Class hierarchy diagram</a></li></ul>
          </li>
          <li class="dropdown" id="reports-menu"> <b class="caret"></b></a><ul class="dropdown-menu">
          <li><a href="../errors.html"><i class="icon-remove-sign"></i> Errors 
                          <span class="label label-info">22</span></a></li>
          <li><a href="../markers.html"><i class="icon-map-marker"></i> Markers 
                          <ul><li>todo 
                          <span class="label label-info">2</span>
          </li></ul></a></li>
          <li><a href="../deprecated.html"><i class="icon-stop"></i> Deprecated elements 
                          <span class="label label-info">0</span></a></li>
          </ul>
          </li>
          </ul></div>
          </div></div>
          <div class=""><a href="Employes" style="color: inherit"><i class="icon-upload icon-white"></i></a></div>
          </div>
          <div id="___" class="container">
          <noscript><div class="alert alert-warning">
                                      Javascript is disabled; several features are only available
                                      if Javascript is enabled.
                                  </div></noscript>
          <div class="row">
          <div class="span4">
          <div class="btn-group view pull-right" data-toggle="buttons-radio">
          <button class="" title=""><i class=""></i></button><button class="="Show only method names"><i class=""></i></button>
          </div>
          <ul class="side-nav nav nav-list">
          <li class="nav-header">
          <i class="icon-map-marker"></i> Packages</li>
          <li>
          <a href="https://cloudlogin02.world4you.com/index.php/apps/files/" ><i class="icon-folder-open"></i>WirblerCloud</a><ul class="nav nav-list nav-packages"></ul>
          </li>
          <li class="nav-header">
          <i class="icon-custom icon-class"></i> Classes</li>
          <li><a href="http://wirbler.com" >Login/Zurück</a></li>
          <li><a href="/////////" title="Freier Link möglich">/////////</a></li>
          <li><a href="/////////" title="Freier Link möglich">/////////</a></li><a name="PHPMailer" id="PHPMailer"></a><div class="element ajax clickable class" href="../ADrERf/Erfassung.php/?reg=BadenWuerttemberg">
          <h1>Baden-Württemberg<a href="../ADrERf/Erfassung.php/?reg=BadenWuerttemberg"></a>
          </h1>
          <p class="short_description">Bitte Ihr Gebiet berücksichtigen !</p>
          <div class="details collapse"></div>
          <a href="../ADrERf/Erfassung.php/?reg=BadenWuerttemberg" class="more">« Gebiet BW-Stuttgart-Tübingen-Freiburg-Karlsruhe »</a>
          </div><a name="PHPMailer" id="PHPMailer"></a><div class="element ajax clickable class" href="../ADrERf/Erfassung.php/?reg=BadenWuerttemberg">
          <h1>Sachsen<a href="../ADrERf/Erfassung.php/?reg=Sachsen"></a>
          </h1>
          <p class="short_description">Bitte Ihr Gebiet berücksichtigen !</p>
          <div class="details collapse"></div>
          <a href="../ADrERf/Erfassung.php/?reg=Sachsen" class="more">« Gebiet Sachsen-Leipzig-Dresden-Chemnitz »</a>
          </div><a name="PHPMailer" id="PHPMailer"></a><div class="element ajax clickable class" href="../classes/PHPMailer.html">
          <h1>Sachsen-Anhalt<a href="../ADrERf/Erfassung.php/?reg=SachsenAnhalt"></a>
          </h1>
          <p class="short_description">Bitte Ihr Gebiet berücksichtigen !</p>
          <div class="details collapse"></div>
          <a href="../ADrERf/Erfassung.php/?reg=SachsenAnhalt" class="more">« Gebiet Sachsen-Anhalt-Magdeburg-Halle(Saale)-DessauRosslau»</a>
          </div><a name="PHPMailer" id="PHPMailer"></a><div class="element ajax clickable class" href="../classes/PHPMailer.html">
          <h1>Thüringen<a href="../ADrERf/Erfassung.php/?reg=Thueringen"></a>
          </h1>
          <p class="short_description">Bitte Ihr Gebiet berücksichtigen !</p>
          <div class="details collapse"></div>
          <a href="../ADrERf/Erfassung.php/?reg=Thueringen" class="more">« Gebiet Thüringen Jena-Erfurt-Gera »</a>
          </div><a name="PHPMailer" id="PHPMailer"></a><div class="element ajax clickable class" href="../classes/PHPMailer.html">
          <h1>NordrheinWestfahlen<a href="../ADrERf/Erfassung.php/?reg=NordrheinWestfahlen"></a>
          </h1>
          <p class="short_description">Bitte Ihr Gebiet berücksichtigen !</p>
          <div class="details collapse"></div>
          <a href="../ADrERf/Erfassung.php/?reg=NordrheinWestfahlen" class="more">« Gebiet NordrheinWestfahlen Köln-Düsseldorf-Münster-Detmold-Arnsberg »</a>
          </div><a name="PHPMailer" id="PHPMailer"></a><div class="element ajax clickable class" href="../ADrERf/Erfassung.php/?reg=NordrheinWestfahlen">
          <h1>GrossraumStuttgart<a href="../ADrERf/Erfassung.php/?reg=GrossraumStuttgart"></a>
          </h1>
          <p class="short_description">Bitte Ihr Gebiet berücksichtigen !</p>
          <div class="details collapse"></div>
          <a href="../ADrERf/Erfassung.php/?reg=GrossraumStuttgart" class="more">« Gebiet Grossraum Stuttgart Ludwigsburg-Böblingen-Esslingen »</a>
          </div><a name="PHPMailer" id="PHPMailer"></a><div class="element ajax clickable class" href="../classes/PHPMailer.html">
          <h1>Deutschland<a href="../ADrERf/Erfassung.php/?reg=Deutschland"></a>
          </h1>
          <p class="short_description">Bitte Ihr Gebiet berücksichtigen !</p>
          <div class="details collapse"></div>
          <a href="../ADrERf/Erfassung.php/?reg=Deutschland" class="more">« Gebiet Deutschland Frankfurt-Hamburg-München »</a>
          </div><a name="PHPMailer" id="PHPMailer"></a><div class="element ajax clickable class" href="../classes/PHPMailer.html">
          <h1>Europa<a href="../ADrERf/Erfassung.php/?reg=Europa"></a>
          </h1>
          <p class="short_description">Bitte Ihr Gebiet berücksichtigen !</p>
          <div class="details collapse"></div>
          <a href="../ADrERf/Erfassung.php/?reg=Europa" class="more">« Gebiet Europa Berlin-Wien-Rom-Paris »</a>
          </div><a name="PHPMailer" id="PHPMailer"></a><div class="element ajax clickable class" href="../classes/PHPMailer.html">
          <h1>Sonstige Gebiete 3<a href=""></a>
          </h1>
          <p class="short_description">Bitte Ihr Gebiet berücksichtigen !</p>
          <div class="details collapse"></div>
          <a href="../classes/PHPMailer.html" class="more">« noch frei »</a>
          </div><a name="PHPMailer" id="PHPMailer"></a><div class="element ajax clickable class" href="../classes/PHPMailer.html">
          <h1>Welt<a href="../ADrERf/Erfassung.php/?reg=Welt"></a>
          </h1>
          <p class="short_description">Bitte Ihr Gebiet berücksichtigen !</p>
          <div class="details collapse"></div>
          <a href="../ADrERf/Erfassung.php/?reg=Welt" class="more">« Gebiet Welt London-Shanghai-Taipeh-Hongkong »</a>
          </div><a name="PHPMailer" id="PHPMailer"></a><div class="element ajax clickable class" href="../classes/PHPMailer.html">
          <h1>Tübingen<a href="../ADrERf/Erfassung.php/?reg=BadenWuerttemberg"></a>
          </h1>
          <p class="short_description">Bitte Ihr Gebiet berücksichtigen !</p>
          <div class="details collapse"></div>
          <a href="../ADrERf/Erfassung.php/?reg=BadenWuerttemberg" class="more">« Gebiet BW Stuttgart-Tübingen-Freiburg-Karlsruhe »</a>
          </div><a name="PHPMailer" id="PHPMailer"></a><div class="element ajax clickable class" href="../classes/PHPMailer.html">
          <h1>Freiburg<a href="../ADrERf/Erfassung.php/?reg=BadenWuerttemberg"></a>
          </h1>
          <p class="short_description">Bitte Ihr Gebiet berücksichtigen !</p>
          <div class="details collapse"></div>
          <a href="../ADrERf/Erfassung.php/?reg=BadenWuerttemberg" class="more">« Gebiet BW Stuttgart-Feiburg-Tübingen-Karlsruhe »</a>
          </div><a name="PHPMailer" id="PHPMailer"></a><div class="element ajax clickable class" href="../classes/PHPMailer.html">
          <h1>Stuttgart<a href="../ADrERf/Erfassung.php/?reg=BadenWuerttemberg"></a>
          </h1>
          <p class="short_description">Bitte Ihr Gebiet berücksichtigen !</p>
          <div class="details collapse"></div>
          <a href="../ADrERf/Erfassung.php/?reg=BadenWuerttemberg" class="more">« Gebiet BW Stuttgart-Karlsuhe-Tübingen-Freiburg »</a>
          </div><a name="PHPMailer" id="PHPMailer"></a><div class="element ajax clickable class" href="../classes/PHPMailer.html">
          <h1>Karlsruhe<a href="../ADrERf/Erfassung.php/?reg=BadenWuerttemberg"></a>
          </h1>
          <p class="short_description">Bitte Ihr Gebiet berücksichtigen !</p>
          <div class="details collapse"></div>
          <a href="../ADrERf/Erfassung.php/?reg=BadenWuerttemberg" class="more">« Gebiet BW Stuttgart-Karlsruhe-Tübingen-Freiburg »</a>
          </div><a name="PHPMailer" id="PHPMailer"></a><div class="element ajax clickable class" href="../classes/PHPMailer.html">
          <h1>Oesterreich<a href="../ADrERf/Erfassung.php/?reg=BadenWuerttemberg"></a>
          </h1>
          <p class="short_description">Bitte Ihr Gebiet berücksichtigen !</p>
          <div class="details collapse"></div>
          <a href="../ADrERf/Erfassung.php/?reg=Oesterreich" class="more">« Gebiet Oesterreich Salzburg-Linz-Graz »</a>
          </div><a name="PHPMailer" id="PHPMailer"></a><div class="element ajax clickable class" href="../classes/PHPMailer.html">
          <h1>Schweiz<a href="../classes/PHPMailer.html"></a>
          </h1>
          <p class="short_description">Bitte Ihr Gebiet berücksichtigen !</p>
          <div class="details collapse"></div>
          <a href="../classes/PHPMailer.html" class="more">« Gebiet Schweiz Zürich-Basel-Genf »</a>
          </div><a name="PHPMailer" id="PHPMailer"></a
          
  4. @@mathefritz

    Fürs Archiv: Die eklatanten Fehler in Fritzens Code sind im anderen Thread nachzulesen.

    LLAP 🖖

    --
    „Wenn du eine weise Antwort verlangst, musst du vernünftig fragen.“ —Johann Wolfgang von Goethe