Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Variabel

Empfohlene Antworten

Veröffentlicht

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

Verschoben -> Webserverprogrammierung

method = post und wie hilft mir das weiter?

Original geschrieben von Enrico T.

überträgst du die per GET, POST, COOKIE oder SESSION?

kann man mit einem formular auch mit cookie und session übertragen?

@sid1900:

vielleicht ma so versuchen:


<form enctype="text/plain">

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>"

?>

Hallo!

Original geschrieben von sid1900

..., gehen diese nach zwei oder drei Eingaben verloren.

Was heißt "zwei oder drei Eingaben?". Und benutzt du <input type="text" oder andere Formularfelder?

gruß

Benjamin

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.

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

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

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>

Du solltest anstelle von :

<?

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

?>

<?
echo "<form action=tr.php?".
urlencode("zg=$zg&eingabe=$eingabe&op=$op&opz=$opz&z1=$z1&z2=$z2").
" method=post>";
?>
[/PHP]

benutzen

Habs hinbekommen, danke für Eure Hilfe. :uli

nur mal so als anmerkung:

wo liegt eurer meinung nach der vorteil von sessions?

(ich habe bisher erst mit cookie get und post gearbeitet... sorry für die daufrage)

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.

ich kann also beispielsweise 100 gleichlautende variablen von usern serverseitig speichern und auch getrennt ansprechen ? also das jeder nur seine variablen benutzt, so wie bei get, post und cookie?

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.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.