Author Topic: Problem mit eigener $_POST-funktion  (Read 1571 times)

0 Members and 1 Guest are viewing this topic.

Guenni

  • Guest
Problem mit eigener $_POST-funktion
on: Tue, 02. January 2007 - 16:39:13
Hallo alle zusammen,
ich bin ein Frischling in Sachen vlib und habe ein Problem, was ich mir nicht erklären kann.
ich würde gerne folgende funktion verwenden
Code: [Select]
function POST($name) {
return htmlspecialchars(stripslashes(strip_tags($_POST[$name])));
}
binde ich allerdings die include ein, die diese funktion beinhaltet bleibt mein output weiß.
nehm ich die funktion wieder raus klappt alles einwandfrei. funktion wieder rein - weiße seite.
hab durch debug-messages das problem wirklich auf diese funktion eingegrenzt, denn ein output VOR der funktion wird ausgegeben, NACH der funktion nicht.
sogar die funktion
Code: [Select]
function x_POST($name) {
return($_POST[$name]);
}
klappt nicht.

jemand eine idee oder am besten sogar eine lösung ? ;D

danke im voraus
guenni

Guenni

  • Guest
Edit
Reply #1 on: Tue, 02. January 2007 - 16:41:49
PS : die funktion wird dabei noch nichtmal verwendet (!).
allein das parsen bringt schon das problem...
ich hab bis jetzt das template gebastelt und bin jetzt dabei den code dahinterzubauen.
es befindet sich noch kein quelltext im programm, außer das aufbereiten der loop-arrays aus php-arrays, die ich zum füllen von formularfeldern brauche.

Guenni

  • Guest
Re: Problem mit eigener $_POST-funktion
Reply #2 on: Tue, 02. January 2007 - 16:53:31
Sorry für das 3-fach posting :|
ich poste am besten nochmal den problem-quelltext.
in der include wird die o.g. funktion eingebunden.

add_item.php :
Code: [Select]
require include.php;
$loop = array();
for($i = 0; $i < sizeof($faecher); $i++) {
$loop[$i]["name"] = $faecher[$i];
$loop[$i]["select_id"] = $i;
}

$add_item->setloop(fach,$loop);
$add_item->pparse();

was ich noch hinzufügen kann ist, dass die funktion komischerweise beim parsen von anderen seiten keine probleme auswirft, deswegen poste ich auch nochmal das template-file. vllt ist hier der fehler begraben

template
Code: [Select]
<center>


<table class=add_item_table>
<form action=index.php?nav=2 method=post>
<tr>
  <td id="table_head" colspan=2><b><center>Artikel eingeben </b></td>
<tr>
  <td id=eingabe>Verkäufer</td>
  <td><input type=text size=30 name=name></td>
 </tr>
 <tr>
  <td id=eingabe>Passwort :</td>
  <td><input type=password size=15 name=pass1></td>
 </tr>
 <tr>
  <td id=eingabe>Passwort wiederholen:</td>
  <td><input type=password size=15 name=pass2></td>
 </tr>
 <tr>
  <td id=eingabe>E-Mail</td>
  <td><input type=text size=30 name=mail1></td>
 </tr>
 <tr>
  <td id=eingabe>E-Mail wiederholen</td>
  <td><input type=text size=30 name=mail2></td>
 </tr>
 <tr>
  <td id=eingabe>Schulfach</td>
  <td>
   <select size=1 name=fach>
    <tmpl_loop name=fach>
<option value={tmpl_var name=select_id escape=none}>{tmpl_var name=name escape=none}</option>
</tmpl_loop>
   </select>
  </td>
 </tr>
 <tr>
  <td id=eingabe>Stufe</font></td>
  <td>
   <select size=1 name=stufenwahl>
<option value=5>5</option>
<option value=6>6</option>
<option value=7>7</option>
<option value=8>8</option>
<option value=9>9</option>
<option value=10>10</option>
<option value=11>11</option>
<option value=12>12</option>
<option value=13>13</option>
   </select>
  </td>
 </tr>
 <tr>
  <td id=eingabe>Autor</td>
  <td><input type=text size=42 name=autor></td>
 </tr>
 <tr>
  <td id=eingabe>Titel</td>
  <td><input type=text size=42 name=titel></td>
 </tr>
 <tr>
  <td id=eingabe>ISBN</td>
  <td><input type=text size=15 maxlength=15 name=isbn></td>
 </tr>
 <tr>
  <td id=eingabe>Preis</td>
  <td><input type=text size=5 maxlength=6 name=preis> €</td>
 </tr>
 <tr>
  <td id=eingabe>Informationen</td>
  <td><textarea style="background-color:white; border:1px solid;"rows=5 cols=40 name=infos></textarea></td>
 </tr>
 <tr>
 
  <td id=eingabe colspan=2><center><input type=submit name=eintragen value=Eintragen>
  <input type=reset value=Abbrechen>
  </td>
 </tr>
 </table>
</form>
</body>
</html>

Offline ClausVB

  • Administrator
  • Hero Member
  • *****
  • Posts: 566
    • Homepage: clausvb.de
Re: Problem mit eigener $_POST-funktion
Reply #3 on: Tue, 02. January 2007 - 17:08:51
Ich möchte nicht Dein ganzes Template debuggen, das ist mir zu lang. Ich möchte einen Skript und ein Template, dass dieses Problem klar und deutlich reproduziert.

Dieses Reproduktions-Skript sollte auf keinen Fall das reservierte Wort POST enthalten, weil dieses für HTML und $_POST reserviert ist. vLIB verwendet einen solchen Funktionsnamen nicht.

Nenn die Funktion wie Du willst, aber bitte nicht "POST". Da sich das Problem mit "x_post" wahrscheinlich auch reproduzieren lässt, sollte es aber möglich sein, ein kurzes, übersichtliches Skript zu schreiben, dass den Fehler auf den Punkt bringt.

Die genannte Funktion macht auch keinen Sinn, weil man einfach schreiben kann:
Code: [Select]
<?php
  $inhalt_der_variable 
htmlspecialchars(stripslashes(strip_tags($_POST[inhalt_der_variable])));
?>
Ausnahme: Man will das für jede Variable einsetzen, dann sollte man die Funktion aber eher "html_code_bereinigen" oder so nennen.

$_POST ist eine sogenannte "Superglobal" und überall verfügbar. Entweder man verwendet das direkt oder nimmt eine Zuweisung vor, wie sie oben beschrieben ist.

Danke und Gruß
Claus
Last Edit: Thu, 04. January 2007 - 15:44:30 by ClausVB