register_globals=off, Seitenanzahl

Billie

Erfahrenes Mitglied
Aloo ihr Lieben!

Also ich hab mich erst vor kurzem die neueste Version von PHP installiert. Der erste Schock war groß als die einfachsten Script's nicht funktionierten! Aber dann konnte ich hier zum Glück alles wichtige nachlesen und ich hab die PHP.ini jetzt auch mit register_globals=off am laufen.

Aber verstehe ich das richtig dass diese Funktion bzw. gerade nicht diese Funktion verhindern soll das Variablen über die URL übertragen werden?

Egal, mein Problem ist folgendes: Bei Formularen werden die Variablen einfach jetzt über $_POST['var'] übertragen, ich habe jetzt aber ein Gästebuch das natürlich nicht 100 Einträge auf einmal anzeigen soll, sondern nur 5 / Seite. Wie stell ich das jetzt an, dass wenn jemand auf den Link zur nächsten Seite klickt, das nicht über die URL übertragen wird?

Vielleicht hilft der Code :rolleyes:

PHP:
<?php
$db = mysql_connect("$host","$user","$password") or die ("Verbindung zu MySQL Server konnte nicht hergestellt werden");
mysql_select_db("$database",$db);
if(!$_GET['pos']) $_GET['pos']=0;
$count = 5;
$guestbook_SQL="SELECT * FROM ff_guestbook ORDER BY ff_guestbook_timestamp DESC LIMIT ".$_GET['pos'].",".$count;
echo $guestbook_SQL;
$mysql_result = mysql_query($guestbook_SQL);
$no_data = mysql_num_rows(mysql_query("SELECT ff_guestbook_ID FROM ff_guestbook"));
$new_pos_next=$_GET['pos']+$count;
if($new_pos_next>=$no_data)
{
$link_next="Weiter";
}
else
{
$link_next="<a href=\"index.php?pos=".$new_pos_next."\">Weiter</a>";
}

$new_pos_prev = $_GET['pos']-$count;
if($new_pos_prev<0)
{
$link_prev="Zurück";
}
else
{
$link_prev="<a href=\"index.php?pos=".$new_pos_prev."\">Zurück</a>";
}
 
ääh, wo ist da eine funktion?

wenn du eine variable aus irgendeinem nicht über die url übergeben willst, kannst du das immer noch per javascript und POST machen. Oder du benutzt Sessions.

Zu den 5 Einträgen pro Seite: UTFSB! Im tutorials bereich gibts ein "Blätter-Tutorial".

Jedenfalls hieß das früher so.. :-)
 
PHP:
$link_next="<a href=\"index.php?pos=".$new_pos_next."\">Weiter</a>";
Meinst du das?
du kannst auf die variable pos mit $_GET['pos'] zugreifen wenn ich mich nicht irre...

(Keine Garantie, bin grad nicht im vollem Besitz meiner geistigen Kapazitäten oder so ähnlich...)
 
Ja, schon klar... aber dabei verwende ich ja wieder die URL zur Übertragen der Variablen-Werten. Aber ist das jetzt auch so richtig od. wird das nun anders gehandhabt, ohne URL ?

... und bezüglich dem Blätter Tutorial, da hab ich nicht's gefunden.
 
Zuletzt bearbeitet:
natürlich werden noch variablen per url übertragen!!
es geht bei register_globals nur darum, dass die übertragenen variablen nicht sofort im script vorliegen, sondern noch über die arrays $_GET bzw. $_POST geholt werden müssen. sonst kann ja jeder das script beeinflussen. stell dir das beim posten in einem forum vor. man guckt im html quelltext, wie die felder heissen vom formular und hängt die dann einfach an die url an. da würde sich in einigen foren einiges beeinflussen lassen, z.b. der thread, an den das thema angehängt wird etc.. ist jetzt zwar nicht das beste beispiel, aber erfüllt hoffentlich seinen sinn
 
Neue Frage

Also ich will wegen dieser Frage keinen neuen Thread aufmachen, also hoffe ich hier liest das noch jemand:

Also, ich habe hier zB ein Formular das eine bestimmte Anzahl (ff_poll_desc_num) von Input-Text-Feldern erzeugt. Die Eingaben werden in ein Array eingelesen (ff_poll_data_optiontext_[]) und an die array.php übergeben.

In der array.php will ich dann das Array "ff_poll_data_optiontext_[]" über die register global "$_POST" abrufen.

Aber wie geht das jetzt? Es existiert zwar die Variable "$_POST['ff_poll_data_optiontext_']", aber wenn ich die mit echo ausgeben will bekomm ich nur "Array" zurück. Ich habe schon Methoden wie:

$_POST['ff_poll_data_optiontext_[1]']
$_POST['ff_poll_data_optiontext_1']

usw. versucht, funktioniert aber nicht. Ich kann das Array allerdings mit der foreach Schleife Problemlos auslesen, aber was wenn ich jetzt einfach auf eine ganz bestimmte Array-Variable zugreifen will? wie zB einfach echo $bool[23];

PHP:
<form method="post" action="array.php">
<?php
  for($i = 1; $i <= $_POST['ff_poll_desc_num']; $i++)
  {
  echo "<input name=\"ff_poll_data_optiontext_[]\" type=\"text\"
   size=\"50\" maxlength=\"50\">";
  }
?>
<input name="PollNew" type="submit" value="OK">
</form>
 
Ich hab's propiert aber es funktioniert trotzdem nicht. Falls es bei dir funktioniert hat, dann schreib bitte in den Thread ein kleines Skript.

Und wer natürlich weiss was ich evtl. falsch machen könnte, möge sich auch gleich melden =)
 
normal so $_POST['name'][index]
aber ich weiss nicht, ob ein text objekt überhaupt arrays unterstützt...
ich würd mein script so ändern...
PHP:
<form method="post" action="array.php">
<?php
  for($i = 1; $i <= $_POST['ff_poll_desc_num']; $i++)
  {
  echo "<input name=\"ff_poll_data_optiontext_$i\" type=\"text\"
   size=\"50\" maxlength=\"50\">";
  }
?>
<input name="PollNew" type="submit" value="OK">
</form>
und auslesen dann mit
PHP:
$index = 3;
$inhalt = $_POST['ff_poll_data_optiontext_'.$index];
echo $inhalt;
 
Zurück