Duree de vie d'une variable

Eléphant du PHP | 72 Messages

11 oct. 2005, 18:02

Je patauge toujours avec une variable et le rechargement d'un formulaire.

J'essaie d'explique en 2 mots.

-J'arrive sur mon formulaire

-je donne un num. de ligne dans ma BD et presse Corr. (si si)

-Le formulaire se reaffiche avec tout les elements sans exception y. c. le
check-box (CB) et le radio input (RI) qui m'ennuie. J'arrive meme a travers un echo a lire le contenu des variables.

-Le probleme se produit quand je veux recuperer ensuite les variables pour faire un test sur leurs nombres.
If (cond) Form entierement remplis avant sauvegarde
je n'arrive pas a recuperer le contenu de (CB) et (RI) qui sont vides a ce momment la.
Je ne recharge pas la page entre temps.

La fonction

Code : Tout sélectionner

if (isset($_POST["titel"])) {$Titel = $_POST["titel"]; $testtitel =1;} else {$Titel = ""; $testtitel=0;}
me donne le resultat que avec les champs de textes.

Comment fonctionne ce POST?
Comme je le vois Il est declencher par mon bouton Corr. et fonctionne que si il n'y pas de code entre le declenchement et le rechargement des variables.
Est-ce que cela est possible?

Mammouth du PHP | 19672 Messages

11 oct. 2005, 18:22

Pour te donner une idée de ce qui est envoyé, fais la chose suivante en début de traitement:
<pre>
<?php
var_dump($_POST);
?>
</pre>
TU verras ce qui est exactement envoyé par ton formulaire.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 72 Messages

11 oct. 2005, 18:34

Voila ce que je recois en retour

Code : Tout sélectionner

array(8) { ["titel"]=> string(6) "" ["autor"]=> string(0) "" ["thema"]=> string(0) "" ["LVA"]=> string(0) "" ["MaterialsTyp"]=> string(0) "" ["url"]=> string(3) "" ["q5"]=> string(1) "9" ["btn_KOR"]=> string(3) "KOR" }
Q5 est le nom du champ de saisie pour mon num. de ligne et btn_KOrr
et mon bouton corrige.

Maintenant les autres variables sont bien mes champs de textes.

La longueur des string est un peu bizarre bon.
Mais les variables qui me manque ne sont pas la.

Quesque je peux faire?

Mammouth du PHP | 19672 Messages

11 oct. 2005, 18:35

Fais voir le code de ton formulaire
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 72 Messages

11 oct. 2005, 18:45

Il va falloir etre indulgent parsque je suis en train de le reecrire completement suite a ce probleme. et la il est en chantier.
Je n'ai pas encore repris les commande qui font la sauvegarde et l'effacage simple car cela a toujours marche.

Code : Tout sélectionner

<?php session_start(); if ( isset ($_SESSION['index']) ) { $index = $_SESSION['index']; } else { $index = "0"; } if ( isset ($_SESSION['testKor']) ) { $testKor = $_SESSION['testKor']; } else { $testKor = "0"; } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1250" /> <meta name="generator" content="PSPad editor, www.pspad.com" /> <meta name="Author" content=" Authorsnames YC MP" /> <link rel="stylesheet" type="text/css" href="Ausbau_style.css" /> <title>Prakt_S2 Formular</title> </head> <body> <!-- HTML_KODE fuer Titel des Fensters NB Die ganze Fenster Fonktionniert nur mit Ausbau_style.css --> <div id="textFeld"> <div id="ImaTitre"> <img id="athena" src="image/athene_G.gif" alt="Athene" /><br /> <p> &nbsp;<br /> &nbsp;<br /> &nbsp;<br /> &nbsp;<br /> </p> <h1 id="ex1">FORMULAR EINTRAG der WERTE </h1><br /> &nbsp;<br /> </div> <!-- *********************************************** HTML_KODE Links fuer andere Fenster *********************************************** --> <a class="linx" href="Prakt_S1.php">Home</a><br /> <a class="linx" href="Prakt_S3.php">Tabelle</a><br /> &nbsp;<br /> </tr> <?php /*-------------------------------------------------*/ /* Variablen decl?????? /*-------------------------------------------------*/ if (isset($ligne['MatStatus'])){ $chTemp_5 = $ligne['MatStatus'];} else $chTemp_5 = ""; if (isset($ligne['dateiFormat'])){ $chTemp_7 = $ligne['dateiFormat'];} else $chTemp_7 = ""; /*-------------------------------------------------*/ /* Nouveau Texte Kor && Del /*-------------------------------------------------*/ if (isset($_POST["q5"])){$indeX = $_POST["q5"];} else $indeX = ""; $_SESSION['index'] = "$indeX"; if (isset($_POST["q5"]) && isset($_POST["btn_KOR"] )){ echo " T'a presser Korrige et donne "; echo $indeX; echo "<br />"; echo "<br />"; echo "Ici au debut de KOR testKor est egal a zero"; echo $testKor; echo "<br />"; include "dbConnect.php"; $mysql_result = mysql_query("SELECT `lehrveran` ,`titel` ,`autor`,`thema`, `matType`, `MatStatus`, `dateiFormat`, `url` FROM `$table`WHERE `index`='$indeX' "); while ($ligne = mysql_fetch_array($mysql_result)) { if (isset($ligne['titel'])){ $chTemp_1 = $ligne['titel'];} else $chTemp_1 = ""; if (isset($ligne['autor'])){ $chTemp_2 = $ligne['autor'];} else $chTemp_2 = ""; if (isset($ligne['thema'])){ $chTemp_3 = $ligne['thema'];} else $chTemp_3 = ""; if (isset($ligne['lehrveran'])){ $chTemp_4 = $ligne['lehrveran'];} else $chTemp_4 = ""; if (isset($ligne['MatStatus'])){ $chTemp_5 = $ligne['MatStatus'];} else $chTemp_5 = ""; if (isset($ligne['matType'])){ $chTemp_6 = $ligne['matType'];} else $chTemp_6 = ""; echo "<br />"; echo "Ici chTemp_5 contient "; echo $chTemp_5; if (isset($ligne['dateiFormat'])){ $chTemp_7 = $ligne['dateiFormat'];} else $chTemp_7 = ""; echo "<br />"; echo "Ici chTemp_7 contient "; echo $chTemp_7; if (isset($ligne['url'])){ $chTemp_8 = $ligne['url'];} else $chTemp_8 = ""; echo "<br />"; echo "<br />"; $testKor = "1"; $_SESSION['testKor'] = $testKor; echo "Ici a la fin de Var de session testKor devrait etre egal a 1 "; echo $testKor; echo "<br />"; } } elseif (isset($_POST["q5"]) && isset($_POST["btn_DEL"] )){ echo " T'a presser Delete et donne "; echo $indeX; include "dbConnect.php"; $request = "DELETE FROM `$table` WHERE `index`=$indeX LIMIT 1"; $requestA ="ALTER TABLE `$table` DROP COLUMN `index`"; $requestB ="ALTER TABLE `$table` ADD `index` INT UNSIGNED NOT NULL AUTO_INCREMENT , ADD INDEX (`index`)"; mysql_query($request) or exit(mysql_error()); mysql_query($requestA) or exit(mysql_error()); mysql_query($requestB) or exit(mysql_error()); mysql_close($dbcon); echo " Der Eintrag ist gelöscht."; echo $indeX ; } ?> <pre> <?php var_dump($_POST); ?> </pre> <?php /////////////////////////////////////////////// // // Test pour sauvegarde // ///////////////////////////////////////////// if (isset($_POST["LVA"])) {$Lehrveran = $_POST["LVA"]; $testLehrveran=1;} else {$Lehrveran = "";$testLehrveran =0;} ///////////////////////////////////////////////////////////// echo "<br />"; echo " La valeur initiale de testLehrveran= ".$testLehrveran; echo "<br />"; ///////////////////////////////////////////////////////////// if (isset($_POST["titel"])) {$Titel = $_POST["titel"]; $testtitel =1;} else {$Titel = ""; $testtitel=0;} ///////////////////////////////////////////////////////////// echo "<br />"; echo " La valeur initiale de testtitel= ".$testtitel; echo "<br />"; ///////////////////////////////////////////////////////////// if (isset($_POST["autor"])) {$autor = $_POST["autor"]; $testautor= 1;} else {$autor = ""; $testautor= 0;} ///////////////////////////////////////////////////////////// echo "<br />"; echo " La valeur initiale de testautor= ".$testautor; echo "<br />"; ///////////////////////////////////////////////////////////// if (isset($_POST["thema"])) {$Thema = $_POST["thema"]; $testthema= 1;} else {$Thema = ""; $testthema= 0;} ///////////////////////////////////////////////////////////// echo "<br />"; echo " La valeur initiale de testthema= ".$testthema; echo "<br />"; ///////////////////////////////////////////////////////////// if (isset($_POST["MaterialsTyp"])) {$matType = ($_POST["MaterialsTyp"]);$testmatType= 1;} else {$matType = ""; $testmatType= 0;} ///////////////////////////////////////////////////////////// echo "<br />"; echo " La valeur initiale de testmatType= ".$testmatType; echo "<br />"; ///////////////////////////////////////////////////////////// if (isset($_POST["mein_C_Box"])) {$conVar = substr($concaVar, 1,$lengthStr); $testconVar = 1;} else {$conVar = ""; $testconVar= 0;} ///////////////////////////////////////////////////////////// echo "<br />"; echo " La valeur initiale de testconVar= ".$testconVar; echo "<br />"; echo " La valeur initiale de conVar= ".$conVar; echo "<br />"; ///////////////////////////////////////////////////////////// if (isset($_POST["mein_Feld"])) {$matStat = $_POST["mein_Feld"]; $testmatStat= 1;} else {$matStat = ""; $testmatStat= 0;} ///////////////////////////////////////////////////////////// echo "<br />"; echo " La valeur initiale de testmatStat= ".$testmatStat; echo "<br />"; echo " La valeur initiale de matStat= ".$matStat; echo "<br />"; ///////////////////////////////////////////////////////////// if (isset($_POST["url"])) {$Url = $_POST["url"]; $testUrl=1;} else {$Url = ""; $testUrl=0;} ///////////////////////////////////////////////////////////// echo "<br />"; echo " La valeur initiale de testUrl= ".$testUrl; echo "<br />"; ///////////////////////////////////////////////////////////// $addtest = $testLehrveran + $testtitel + $testautor + $testthema + $testmatType + $testconVar + $testmatStat + $testUrl; echo " Valeur de addTset = ".$addtest; echo "<br />"; if ((isset($_POST["btn_Speich"] )) && ($testKor == 1) && ($addtest = 8)){ echo "Ici au debut de Speichern&&nachKor testKor doit etre a un Valeur= "; echo $testKor; echo "<br />"; include "dbConnect.php"; echo "contenu de addTest en haut de UPDATE "; echo $addTest; echo "<br />"; if (isset($_POST["titel"])) $Titel = $_POST["titel"]; else $Titel = ""; if (isset($_POST["autor"])) $autor = $_POST["autor"]; else $autor = ""; if (isset($_POST["thema"])) $Thema = $_POST["thema"]; else $Thema = ""; if (isset($_POST["LVA"])) $Lehrveran = $_POST["LVA"]; else $Lehrveran = ""; if (isset($_POST["mein_Feld"])) $matStat = $_POST["mein_Feld"]; else $matStat = ""; echo $matStat; if (isset($_POST["MaterialsTyp"])) $matType = $_POST["MaterialsTyp"]; else $matType = ""; if (isset($_POST["mein_C_Box"])) {$conVar = substr($concaVar, 0,$lengthStr); } else {$conVar = ""; } echo "<br />"; echo " La valeur de concaVar avant control est = ".$concaVar; echo "<br />"; if (isset($_POST["url"])) $Url = $_POST["url"]; else $Url = ""; $dixAddTest = "0"; $testKor = "0"; $_SESSION['testKor'] = "$testKor"; echo "<br />"; echo "Ici dans Kor testKor doit etre remis a zero "; echo $testKor; echo "<br />"; echo "<br />"; $reqUpdate ="UPDATE `$table` SET `lehrveran` = '$Lehrveran', `titel` = '$Titel', `autor` = '$autor', `thema` = '$Thema', `matType` = '$matType' , `MatStatus` = '$matStat', `dateiFormat` = '$conVar', `url` = '$Url' WHERE `index` = '$index' "; mysql_query($reqUpdate) or exit(mysql_error()); mysql_close($dbcon); echo " Die Replace wurde geschickt"; echo $testKor; } ?> <form method="post" action="Prakt_S2.php"> <!-- ************************************************* HTML_KODE fuer das Formular Anfang mit TextFelder fuer den Titel ************************************************** --> <div class = "hell"> <h3>Hier ist der Titel zu erfassen</h3> <textarea rows="2" cols="20" name="titel"> <?php if (($testKor = 1)&&(isset($chTemp_1))){echo $chTemp_1;} ?> </textarea> </div> <!-- HTML_KODE fuer das Formular Hier 3 Pulldown menus mit die Moeglichkeit eine neue Eintrag durch ein untere Formular zu machen. Das Ergebnis der unteren Formularen werden in 3 anderen Tabelle gespeichert und wieder im Pdown gebracht. Hier st die erste mischung zwischen PHP und HTML Das Ganze ist durch eine Table organisert, um eine so schoen wie moeglich Darstellung zu haben. --> <div class = "leer"> <h3>Hier sind die Autor, Thema, und Lehrveranstaltung zu erfassen</h3> <!-- Titel --> <table class="large" border="1" > <tr> <td class="a1" >Autor :</td> <td class="a1" >Thema :</td> <td class="a1" >Lehrveranstaltung :</td> </tr> <tr> <td> <!-- Der Pulldown menu fuer Autorseingabe ist hier zu finden. Die anderen Pulldown menu Theme, LVA, und Mat. Type folgen genau dieses Muster. Deswegen wird diese Kommentar nicht wiederholt. Dies Block Braucht die PHPDatei dbContabAutor.php, um seine Aufgabe zu machen. D.h. Die Autorsname im Textfeld des pulldown menu mitzubringen. Inhalt von dbContabAutor.php Es ist klar dass, normaleweise diese Informationen, auf Sicherheit Grund, hier nicht zu geben sind. $host = "localhost"; //Var. Serversname $user = "MP"; //Var. Username $pass = "rapass"; //Var. Password $name = "neuedbase"; //Var. DBasesname $table = "tabautor"; //Var. Tabellesname $dbcon =@mysql_connect($host, $user, $pass) or exit(mysql_error()); @mysql_select_db($name) or exit(mysql_error()); // Die erste Befehl macht eine Verbindung mit der DBank // Die zweite selektiert die Tabelle // Beine sind eine mischng zwischen PHP und mySQL // Die whileschleife nimmt jede erste Eintrag der Tabelle // und schreibt es im option TAG von HTML, der macht danach die Darstellung. --> <select name="autor"> <option> <?php if (($testKor == 1)&&(isset($chTemp_2))){echo $chTemp_2;} ?> </option> <?php include "dbContabAutor.php"; $mysql_result = mysql_query("SELECT * FROM $table;") ; //prendre chaque rangée // afficher rubrique while ($ligne = mysql_fetch_array($mysql_result)) { ?> <option><?print($ligne["autorID"]); ?> </option> <?php } ?> </select> </td> <!-- Pulldown menu fuer Thema Siehe oben Komentar fuer Pulldown menu von Autor --> <td> <select name="thema"> <option> <?php if (($testKor == 1)&&(isset($chTemp_3))){echo $chTemp_3;} ?> </option> <?php include "dbContabThema.php"; $mysql_result = mysql_query("SELECT * FROM $table;") ; while ($ligne = mysql_fetch_array($mysql_result)) { ?> <option> <?php print($ligne["thema_ID"]); ?> </option> <?php } ?> </select> </td> <!-- Pulldown menu fuer Lehrveranstaltung Siehe oben Komentar fuer Pulldown menu von Autor --> <td> <?php //echo "<br />"; //echo " Contenu de lva= ".$chTemp_4; //echo "<br />"; ?> <select name="LVA"> <option> <?php if (($testKor == 1)&&(isset($chTemp_4))){echo $chTemp_4;} ?> </option> <?php include "dbContabLVA.php"; $mysql_result = mysql_query("SELECT * FROM $table;") ; while ($ligne = mysql_fetch_array($mysql_result)) { ?> <option> <?php print($ligne["lva_ID"]); ?> </option> <?php } ?> </select> </td> </tr> <!-- Links fuer untere Formularen Autor, Thema, LVAsliste --> <tr> <td><a href="Form_Autor.php">Form_neue Autor</a> und Autorsliste</td> <td><a href="Form_Thema.php">Form_neue Thema</a> und Themasliste</td> <td><a href="Form_LVA.php">Form_neue LVA</a> und LVAsliste</td> </tr> </table> </div> <!-- Formular radio button fuer Status des materiales --> <?php echo $chTemp_5; ?> <div class = "hell"> <h3>Status des Materiales</h3> <input type="radio" name="mein_Feld" value="z" <?php if(isset($chTemp_5) && $chTemp_5=="z") {print "checked=\"checked\"";} ?> />Option 1 : officiell freigegeben<br /> <input type="radio" name="mein_Feld" value="y" <?php if(isset($chTemp_5) && $chTemp_5=="y") {print "checked=\"checked\"";} ?> />Option 2 : inoffiziell<br /> <input type="radio" name="mein_Feld" value="x" <?php if(isset($chTemp_5) && $chTemp_5=="x") {print "checked=\"checked\"";} ?> />Option 3 : Unklar<br /> </div> <!-- Pulldown menu fuer MaterialesTyp Siehe oben Komentar fuer Pulldown menu von Autor --> <div class = "leer"> <h3>Hier ist das typ des Materiales zu erfassen</h3> <select name="MaterialsTyp"> <option> <?php if (($testKor = 1)&&(isset($chTemp_6))){echo $chTemp_6;} ?> </option> <option>Aufgabe</option> <option>Klausur</option> <option>&Uuml;bung</option> <option>L&ouml;sung</option> <option>Ressourse</option> </select> </div> <div class = "hell"> <h3>Hier soll man das Format des Lehrmaterial geben</h3><br /> <!-- Formular check box fuer die Eingabe des DateiFormats Hier wird auch eine table benutzt, um den Layout zu organisieren. Das CheckboxsErgebnis ist ein string. Er wurde zusammen mit der Ergebnissen des CB_Block gefasst. Jede CB_Ergebnis ist miteinander konkateniert durch die foreach Schleife. Diese Methode wurde gewahlt, weil Das Dateiformat fuer die DatenB. ein SET ist. D. h., man muss ein String der Form a,b,c,d,e,f liefern. Die Logische Entscheidung wuerde nicht diese Methode empfehlen, wegen die zusatzliche Arbeit, um diese String zu interpretieren. Wenn man z. b. Das Ergebnis von dem CB am Bildschirm zeigen will --> <table class="large" border="1"> <tr> <th class="a" colspan="3" >Man kann hier bis sechs DateiFormat w&auml;hlen</th> </tr> <tr class="a"> <td > <?php $checked = strstr($chTemp_7, "a") ? " checked=\"checked\"" : null; ?> <input type="checkbox" name="mein_C_Box[]" value="a"<?php echo($checked); ?> /><b>: L<sup>A</sup>T<sub>E</sub>X</b> </td> <td> <?php $checked = strstr($chTemp_7, "b") ? " checked=\"checked\"" : null; ?> <input type="checkbox" name="mein_C_Box[]" value="b"<?php echo($checked); ?> /><b>: HTML</b> </td> <td > <?php $checked = strstr($chTemp_7, "c") ? " checked=\"checked\"" : null; ?> <input type="checkbox" name="mein_C_Box[]" value="c"<?php echo($checked); ?> /><b>: PDF</b> </td> </tr> <tr class="a"> <td > <?php $checked = strstr($chTemp_7, "d") ? " checked=\"checked\"" : null; ?> <input type="checkbox" name="mein_C_Box[]" value="d"<?php echo($checked); ?> /><b>: PNG</b> </td> <td> <?php $checked = strstr($chTemp_7, "e") ? " checked=\"checked\"" : null; ?> <input type="checkbox" name="mein_C_Box[]" value="e"<?php echo($checked); ?> /><b>: URL</b> </td> <td> <?php $checked = strstr($chTemp_7, "f") ? " checked=\"checked\"" : null; ?> <input type="checkbox" name="mein_C_Box[]" value="f"<?php echo($checked); ?> /><b>: JAVA</b> </td> </tr> </table> </div> <?php $lengthStr=""; $concaVar = ""; $varComa =","; if (!isset($_POST["mein_C_Box"])) $_value = ""; else { foreach($_POST["mein_C_Box"] as $_value) { switch ($_value) { case "a" : $concaVar = $concaVar . $varComa . $_value; break; case "b" : $concaVar = $concaVar . $varComa . $_value; break; case "c" : $concaVar = $concaVar . $varComa . $_value; break; case "d" : $concaVar = $concaVar . $varComa . $_value; break; case "e" : $concaVar = $concaVar . $varComa . $_value; break; case "f" : $concaVar = $concaVar . $varComa . $_value; break; default : $_val = "Fehl. Dat. "; break; } $lengthStr = strlen ($concaVar); $lengthStr = $lengthStr - 1; $conVar = substr($concaVar, 1,$lengthStr); } } ?> <!-- TextFelder fuer Anbage der UrlAdresse --> <div class = "leer"> <h3>Hier ist das Uniforme Ressourse Locator URL zu geben</h3> <textarea rows="2" cols="20" name="url" > <?php if (($testKor = 1)&&(isset($chTemp_1))){echo $chTemp_8;} ?> </textarea> <p> &nbsp;<br /> </p> <div class = "bemerk" > <table> <tr> <td>Eintrag zu korrigieren<br /> oder löschen:&nbsp;&nbsp;</td> <td><input type="text" size="3" name="q5" />&nbsp; <input type="submit" name="btn_KOR" value="KOR" />&nbsp;<input type="submit" name="btn_DEL" value="DEL " /> </td> </tr> <tr>&nbsp;<br /></tr> </table> </div> </div> <div class = "hell"> <fieldset> <legend> <b>&nbsp;&nbsp;Werte zu schicken &nbsp;&nbsp;</b> <input type="submit" name="btn_Speich" value="Speichern" />&nbsp;&nbsp;<br /> </legend> <!-- Es gibt hier drei Art aus Test Erste fall if (isset($_POST["LVA"])) {$Lehrveran = $_POST["LVA"]; } else {$Lehrveran = "";} Es ist nur benutzt, um störende Fehlermeldung nicht zu haben Zweite und dritte fall sind benutzt, um zu sichern daß alle Variablen gesetzt sind. Wenn ja, Werte schicken Wenn nein, Werte nicht schicken Der Inhalt selbst wird nicht geprüft if ($etwas == "") {$testetwas =0;} else {$testetwas =1;} if (isset($_POST["titel"])) {$Titel = $_POST["titel"];$testtitel= 1;} else {$Titel = ""; $testtitel= 0;} Gleiche Prinzip, aber man kann direkt die Var. benutzen Ein letzte Test sorgt fuer die Ausdruck von Eingabe, wenn alle Daten dabei sind. Nur $addTest == 8 ist druckt den Text, sonst nichts --> <!-- Dies switchCase ist benutzt um das Ergebnis von radio Button zu interpretieren und am Bldschirm zu darstellen. Hier auch diese Methode wurde gewahlt wegen das DateisFormat ENUM der DatenBank. --> <br /> <?php switch ($matStat) { case "z" : $matS = "freigegeben"; break; case "y" : $matS = "inoffiziell"; break; case "x" : $matS = "Unklar"; break; default : $matS = "Fehl. Dat."; break; echo $matS; } echo "Das Status des Materiales ist: ".$matS ; ?> <br /> <?php echo "Das Format des Materiales ist: "; $concaVar = $conVar; $start = 0; $end = strlen ($concaVar); while ($start < $end) { $letter = $concaVar{$start}; switch ($letter) { case "a" : echo " L<sup>A</sup>T<sub>E</sub>X&nbsp;&nbsp;"; break; case "b" : echo "HTML&nbsp;&nbsp;&nbsp;"; break; case "c" : echo "PDF&nbsp;&nbsp;&nbsp;"; break; case "d" : echo "PNG&nbsp;&nbsp;&nbsp;"; break; case "e" : echo "URL&nbsp;&nbsp;&nbsp;"; break; case "f" : echo "JAVA&nbsp;&nbsp;&nbsp;"; break; default : $_val = "Fehl. Dat. "; break; } $start = $start + 2; } ?> <br /> <?php echo "Die URL-Adresse ist:".$Url ; ?> <br /> <br /> </fieldset> </div> </form> </div> <!--Ende Z_FassungsSeite--> </body> </html>

Merci pour la patience

Marc_3

Mammouth du PHP | 19672 Messages

11 oct. 2005, 19:41

Bon, le même remis un peu droit, tu t'y retrouveras peut-être plus facilement, j'ai optimisé pas mal de if/else, ça réduit la quantitéde code.

Je me demande si le problème ne vient pas de ce que tu as trois boutons submit :-k
<?php
session_start();
$index   = (isset($_SESSION['index']))   ? $_SESSION['index']   : "";
$testKor = (isset($_SESSION['testKor'])) ? $_SESSION['testKor'] : 0;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250" />
<meta name="generator" content="PSPad editor, www.pspad.com" />
<meta name="Author" content=" Authorsnames YC MP" />
<link rel="stylesheet" type="text/css" href="Ausbau_style.css" />
<title>Prakt_S2 Formular</title>
</head>
<body>
<!--
HTML_KODE fuer Titel des Fensters
NB Die ganze Fenster Fonktionniert nur mit Ausbau_style.css
-->
<div id="textFeld">
<div id="ImaTitre">
<img id="athena" src="image/athene_G.gif" alt="Athene" /><br />
<p>
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;<br />
</p>
<h1 id="ex1">FORMULAR EINTRAG der WERTE </h1><br />
&nbsp;<br />
</div>
<!--
***********************************************
HTML_KODE Links fuer andere Fenster
***********************************************
-->
<a class="linx" href="Prakt_S1.php">Home</a><br />
<a class="linx" href="Prakt_S3.php">Tabelle</a><br />
&nbsp;<br />
</tr>
<?php
/*-------------------------------------------------*/
/* Variablen decl??????
/*-------------------------------------------------*/


$chTemp_5 = (isset($ligne['MatStatus'])) ? $ligne['MatStatus'] : "";

$chTemp_7 = (isset($ligne['dateiFormat'])) ? $ligne['dateiFormat'] : "";

/*-------------------------------------------------*/
/* Nouveau Texte Kor && Del
/*-------------------------------------------------*/

$indeX = (isset($_POST["q5"])) ? $_POST["q5"] : "";
$_SESSION['index'] = "$indeX";

if (isset($_POST["q5"]) && isset($_POST["btn_KOR"] ))
{
    echo " T'a presser Korrige et donne ";
    echo $indeX;
    echo "<br />";
    echo "<br />";
    echo "Ici au debut de KOR testKor est egal a zero";
    echo $testKor;
    echo "<br />";
    include "dbConnect.php";

    $mysql_result = mysql_query("SELECT `lehrveran` ,`titel` ,`autor`,`thema`, `matType`, `MatStatus`, `dateiFormat`, `url`
                             FROM `".$table."` WHERE `index`='". $indeX ."'  ");
    while ($ligne = mysql_fetch_array($mysql_result))
    {
        $chTemp_1 = (isset($ligne['titel'])) ? $ligne['titel'] : "";
        $chTemp_2 = (isset($ligne['autor'])) ? $ligne['autor'] : "";
        $chTemp_3 = (isset($ligne['thema'])) ? $ligne['thema'] : "";
        $chTemp_4 = (isset($ligne['lehrveran'])) ? $ligne['lehrveran'] : "";
        $chTemp_5 = (isset($ligne['MatStatus'])) ? $ligne['MatStatus'] : "";
        $chTemp_6 = (isset($ligne['matType'])) ? $ligne['matType'] : "";

        echo "<br />";
        echo "Ici chTemp_5 contient ";
        echo $chTemp_5;

        $chTemp_7 = (isset($ligne['dateiFormat'])) ? $ligne['dateiFormat'] : "";

        echo "<br />";
        echo "Ici chTemp_7 contient ";
        echo $chTemp_7;

        $chTemp_8 = (isset($ligne['url'])) ? $ligne['url'] : "";

        echo "<br />";
        echo "<br />";

        $testKor = "1";
        $_SESSION['testKor'] = $testKor;
        echo "Ici a la fin de Var de session testKor devrait etre egal a 1 ";
        echo $testKor;
        echo "<br />";
    }
}
elseif (isset($_POST["q5"]) && isset($_POST["btn_DEL"] ))
{
    echo " T'a presser Delete et donne ";
    echo $indeX;
    include "dbConnect.php";
    $request = "DELETE FROM `". $table ."` WHERE `index`=". $indeX ." LIMIT 1";
    $requestA ="ALTER TABLE `". $table ."` DROP COLUMN `index`";
    $requestB ="ALTER TABLE `". $table ."` ADD `index` INT UNSIGNED NOT NULL AUTO_INCREMENT , ADD INDEX (`index`)";

    mysql_query($request) or exit(mysql_error());
    mysql_query($requestA) or exit(mysql_error());
    mysql_query($requestB) or exit(mysql_error());
    mysql_close($dbcon);
    echo " Der Eintrag ist gelöscht.";
    echo $indeX ;
}
?>
<pre>
<?php
var_dump($_POST);
?>
</pre>
<?php

///////////////////////////////////////////////
//
// Test pour sauvegarde
//
/////////////////////////////////////////////
$Lehrveran     = (isset($_POST["LVA"])) ? $_POST["LVA"] : "";
$testLehrveran = (isset($_POST["LVA"])) ? 1 : 0;
/////////////////////////////////////////////////////////////
echo "<br />";
echo " La valeur initiale de testLehrveran= ".$testLehrveran;
echo "<br />";
/////////////////////////////////////////////////////////////
$Titel = (isset($_POST["titel"])) ? $_POST["titel"] : "";
$testtitel = (isset($_POST["titel"])) ? 1 : 0;
/////////////////////////////////////////////////////////////
echo "<br />";
echo " La valeur initiale de testtitel= ".$testtitel;
echo "<br />";
/////////////////////////////////////////////////////////////

$autor = (isset($_POST["autor"])) ? $_POST["autor"] : "";
$testautor= (isset($_POST["autor"])) ? 1 : 0;
/////////////////////////////////////////////////////////////
echo "<br />";
echo " La valeur initiale de testautor= ".$testautor;
echo "<br />";
/////////////////////////////////////////////////////////////
$Thema = (isset($_POST["thema"])) ? $_POST["thema"] : "";
$testthema = (isset($_POST["thema"])) ? 1 : 0;
/////////////////////////////////////////////////////////////
echo "<br />";
echo " La valeur initiale de testthema= ".$testthema;
echo "<br />";
/////////////////////////////////////////////////////////////
$matType = (isset($_POST["MaterialsTyp"])) ? $_POST["MaterialsTyp"] : "";
$testmatType = (isset($_POST["MaterialsTyp"])) ? 1 : 0;
/////////////////////////////////////////////////////////////
echo "<br />";
echo " La valeur initiale de testmatType= ".$testmatType;
echo "<br />";
/////////////////////////////////////////////////////////////
$conVar = (isset($_POST["mein_C_Box"])) ? substr($concaVar, 1,$lengthStr) : "";
$testconVar = (isset($_POST["mein_C_Box"])) ? 1 : 0;
/////////////////////////////////////////////////////////////
echo "<br />";
echo " La valeur initiale de testconVar= ".$testconVar;
echo "<br />";
echo " La valeur initiale de conVar= ".$conVar;
echo "<br />";

/////////////////////////////////////////////////////////////
$matStat = (isset($_POST["mein_Feld"])) ? $_POST["mein_Feld"] : "";
$testmatStat = (isset($_POST["mein_Feld"])) ? 1 : 0;
/////////////////////////////////////////////////////////////
echo "<br />";
echo " La valeur initiale de testmatStat= ".$testmatStat;
echo "<br />";
echo " La valeur initiale de matStat= ".$matStat;
echo "<br />";
/////////////////////////////////////////////////////////////

$Url = (isset($_POST["url"])) ? $_POST["url"] : "";
$testUrl = (isset($_POST["url"])) ? 1 : 0;
/////////////////////////////////////////////////////////////
echo "<br />";
echo " La valeur initiale de testUrl= ".$testUrl;
echo "<br />";
/////////////////////////////////////////////////////////////

$addtest = $testLehrveran +  $testtitel + $testautor + $testthema + $testmatType + $testconVar + $testmatStat + $testUrl;
echo " Valeur de addTset = ".$addtest;
echo "<br />";


if ((isset($_POST["btn_Speich"] )) && ($testKor == 1) && ($addtest == 8))
{
    echo "Ici au debut de Speichern&&nachKor testKor doit etre a un Valeur= ";
    echo $testKor;
    echo "<br />";

    include "dbConnect.php";

    echo "contenu de addTest en haut de UPDATE ";
    echo $addTest;
    echo "<br />";

    $Titel     = (isset($_POST["titel"]))        ? $_POST["titel"]                 : "";
    $autor     = (isset($_POST["autor"]))        ? $_POST["autor"]                 : "";
    $Thema     = (isset($_POST["thema"]))        ? $_POST["thema"]                 : "";
    $Lehrveran = (isset($_POST["LVA"]))          ? $_POST["LVA"]                   : "";
    $matStat   = (isset($_POST["mein_Feld"]))    ? $_POST["mein_Feld"]             : "";
    echo $matStat;
    $matType   = (isset($_POST["MaterialsTyp"])) ? $_POST["MaterialsTyp"]          : "";
    $conVar    = (isset($_POST["mein_C_Box"]))   ? substr($concaVar, 0,$lengthStr) : "";

    echo "<br />";
    echo " La valeur de concaVar avant control est = ".$concaVar;
    echo "<br />";

    $Url       = (isset($_POST["url"]))          ? $_POST["url"]                   : "";

    $dixAddTest = 0;
    $testKor = 0;
    $_SESSION['testKor'] = "$testKor";

    echo "<br />";
    echo "Ici dans Kor testKor doit etre remis a zero ";
    echo $testKor;
    echo "<br />";
    echo "<br />";

    $reqUpdate ="UPDATE `". $table ."`
             SET `lehrveran` = '". $Lehrveran ."', 
                 `titel` = '". $Titel ."', 
                 `autor` = '". $autor ."', 
                 `thema` = '". $Thema ."', 
                 `matType` = '". $matType ."' , 
                 `MatStatus` = '". $matStat ."', 
                 `dateiFormat` = '". $conVar ."', 
                 `url` = '". $Url ."' 
              WHERE `index` = ". $index;

    mysql_query($reqUpdate) or exit(mysql_error());
    mysql_close($dbcon);
    echo " Die Replace wurde geschickt";
    echo $testKor;
}
?>
<form method="post" action="./Prakt_S2.php">
<!--
*************************************************
HTML_KODE fuer das Formular
Anfang mit TextFelder fuer den Titel
**************************************************
-->
  <div class = "hell">
  <h3>Hier ist der Titel zu erfassen</h3>
  <textarea rows="2" cols="20" name="titel">
<?php
if (($testKor = 1)&&(isset($chTemp_1))){echo $chTemp_1;}
?>
  </textarea>
  </div>
<!--
HTML_KODE fuer das Formular
Hier 3 Pulldown menus mit die Moeglichkeit eine neue Eintrag durch ein untere
Formular zu machen.
Das Ergebnis der unteren Formularen werden in 3 anderen Tabelle gespeichert und
wieder im Pdown gebracht. Hier st die erste mischung zwischen PHP und HTML
Das Ganze ist durch eine Table organisert, um eine so schoen wie moeglich
Darstellung zu haben.
-->
  <div class = "leer">
  <h3>Hier sind die Autor, Thema, und Lehrveranstaltung zu erfassen</h3>
<!--
Titel
-->
  <table class="large" border="1" >
    <tr>
      <td class="a1" >Autor :</td>
      <td class="a1" >Thema :</td>
      <td class="a1" >Lehrveranstaltung :</td>
    </tr>
    <tr>
      <td>
<!--
Der Pulldown menu fuer Autorseingabe ist hier zu finden.
Die anderen Pulldown menu Theme, LVA, und Mat. Type folgen genau dieses Muster.
Deswegen wird diese Kommentar nicht wiederholt.
Dies Block Braucht die PHPDatei dbContabAutor.php, um seine Aufgabe zu machen.
D.h. Die Autorsname im Textfeld des pulldown menu mitzubringen.
Inhalt von dbContabAutor.php
Es ist klar dass, normaleweise diese Informationen, auf Sicherheit Grund, hier
nicht zu geben sind.
$host = "localhost"; //Var. Serversname
$user = "MP"; //Var. Username
$pass = "rapass"; //Var. Password
$name = "neuedbase"; //Var. DBasesname
$table = "tabautor"; //Var. Tabellesname
$dbcon =@mysql_connect($host, $user, $pass) or exit(mysql_error());
@mysql_select_db($name) or exit(mysql_error());
// Die erste Befehl macht eine Verbindung mit der DBank
// Die zweite selektiert die Tabelle
// Beine sind eine mischng zwischen PHP und mySQL
// Die whileschleife nimmt jede erste Eintrag der Tabelle
// und schreibt es im option TAG von HTML, der macht danach die Darstellung.
-->
        <select name="autor">
        <option>
<?php
if (($testKor == 1)&&(isset($chTemp_2))){echo $chTemp_2;}
?>
        </option>
<?php   
include "dbContabAutor.php";
$mysql_result = mysql_query("SELECT * FROM $table;") ;
//prendre chaque rangée
// afficher rubrique

while ($ligne = mysql_fetch_array($mysql_result))
{
?>
        <option><?print($ligne["autorID"]); ?>
        </option>
<?php
}
?>
        </select>
      </td>
<!--
Pulldown menu fuer Thema
Siehe oben Komentar fuer Pulldown menu von Autor
-->
      <td>
        <select name="thema">
        <option>
<?php
if (($testKor == 1)&&(isset($chTemp_3))){echo $chTemp_3;}
?>
        </option>
<?php   
include "dbContabThema.php";
$mysql_result = mysql_query("SELECT * FROM $table;");
while ($ligne = mysql_fetch_array($mysql_result))
{
?>
        <option>
<?php print($ligne["thema_ID"]); ?>
        </option>
<?php
}
 ?>
        </select>
      </td>
<!--
Pulldown menu fuer Lehrveranstaltung
Siehe oben Komentar fuer Pulldown menu von Autor
-->
      <td>
<?php 
//echo "<br />";
//echo " Contenu de lva= ".$chTemp_4;
//echo "<br />";
?>
        <select name="LVA">
        <option>
<?php
if (($testKor == 1)&&(isset($chTemp_4))){echo $chTemp_4;}

?>
        </option>
<?php   
include "dbContabLVA.php";
$mysql_result = mysql_query("SELECT * FROM $table;") ;

while ($ligne = mysql_fetch_array($mysql_result))
{
?>
        <option>
<?php
print($ligne["lva_ID"]);
 ?>
        </option>
<?php
}
 ?>
        </select>
      </td>
    </tr>
<!--
Links fuer untere Formularen Autor, Thema, LVAsliste
-->
    <tr>
      <td><a href="Form_Autor.php">Form_neue Autor</a> und Autorsliste</td>
      <td><a href="Form_Thema.php">Form_neue Thema</a> und Themasliste</td>
      <td><a href="Form_LVA.php">Form_neue LVA</a> und LVAsliste</td>
    </tr>
  </table>
  </div>
<!--
Formular radio button fuer Status des materiales
-->
<?php echo $chTemp_5; ?>
  <div class = "hell">
  <h3>Status des Materiales</h3>
  <input type="radio" name="mein_Feld" value="z" <?php if(isset($chTemp_5) && $chTemp_5=="z") {print "checked=\"checked\"";} ?> />Option 1 : officiell freigegeben<br />
  <input type="radio" name="mein_Feld" value="y" <?php if(isset($chTemp_5) && $chTemp_5=="y") {print "checked=\"checked\"";} ?> />Option 2 : inoffiziell<br />
  <input type="radio" name="mein_Feld" value="x" <?php if(isset($chTemp_5) && $chTemp_5=="x") {print "checked=\"checked\"";} ?> />Option 3 : Unklar<br />
  </div>
<!--
Pulldown menu fuer MaterialesTyp
Siehe oben Komentar fuer Pulldown menu von Autor
-->
  <div class = "leer">
  <h3>Hier ist das typ des Materiales zu erfassen</h3>
  <select name="MaterialsTyp">
  <option>
<?php
if (($testKor = 1)&&(isset($chTemp_6))){echo $chTemp_6;}
?>
  </option>
  <option>Aufgabe</option>
  <option>Klausur</option>
  <option>Übung</option>
  <option>Lösung</option>
  <option>Ressourse</option>
  </select>
  </div>
  <div class = "hell">
  <h3>Hier soll man das Format des Lehrmaterial geben</h3><br />
<!--
Formular check box fuer die Eingabe des DateiFormats
Hier wird auch eine table benutzt, um den Layout zu organisieren.
Das CheckboxsErgebnis ist ein string. Er wurde zusammen mit der
Ergebnissen des CB_Block gefasst.
Jede CB_Ergebnis ist miteinander konkateniert durch die foreach
Schleife. Diese Methode wurde gewahlt, weil Das Dateiformat fuer
die DatenB. ein SET ist. D. h., man muss ein String der Form a,b,c,d,e,f
liefern. Die Logische Entscheidung wuerde nicht diese Methode empfehlen,
wegen die zusatzliche Arbeit, um diese String zu interpretieren.
Wenn man z. b. Das Ergebnis von dem CB am Bildschirm zeigen will
-->
  <table class="large" border="1">
    <tr>
      <th class="a" colspan="3" >Man kann hier bis sechs DateiFormat wählen</th>
    </tr>
    <tr class="a">
      <td >
<?php $checked = strstr($chTemp_7, "a") ? " checked=\"checked\"" : null;  ?>
        <input type="checkbox" name="mein_C_Box[]" value="a"<?php echo($checked); ?>
        /><b>: L<sup>A</sup>T<sub>E</sub>X</b>
      </td>
      <td>
<?php $checked = strstr($chTemp_7, "b") ? " checked=\"checked\"" : null; ?>
        <input type="checkbox" name="mein_C_Box[]" value="b"<?php echo($checked); ?> 
        /><b>: HTML</b>
      </td>
      <td >
<?php $checked = strstr($chTemp_7, "c") ? " checked=\"checked\"" : null; ?>
        <input type="checkbox" name="mein_C_Box[]" value="c"<?php echo($checked); ?> 
        /><b>: PDF</b>
      </td>
    </tr>
    <tr class="a">
      <td >
<?php $checked = strstr($chTemp_7, "d") ? " checked=\"checked\"" : null; ?>
        <input type="checkbox" name="mein_C_Box[]" value="d"<?php echo($checked); ?>
        /><b>: PNG</b>
      </td>
      <td>
<?php $checked = strstr($chTemp_7, "e") ? " checked=\"checked\"" : null; ?>
        <input type="checkbox" name="mein_C_Box[]" value="e"<?php echo($checked); ?>
        /><b>: URL</b>
      </td>
      <td>
<?php $checked = strstr($chTemp_7, "f") ? " checked=\"checked\"" : null; ?>
        <input type="checkbox" name="mein_C_Box[]" value="f"<?php echo($checked); ?>
        /><b>: JAVA</b>
      </td>
    </tr>
  </table>
  </div>
<?php
$lengthStr="";
$concaVar = "";
$varComa =",";
if (!isset($_POST["mein_C_Box"]))
$_value = "";
else
{
    foreach($_POST["mein_C_Box"] as $_value)
    {
        switch ($_value)
        {
            case "a" :
            $concaVar .= $varComa . $_value;
            break;
            case "b" :
            $concaVar .= $varComa . $_value;
            break;
            case "c" :
            $concaVar .= $varComa . $_value;
            break;
            case "d" :
            $concaVar .= $varComa . $_value;
            break;
            case "e" :
            $concaVar .= $varComa . $_value;
            break;
            case "f" :
            $concaVar .= $varComa . $_value;
            break;
            default :
            $_val = "Fehl. Dat. ";
        }
        $lengthStr = strlen ($concaVar);
        $lengthStr = $lengthStr - 1;
        $conVar = substr($concaVar, 1,$lengthStr);
    }
}
?>
<!--
TextFelder fuer Anbage der UrlAdresse
-->
  <div class = "leer">
  <h3>Hier ist das Uniforme Ressourse Locator URL zu geben</h3>
  <textarea rows="2" cols="20" name="url" >
<?php
if (($testKor = 1)&&(isset($chTemp_1))){echo $chTemp_8;}
?>
  </textarea>
  <p>
  &nbsp;<br />
  </p>
  <div class = "bemerk" >
  <table>
    <tr>
      <td>Eintrag zu korrigieren<br /> oder löschen:&nbsp;&nbsp;</td>
      <td><input type="text" size="3" name="q5" />&nbsp; <input type="submit" name="btn_KOR" value="KOR" />&nbsp;<input type="submit" name="btn_DEL" value="DEL " /> </td>
    </tr>
    <tr>&nbsp;<br /></tr>
  </table>
  </div>
  </div>
  <div class = "hell">
  <fieldset>
  <legend>
  <b>&nbsp;&nbsp;Werte zu schicken &nbsp;&nbsp;</b>
  <input type="submit" name="btn_Speich" value="Speichern" />&nbsp;&nbsp;<br />
  </legend>
<!-- 
Es gibt hier drei Art aus Test
Erste fall
if (isset($_POST["LVA"]))
{$Lehrveran = $_POST["LVA"]; }
else
{$Lehrveran = "";}
Es ist nur benutzt, um störende Fehlermeldung nicht zu haben
Zweite und dritte fall sind benutzt, um zu sichern daß alle
Variablen gesetzt sind.
Wenn ja, Werte schicken
Wenn nein, Werte nicht schicken
Der Inhalt selbst wird nicht geprüft
if ($etwas == "")
{$testetwas =0;}
else
{$testetwas =1;}
if (isset($_POST["titel"]))
{$Titel = $_POST["titel"];$testtitel= 1;}
else
{$Titel = ""; $testtitel= 0;}
Gleiche Prinzip, aber man kann direkt die Var. benutzen
Ein letzte Test sorgt fuer die Ausdruck von Eingabe,
wenn alle Daten dabei sind.
Nur $addTest == 8 ist druckt den Text, sonst nichts
-->
<!--
Dies switchCase ist benutzt um das Ergebnis von radio Button zu interpretieren
und am Bldschirm zu darstellen. Hier auch diese Methode wurde gewahlt wegen
das DateisFormat ENUM der DatenBank.
-->
  <br />
<?php
switch ($matStat)
{
    case "z" :
    $matS = "freigegeben";
    break;
    case "y" :
    $matS = "inoffiziell";
    break;
    case "x" :
    $matS = "Unklar";
    break;
    default :
    $matS = "Fehl. Dat.";
}
echo $matS;

echo "Das Status des Materiales ist: ".$matS ;
?>
  <br />
<?php
echo "Das Format des Materiales ist: ";

$concaVar = $conVar;
$start = 0;
$end = strlen ($concaVar);

while ($start < $end) {
    $letter = $concaVar{$start};

    switch ($letter)
    {
        case "a" :
        echo "   L<sup>A</sup>T<sub>E</sub>X&nbsp;&nbsp;";
        break;
        case "b" :
        echo "HTML&nbsp;&nbsp;&nbsp;";
        break;
        case "c" :
        echo "PDF&nbsp;&nbsp;&nbsp;";
        break;
        case "d" :
        echo "PNG&nbsp;&nbsp;&nbsp;";
        break;
        case "e" :
        echo "URL&nbsp;&nbsp;&nbsp;";
        break;
        case "f" :
        echo "JAVA&nbsp;&nbsp;&nbsp;";
        break;
        default :
        $_val = "Fehl. Dat. ";
    }
    $start = $start + 2;
}
?>
  <br />
<?php
echo "Die URL-Adresse ist:".$Url ;

?>
  <br />
  <br />
  </fieldset>
  </div>
</form>
</div> <!--Ende Z_FassungsSeite--> 
</body>
</html>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 72 Messages

11 oct. 2005, 22:11

Merci de ton aide et tu as bien du courage je trouve.
Tu n'as pas perdu tout ton temps car il y a au moins une des deux variable qui est maintenant redonnee. Et en plus le contenu complet

Je te transmet ici le nouveau releve de la methode
<pre>
<?php
var_dump($_POST);
?>
</pre>

Code : Tout sélectionner

array(9) { ["titel"]=> string(24) " Test 12.30 " ["autor"]=> string(7) "A.Dumas" ["thema"]=> string(14) "Prakt_Internet" ["LVA"]=> string(17) "Form. G. der Info" ["mein_Feld"]=> string(1) "y" ["MaterialsTyp"]=> string(7) "Klausur" ["url"]=> string(21) " www.ctujj.com " ["q5"]=> string(1) "8" ["btn_KOR"]=> string(3) "KOR" }
Quesque j'ai fait de si mal que cela?

Pour ce qui est de l'avis pour plusieur boutons sur la meme page je ne savais pas que cela pouvait etre deconseiller et j'ai fait un essai sur un autre formulaire avec seulement 5 saisies et la pas de probleme.
Mais point peut etre important il n'y a la que des champs de textes.

Je regarderai le code demain plus en detail le programme de ce soir etait
allemand pour tous ce qui fait que je n'ai rien fait.

A demain


Marc_3

Mammouth du PHP | 19672 Messages

11 oct. 2005, 22:52

Merci de ton aide et tu as bien du courage je trouve.
J'ai surtout de très bons outils dont je commence à savoir me servir rapidement ;)

En y réfléchissant, plusieurs boutons submit, c'est possible, je l'ai déjà fait et ça marche nromalement très bien. La récupération peut parfois poser des problèmes, mais c'est secondaire.

Là, il faudrait voir la source html générée du formulaire et vérifier qu'il est correct.

Je n'ai pas pu m'aventurer dans les commentaires du code, ma connaissance de l'allemand avoisinant le zéro absolu :langue:
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

11 oct. 2005, 23:02

Une optimisaation de plus je pense, remplacer ceci:
foreach($_POST["mein_C_Box"] as $_value)
    {
        switch ($_value)
        {
            case "a" :
            $concaVar .= $varComa . $_value;
            break;
            case "b" :
            $concaVar .= $varComa . $_value;
            break;
            case "c" :
            $concaVar .= $varComa . $_value;
            break;
            case "d" :
            $concaVar .= $varComa . $_value;
            break;
            case "e" :
            $concaVar .= $varComa . $_value;
            break;
            case "f" :
            $concaVar .= $varComa . $_value;
            break;
            default :
            $_val = "Fehl. Dat. ";
        }
        $lengthStr = strlen ($concaVar);
        $lengthStr = $lengthStr - 1;
        $conVar = substr($concaVar, 1,$lengthStr);
    } 
par
$conVar = implode(",",$_POST["mein_C_Box"]);
sinon toutes les balises <option> n'ont pas d'attribut value, ça marche quant meme ?

sinon y a des fautes d'orthographe en ce qui concerne l'allemand :wink:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 72 Messages

12 oct. 2005, 09:36

Voila j'ai fais le tour des remarques, je commence au debut (oui bon, a la fin)
sinon toutes les balises <option> n'ont pas d'attribut value, ça marche quant meme ?
Oui sa marche, par aquis de conscience je suis aller faire un tour du cote de w3c et pas la moindre remarque concernant une "obligation" dans la maniere de faire. Et ca passe le test xhtml strickt. Pour ce que je sais c'est deja pas mal.

Pour: Une optimisaation de plus je pense, remplacer ceci par cela:

Ben chouette cela marche tres bien. Tellement bien que je pleure sur les heures passees a lire des tuto alors que cela a l'air si simple pour ceux qui ont lut l'autre version ou on ne parle que de cette methode.

Pour l'allemand c'a va etre une joie pour moi de te transmettre mes textes a corriger. D'habitude on se moque un peu de moi pour mes fautes en francais.

Pour le reste et apres quelques essais, il ya progres. Il n'y a que le check-box qui ne passe toujours pas.
voila ce que je recois quand je demande une corretion.
array(8) {
["titel"]=> string(2) " "
["autor"]=> string(0) ""
["thema"]=> string(0) ""
["LVA"]=> string(0) ""
["MaterialsTyp"]=> string(0) ""
["url"]=> string(2) " "
["q5"]=> string(2) "12"
["btn_KOR"]=> string(3) "KOR"
}
Comme plus tot mes variable de check-box et Radio ne sont pas presentes ici. Par contre elle sont reaffichees dans le formulaire.

J'en suis maintenant la. Sur mon dernier essai de saisie j'ai change toutes les entrees et il n'y en a plus qu'une qui ne passe pas. C'est a dire le check-box n'est pas transmis dans la BD. Je recois au retour ce releve pour les variables. Mais seulement apres avoir presser btn_Speich
array(10) {
["titel"]=> string(16) " sisisisisi"
["autor"]=> string(14) "Dr. Pr. Newton"
["thema"]=> string(4) "RT I"
["LVA"]=> string(7) "Berech."
["mein_Feld"]=> string(1) "z"
["MaterialsTyp"]=> string(9) "Ressourse"
["mein_C_Box"]=> array(6) {
[0]=> string(1) "a"
[1]=> string(1) "b"
[2]=> string(1) "c"
[3]=> string(1) "d"
[4]=> string(1) "e"
[5]=> string(1) "f" }
["url"]=> string(34) "www.kamtchaka.com "
["q5"]=> string(0) ""
["btn_Speich"]=> string(9) "Speichern"
}
Je suppose que cela montre le probleme de syncro dans le programme.
Est-ce qu'il n'y aurai pas moyen a travers une de ces fonctions magiques de recupere mes valeurs de array avant de faire l'envoi ou pendant l'envoi.

Marc_3

Eléphant du PHP | 72 Messages

12 oct. 2005, 12:54

Ben la je crois que je vais voir pour trouve autre chose

Merci a tous

Marc_3