Situationen wo ein submit nicht funktioniert

TheGreenDragon

Erfahrenes Mitglied
Hallo,

kann mir jemand verraten wann ein submit nicht funktioniert?
Ich habe ein PHP Skript erweitert welches irgendwo includet wird. (ja hoert sich schwammig an aber passt schon)
Nun steht da sowas drin:
Code:
<?php
$url = 'http://127.0.0.1' . $_SERVER['REQUEST_URI'] . '?module=Accounts&return_module=Accounts&action=EditView&record=';
$idCustomer = get_object_vars($this);
$url .= $idCustomer["focus"]->id;

<form action="'.$url.'" method="POST">
  <input type="submit" class="button" name="create" value="Update" />
</form>'

Doch beim drücken des Buttons wechselt er auf http://127.0.0.1/sugarcrm/index.php statt auf meine URL wie kann sowas sein?

Gruss
 
Moin,

eigentlich schwer von aussen zu sagen, erst recht, wenn man nicht weiss, was "deine URL" ist.

Ein paar Möglichkeiten:
  • Es erfolgt eine serverseitige Umleitung
  • Die Zieldatei existiert nicht und die index.php wurde als ErrorDocument festgelegt
  • "Deine URL" ist /sugarcrm/index.php
 
Hi,

Also zu Punkt zwei und drei:
Die Zieldatei sollte vorhanden sein, schließlich werde ich auf die korrekte Seite weitergeleitet wenn ich die von mir zusammengebastelte URL in die Adresszeile meines Browser kopiere. Sie sieht so aus
Code:
http://127.0.0.1/sugarcrm/index.php?module=Accounts&return_module=Accounts&action=DetailView&record=82522d8b-4368-5552-221f-4a45cf47fb3a

Zu Punkt eins kann ich nichts sagen, wenn es aber das sein sollte habe ich wohl Pech gehabt.
 
Wenn ich deinen Code nochmal betrachte, wundert mich, dass du da überhaupt etwas anderes zu sehen bekommst als eine PHP-Fehlermeldung, da fehlt irgendwie ein echo.
 
Wie {Eve} schon sagt sind das nur Codeschnipsel aber in einer größeren PHP Datei, diese wird dann von einer anderen wieder rum includet. Das echo hatte ich nur mal kurz drin um euch die zusammengestellte URL zu zeigen die aufgerufen werden sollte... naja aber wird wohl an einer Serverumleitung liegen, wenn nichts weiteres in Frage kommt.
 
Also wenn du dir den Quelltext der Seite im Browser ausgeben lässt, dann steht da:
Code:
<form action="http://127.0.0.1/sugarcrm/index.php?module=Accounts&return_module=Accounts&action=DetailView&record=82522d8b-4368-5552-221f-4a45cf47fb3a" method="POST">
  <input type="submit" class="button" name="create" value="Update" />
</form>
?
 
Nur so als Idee: Du mischst GET und POST mit einander. Ich bin mir nicht 100%ig sicher, aber es könnte sein, das ein Browser, der Forms mit POST übertragen soll, keine GET-Parameter an die URL anhängen kann. Probier doch mal, deine GET-Variablen als Hidden Form-Elemente einzubauen:

PHP:
<form action="index.php" method="POST">
  <input type="hidden" name="module" value="Accounts"/>
  ... hier weitere Get-Parameter als hidden Felder ...
  <input type="submit" class="button" name="create" value="Update" />
</form>

Dann greifst du im Folge-Script (index.php) mittels $_POST auf die Hidden-Fields zu.
 
Auf die GET übertragenen Variablen kann man mit $_GET zugreifen. In $_REQUEST sind sogar beide drin.
Das Mischen von GET und POST sollte kein Problem sein.
Ich kann mich nur Svens Frage anschliessen was genau im Quelltext steht.
Und ansonsten müsste man vermutlich den ganzen Source sehen um bessere Hilfestellung zu geben.
Auch schon mit debuggen versucht?
 
Hi,

also ganzen Code posten wird denk ich nicht viel bringen, da dieses Skript nur ein Array ist, welches das sugar-System irgendwo includet. Wann und wo genau weiß ich auch nicht, den Dugger hab ich noch nicht laufen lassen, weil ich keine Ahnung hab wie das unter PHP funktioniert schließlich läuft der Server nicht unter eclipse sondern dezentral also müsste ich im Browser ein Debugger zu Verfügung haben, was doch aber auch wieder unsinnig wäre weil ja PHP Serverseitig interpretiert wird...

Nun aber zurück zum Code. Es hat mich ganz verwundert das selbst das hier nicht funktionierte und ich dennoch auf die index.php zurück kam.
Code:
<form action="http://127.0.0.1/sugarcrm/index.php?module=Accounts&return_module=Accounts&action=DetailView&record=82522d8b-4368-5552-221f-4a45cf47fb3a" method="POST">
<input type="submit" class="button" name="create" value="Update" />							</form>
Aber wie schon gesagt wenn man die URL einfach so im neuen Browserfenster öffnet kommt man da hin wo man hin kommen sollte.

Hab nun auch diese index.php gefunden und habe mir gedacht dort eine Überprüfung alla
Code:
if( isset( $_POST['create'] ) ) {
$url = $_POST['editViewURL'];
echo $url;
}
zu machen und tatsächlich das echo wird ausgeben mit meiner url.
In der anderen php Datei, also nicht die index.php sondern meine editView.defs Datei steht nun nämlich sowas.
Code:
<form action="'.$url.'" method="POST">
<input type="submit" class="button" name="create" value="Update" />
<input type="text" name="editViewURL" value='.$url.' />
</form>

Jetzt bräuchte ich nur noch ein PHP Befehl mit dem ich die Variable $url, die nun im index.php steht und mit echo ausgegeben wurde auf diese Seite leitet. Jemand ne Idee?
 
Zuletzt bearbeitet:
Zurück