$_GET inhalt geht verloren
mathefritz
- datenbank
- php
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.
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
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
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.
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.
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.
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.
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;
Ü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
@@mathefritz
Fürs Archiv: Die eklatanten Fehler in Fritzens Code sind im anderen Thread nachzulesen.
LLAP 🖖