Zum Inhalt springen

Variabel


Empfohlene Beiträge

Hallo Leute,

ich hätte da mal ein Problem mit PHP.

Ich will alphanumerische Zeichen speichern und übertragen (Formular), das funktioniert bei mir mit "richtigen" Buchstaben wie: A,b,c,... usw. und Zeichenketten. Numerische Werte werden auch gespeichert.

Wenn ich aber Zeichen wie +,-,*,/,...usw. übertragen möchte, gehen diese nach zwei oder drei Eingaben verloren.

Was mache ich Falsch und noch wichtiger konnte mir jemand folgen?

Danke

Link zu diesem Kommentar
Auf anderen Seiten teilen

Moin,

nachdem ich die Zeile "enctype="text/plain"" in meinen Formularkopf eingefügt hatte, wurde an der Stelle wo ich meine Gesamtzahl(zg) ausgebe nichts mehr angezeigt.

<td width="100%"><input type="Text" name="wert" size="24%" maxlength="10" value=

"<?echo $zg?>"

>

Ich würde mal sagen, das das Problem woanders liegen muss.

Hier noch der Formularkopf:

<?

echo "<form action=tr.php?zg=$zg&eingabe=$eingabe&op=$op&opz=$opz&z1=$z1&z2=$z2 method=post>"

?>

Link zu diesem Kommentar
Auf anderen Seiten teilen

An die url hänge ich die Variablen die in meinem PHP-teil verwendet werden.

Für die Eingabe verwende ich z.B.:

<input type="submit" name="wert" value="%">

Das heißt. Ich klicke auf einen Button und übergebe das value="xyz" an das PHP- Progi, welches dann die Eingabe entsprechend auswertet.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

häng deine alten Variablen nicht an die URL dran, sondern pack sie in Hidden Inputs. Dann werden sie mit dem Formulararray (in deinem Falle $_Post[]) übergeben.

Natürlich kann es sein, das bei der Übergabe via URL Sonderzeichen verloren gehen (weil sie nicht in URLs auftauchen dürfen). Dafür gab es eine PHP-Funktion zum Umwandeln, ich komm aber jetzt nur nicht drauf welche das war ...

Schau auch hier mal für Infos:

http://www.dclp-faq.de/ch/ch-webvariablen.html

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn du die Variablen unbedingt per GET, also in der URL übergeben willst, dann codiere die Daten vorher mit der Funktion urlencode() und decodiere sie im Zielscript mit urldecode().

Allerdings schließe ich mich Spike an, du solltest das wenigstens über hidden-fields übergeben, wenn du nicht gleich die session-Funktionen verwendest.

Gruß

Benjamin

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn du die Variablen unbedingt per GET, also in der URL übergeben willst, dann...

Wer sagt den das ich mit GET übertragen will? Zurzeit verwende ich post oder meinst du das mit get der Fehler nicht auftritt? Kann es ja mal probieren.

Hier mal ein Teil der Quelldatei (soll mal ein Taschenrechner werden):

<blabla>

<?

if ($wert=="Loeschen")

{

$zg="";

$z1="";

$z2="";

$op="";

$opz=0;

$eingabe=0;

}

else

{

//$opz=0;

if($wert>='0' && $wert<='9')

{

if($eingabe==0)

{

$zg=$wert;

$eingabe=1;

//echo "zg(e=0)= ",$zg,"<br>";

}

else

{

$zg=$zg*10+$wert;

//echo "zg(e=1)= ",$zg,"<br>";

}

}

else

{

//echo "wert= ",$wert,"<br>";

if($opz<1)

{

$z1=$zg;

//echo "z1= ",$z1,"<br>";

switch($wert)

{

case '+':

$op=plus;

break;

case '-':

$op=minus;

break;

case '*':

$op=mul;

break;

case '/':

$op=div;

break;

case '=':

$opz=0;

break;

case 'x²':

$zg=$z1*$z1;

$opz=-1;

break;

case '%':

$zg=$z1/100;

$opz=-1;

break;

case 'eins/x':

$zg=1/$z1;

$opz=-1;

break;

case '+/-':

$zw_wert=$zg*2;

$zg=$zg-$zw_wert;

$opz=-1;

break;

// default:

// $zg="Error";

}

$eingabe=0;

$opz++;

//echo "op= ",$op,"<br>";

}

else

{

$z2=$zg;

//echo "z2= ",$z2,"<br>";

switch($op)

{

case 'plus':

$zg=$z1+$z2;

break;

case 'minus':

$zg=$z1-$z2;

break;

case 'mul':

$zg=$z1*$z2;

break;

case 'div':

if($z2==0)

$zg=Error;

else

$zg=$z1/$z2;

break;

// default:

// $zg="Error";

}

$opz=0;

$eingabe=0;

}

}

}

?>

<?

echo "<form action=tr.php?zg=$zg&eingabe=$eingabe&op=$op&opz=$opz&z1=$z1&z2=$z2 method=post>"

?>

<table border="0" size="50%" bgcolor="#C0C0C0" align="center">

<tr>

<td>

<table border="0" bgcolor="#C0C0C0">

<tr>

<td> TR</td>

</tr>

<tr>

<td width="100%"><input type="Text" name="wert" size="24%" maxlength="10" value=

"<?echo $zg?>"

disabled>

</td>

</tr>

</table>

<table border="0" bgcolor="#C0C0C0">

<tr>

<td width="10%"><div align="right"><input type="submit" name="wert"value="Loeschen"></div></td>

</tr>

</table>

<br>

<table border="0" bgcolor="#C0C0C0" size="100%">

<tr align="center">

<td width="10%"> <input type="submit" name="wert" value="7" accesskey="7"></td>

<td width="10%"> <input type="submit" name="wert" value="8" accesskey="8"></td>

<td width="10%"> <input type="submit" name="wert" value="9" accesskey="9"></td>

<td width="10%"> <input type="submit" name="wert" value="/" accesskey="/"></td>

<td width="10%"> <input type="submit" name="wert" value="%"></td>

</tr>

.

.

.

</table>

</td>

</tr>

</table>

</form>

<blabla>

Link zu diesem Kommentar
Auf anderen Seiten teilen

GET, POST und COOKIE sind auf jeden Fall Daten die vom Client kommen. In kritischen Anwendungen könnten die Daten u.U. zu Sicherheitslücken führen.

SESSIONs kann man ggf. komplett serverseitig laufen lassen. Ausserdem hat da nicht das Problem sich über die Übertragung Gedanken zu machen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ausserdem ist das komfortabler, sobald man die Variablen über mehrere Seiten hinweg braucht, z.B. in einem geschützten Bereich.

Sessions werden immer gebraucht, wenn man eine anständige Userverwaltung machen möchte. Aber auch für komplexe Formularscripts (z.B. in Shops) sind die von nöten.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...