![]() |
if($name=="") {xxxx} funktioniert nicht ?
Hallo
was ist falsch in Code ?! Ich möchte die Seite umleiten, wenn der User das Feld leer lässt.
Delphi-Quellcode:
Die Seite wird nicht angezeigt !$name = $HTTP_POST_VARS['name']; //... if ($Name == "") { header("location:http://google.de"); } //... <tr> <td align="center"><input type="submit" name="submit" value="senden"></td> </tr> |
Re: if($name=="") {xxxx} funktioniert nicht ?
$name != $Name. Achte auf Groß- und Kleinschreibung.
|
Re: if($name=="") {xxxx} funktioniert nicht ?
Php ist casesensitive $name ist eine andere Variable wie $Name
|
DP-Maintenance
Dieses Thema wurde von "Daniel" von "Datenbanken" nach "Programmieren allgemein" verschoben.
Mensch, DelphiTurbo - das solltest Du langsam mal wissen |
Re: if($name=="") {xxxx} funktioniert nicht ?
hast du zudem sichergestellt, dass der PHP-Code ganz zu Beginn der Seite steht?
Header() muss aufgerufen werden, bevor eine Ausgabe gesendet wurde (selbst ein Leerzeichen davor kann dann die korrekte Ausführung verhindern). Gruß Pfoto |
Re: if($name=="") {xxxx} funktioniert nicht ?
Du könntest auch direkt mit
Code:
arbeiten...
if isset($HTTP_POST_VARS['name']) { ... }
|
Re: if($name=="") {xxxx} funktioniert nicht ?
Außerdem sollte man die HTTP-Arrays nicht mehr nutzen, sondern die superglobalen Arrays. $_GET, $_POST etc.
|
Re: if($name=="") {xxxx} funktioniert nicht ?
alles in Ordnung
Klein- und Großschreibung sind glaube ich nicht das Problem
Delphi-Quellcode:
<?php
$cona = @mysql_connect("localhost","xxxxxx","xxxxx") or die(mysql_error()); $cona_db = mysql_select_db("xxxxx", $cona) or die(mysql_error()); $name = $HTTP_POST_VARS['name']; $sql="SELECT * FROM tabelle1 WHERE name = '$name'"; $result = mysql_query($sql); if ($name == "") { header("location:http://google.de"); } ?> <html> <title>Test</title> <body> <form action="#" method="post" name="formular"> <?php while($row = mysql_fetch_object($result)) { ?> <input type="text" name="name" size="50" value="<?php echo $row->name;?>"></p> <tr> <td align="center"><input type="submit" name="submit" value="senen"></td> </tr> </table> <?php } ?> </form> </body> </html> |
Re: if($name=="") {xxxx} funktioniert nicht ?
Mach' es doch so, wie ich es gesagt habe (und nimm' $_POST, wie Die Muhkuh es gesagt hat).
Außerdem ist da eine FETTE Sicherheitslücke in deiner SQL-Abfrage... :pale: Chris Edit: Was kommt denn für eine Fehlermeldung? |
Re: if($name=="") {xxxx} funktioniert nicht ?
Wie gesagt: Nicht mehr die HTTP_* Arrays verwenden.
Desweiteren, anstatt auf $name == '' zu prüfen, mach lieber if (empty($name)) {} |
Re: if($name=="") {xxxx} funktioniert nicht ?
Und wieso startest Du erst eine DB-Anfrage, bevor Du die Variable prüfst?
|
Re: if($name=="") {xxxx} funktioniert nicht ?
Ich seh gerade, dass Du mit einem db_link arbeitest, den solltest Du dann auch im mysql_query mit angeben
|
Re: if($name=="") {xxxx} funktioniert nicht ?
Ich habe den Code geändert
Delphi-Quellcode:
Es bringt nichts
//$name = $HTTP_POST_VARS['name'];
$name = $_get['name']; //... // <input type="text" name="name" size="50" value="<?php echo $row->name;?>"></p> <input type="text" name="name" size="50" value="<?php echo $_GET["name"]; ?>"></p> if (empty($name)) { header("location:http://google.de"); } <tr> <td align="center"><input type="submit" name="submit" value="senden"></td> </tr> </table> </p> <?php } //mysql_free($result); ?> </form> </body> </html> Es erscheint keine Fehlermeldung. Die Seite wird nicht gefunden. |
Re: if($name=="") {xxxx} funktioniert nicht ?
Das Array heißt $_GET und nicht $_get...
|
Re: if($name=="") {xxxx} funktioniert nicht ?
Wieso wird aus $HTTP_POST_VARS plötzlich $_GET? Außerdem muss $_GET groß geschrieben werden.
|
Re: if($name=="") {xxxx} funktioniert nicht ?
@Delphiturbo: Also so wird das nichts... Poste mal deinen gesamten Code (oder häng' ihn in den Anhang). Dann kann man den Fehler auch besser finden ;)
Chris |
Re: if($name=="") {xxxx} funktioniert nicht ?
Zitat:
Mache Dich schlau über die vordefinierten Variablen: ![]() $_GET ist etwas anderes als $_POST, meinetwegen nimm $_REQUEST, dann hast Du sie alle beisammen. Und ja, Groß- und Kleinschreibung IST bei PHP ein Thema. Anders als bei Delphi. |
Re: if($name=="") {xxxx} funktioniert nicht ?
ich habe heute keine hausaufgaben auf! :zwinker:
Code:
//kommentare sind in html
<?php
$name = $_POST['name']; echo " <input type=\"text\" name=\"name\" size=\"50\" value=\"". $_POST["name"] ."\"></p>"; if (empty($name)) { header("location: http://www.google.de/"); } ?> <tr> <td align="center"><input type="submit" name="submit" value="senden"></td> </tr> </table> </p> <?php } mysql_free($result); ?> </form> </body> </html> mfg ein bisschen noch DENKEN und fertig. Ich mach auch nicht immer meine hausaufgaben fertig. |
Re: if($name=="") {xxxx} funktioniert nicht ?
Es geht funktioniert jetzt mit _GET statt _get aber mit einem Problem
Nun habe ich was bemerkt Das Feld "name" ist in Formular leer Das Problem die Daten werden aufgerufen, wenn die Seite (wo Formular steht) aufgerufen wird ! Die Datenbank soll nur aufgerufen werden, erst wenn ich auf "Senden" anklicke Wie kann ich das Problem verhindern ? |
Re: if($name=="") {xxxx} funktioniert nicht ?
- Abfragen, ob der Button geklickt wurde.
- Den Code erst ausführen, wenn !empty($name) |
Re: if($name=="") {xxxx} funktioniert nicht ?
Du übergibst mit POST und bekommst dies per GET?
Kann ich kaum glauben. |
Re: if($name=="") {xxxx} funktioniert nicht ?
Das hat er ja verbessert.
|
Re: if($name=="") {xxxx} funktioniert nicht ?
Zitat:
Delphi-Quellcode:
Die Seite von google wird aufgerufen ohne zu Klicken auf Senden !
<?php
$cona = @mysql_connect("localhost","xxxx","yyyy") or die(mysql_error()); $cona_db = mysql_select_db("xxxx", $cona) or die(mysql_error()); $name = $_GET['name']; $sql="SELECT * FROM tabelle1 WHERE name = '$name'"; $result = mysql_query($sql); if( mysql_num_rows( mysql_query( "select * from tabelle1 where name='$name'" ) ) <> 0 ) { $result = mysql_query("SELECT name FROM tabelle1 order by name DESC LIMIT 1") or die(mysql_error()); } ?> <html> <title>Test1</title> <body> <form action="#" method="post" name="formular"> <?php while($row = mysql_fetch_object($result)) { ?> <input type="text" name="name" size="50" value="<?php echo $_GET['name'];?>"></p> <tr> <td align="center"><input type="submit" name="submit" value="senen"></td> </tr> </table> if (empty($name)) { header ("Location: http://www.google.de"); } <?php } ?> </form> </body> </html> |
Re: if($name=="") {xxxx} funktioniert nicht ?
Verstehst Du, was Du schreibst?
Ich sag nur nochmal: POST != GET! |
Re: if($name=="") {xxxx} funktioniert nicht ?
Ich verweise nochmal auf #11.
|
Re: if($name=="") {xxxx} funktioniert nicht ?
Zitat:
|
Re: if($name=="") {xxxx} funktioniert nicht ?
Und das wissen wir ja alle :zwinker:
|
Re: if($name=="") {xxxx} funktioniert nicht ?
Dann wird ihm das Verständnis
![]() |
Re: if($name=="") {xxxx} funktioniert nicht ?
Mein 2. Fehler liegt nicht nur an Code sondern an mich selbst, da ich php-Frage in Delphi Forum gestellt habe :mrgreen:
vergesst es :witch: |
Re: if($name=="") {xxxx} funktioniert nicht ?
Nein, dass du nicht auf die Tipps hier hörst.
|
Re: if($name=="") {xxxx} funktioniert nicht ?
HÄ,
warum führst du in deinem Code 2x exakt die selbe Abfrage aus?? :wiejetzt:
Code:
Du kannst hier result verwenden (wofür sonst führst du das denn sonst ein?)
$sql="SELECT * FROM tabelle1 WHERE name = '$name'";
$result = mysql_query($sql); if( mysql_num_rows( mysql_query( "select * from tabelle1 where name='$name'" ) ) <> 0 ) Desweiteren ist jetzt der Teil mit Header in den HTML-Body verschwunden. Da hat er garnichts verloren. Mir fällt noch was auf:
Code:
Warum greifst du nicht gleich auf das erste Element zu? Und warum steht der Sortierparameter nicht im ersten SQL-Statement?
if( mysql_num_rows( mysql_query( "select * from tabelle1 where name='$name'" ) ) <> 0 )
{ $result = mysql_query("SELECT name FROM tabelle1 order by name DESC LIMIT 1") or die(mysql_error()); } Die Struktur solltest du eventuell nochmal überarbeiten. Zitat:
rollstuhlfahrer PS: Zitat:
|
AW: if($name=="") {xxxx} funktioniert nicht ?
Code:
Meiner Meinung nach ist $name für eine Variable und 'name' als Abfrage denkbar schlecht gewählt.
$name = $HTTP_POST_VARS['name'];
|
AW: if($name=="") {xxxx} funktioniert nicht ?
Tipp: Wenn mein Name zufaellig dieser waehre:
Code:
haettest du ein grosses Problem ;)
Boeser Bub'; DROP TABLE tabelle1;
Du solltest alle Eingaben von Nutzern pruefen und escapen (mysql_escape oder mysql_real_escape). |
AW: if($name=="") {xxxx} funktioniert nicht ?
Hallo MichaelLinden,
der Beitrag ist rund und roh ca. 2 Jahre alt, ich denke der TE hat mittlerweile aufgegeben. Bis bald Chemiker |
AW: if($name=="") {xxxx} funktioniert nicht ?
Aber jemand anderes könnte den Thread finden und damit vom falschen Code lernen, was nicht so toll wäre
|
AW: if($name=="") {xxxx} funktioniert nicht ?
Hallo mkinzler,
einen Mod darf man nicht wiedersprechen. Bis bald Chemiker |
AW: if($name=="") {xxxx} funktioniert nicht ?
Doch, wenn es begründet ist, wird das ausdrücklich begrüsst
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz