PHP Variablen und so

twistmf

Grünschnabel
Hi

habe gerade Apache, PHP und MySQL installiert und versucht anhand von ein paar tutorials, die zusammenhänge und sysntax zu verstehen.
bin aber auf probleme mit den variablen gestossen

1. habe ein normales formular
<form method="post" action="insert.php">
<input type="text" name="interpret" value="interpret"><br>
<input type="text" name="titel" value="titel"><br>
<input type="submit" name="button" value=" OK ">
</form>

angeblich soll ich jetzt in meinem php-skript einfach mit $button, $titel auf die einzelnen einträge zugreifen können geht aber nicht.
auf php.net machen sies mit $_POST["XXX"] und das geht - muss ich dass jetzt immer so machen?

2. gib eine zeilen pos weiter
while ($line = mysql_fetch_array($result)) { ?>
<tr>
<td><?=$line[interpret]?></td>
<td><?=$line[titel]?></td>
<td><a href="update.php?id=<?=$line[id]?>">Edit</a></td>
<td><a href="delete.php?id=<?=$line[id]?>">Delete</a></td>
</tr>

und sollte jetzt wieder in php skript mit $id zugreifen können - funktioniert aber wieder nicht, und hier habe ich ncoh keine alternative lösung gefunden.


kann mir jemand sagen was das soll? dachte erst das tut, sei falsch musste aber feststellen, dass es so in mehreren tutorial gemacht wird. also muss es doch fast beim ir liegen.
dankbar für jede hilfe
lg
Twist
 
1. Is auch besser du machst es mit _POST (bei method="post" im Formular) und mit _GET bei einem method="get" im Formular.

Erklärung: Nur wenn ein Eintrag Namens register_globals in der sogenannetn php.ini, der Konfigurations Datei PHPs im %windir%-Verzeichnis, aus on ist, werden automatisch Variablen mit den Namen der Felder des Formulares erzeugt, andernfalls (und ist auch besser so wegen der kompatiblität) auf die oben genannten Arrays _GET und _POST zugreifen.

Alternativ gibt es dazu auch ab PHP-Version 4.2 eine Variable namens _REQUEST, die die Einträge aus _POST und _GET zusammen ein einem Array vereinigt. Brauchst du, wenn du nicht weist ob eine Post oder Get Übermittlung benutzt wird (und du auf eine Zeile Code Pro Variable mehr verzichten willst).

2. Versteh die Frage ned!?
 
Als erstes empfehle ich dir die Variablen in einem Array die du ansprichst mit ' zu versehen:
PHP:
$line['interpret']
$line['titel']
...

2. setze vor die while - Schleife noch eine neue Variable mit dem Inhalt "0" und lass in der Schleife zählen:
PHP:
$i = 0;

while($line ...) {
// foo bar
$i++;
}
Dann kannst du auch auf $i zurückgreifen um zu wissen in welcher Zeile du gerade bist.
 
Notice: Undefined variable: Action in e:\homepages\login\liste.php on line 11

Diesen Fehler erhalte ich, seit ich mein PHP upgedatet habe. Heisst das, ich muss jetzt jede Variable deklarieren, bevor ich sie benutze?
Oder kommt das nur, weil ich Notices auf ON habe? Kann ich die abschalten?

Oder was genau heisst das?

Danke an alle Eklärbären
 
@icezwerg: Ohne den Codeabschnitt (5 Zeilen vor und 5 Zeilen nach) kann ich nicht viel sagen.
Auf welche Version hast du geupdated?
 
Hat sich erledigt.
Habe Fehlermeldungen jetzt so konfiguriert, dass er Notices ned mehr ausgibt.

Habe auf 4.3.2 upgedatet. Weiss leider nicht mehr, was es vorher war.


Grüsse

ICEzW3RG
 
Diese Notice wird immer ausgegeben (oder doch erst ab einer bestimmten Version) wenn eine Variable ohne vorher deklariert zu werden aufgerufen wird:

PHP:
$zwei = $eins + 1;
wird eine Notice ergeben (die sich natürlich nicht negativ auf die Auswführungng des Scriptes (Abbruch, etz.) auswirkt).

PHP:
$eins = 1;
$zwei = $eins + 1;
dagegen wird keine Notice ergeben.

Wenn man keine Lust hat, die Variablen zu deklarieren oder sonst irgend ein Grund dagegen spricht, aknn man die Notice auch durch einem @ vor der Variable unterdrücken:
PHP:
$zwei = @$eins + 1;
 
Das ist doch mal ein richtiger Erklärbär!

Hab mir sowas fast gedacht, aber das mit dem @, das ist ein guter Tipp! Danke Dir!
 
zu Beginn danke Nuinmundo für die schnelle Hilfe!

nochmals zu Punkt 2:

ich ruf mein php-script wie folgt auf

<td><a href="delete.php?id=<?=$line['id']?>">Delete</a></td>
=> im browser :http://127.0.0.1/test/phpbox/delete.php?id=2

in delete.php
versuch ich jetzt auf id zuzugreifen
z.b.: echo $id;
das funktioniert aber leider nicht ;(

in den tutorials greift er aber immer mit $XXX zu und nachdme ich ja kein POST bzw. GET mache kann ich auch nicht so verfahren wie bei 1
 
Nicht ganz: Die Get-Methode wird nicht nur bei Formularen verwendet, sondern beschreibt die Methode, Werte über die Adresse zu übergeben. Dementsprechend macht ein Get-Formular nichts anderes, als eine Adresse zusammenzustellen, die alle Inhalte aus dem Formular enthält, und an diese Adresse weiterzuleiten.

Deshablt kannst du auch auf die per ?variable=bla&variable2=blub übergebenen Werte per $_GET["variable"] und $_GET["variable2"] zugreifen.
 
Zurück