Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi if($name=="") {xxxx} funktioniert nicht ? (https://www.delphipraxis.net/115458-if-%24name%3D%3D-%7Bxxxx%7D-funktioniert-nicht.html)

Delphiturbo 12. Jun 2008 12:48


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:

$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>
Die Seite wird nicht angezeigt !

DeddyH 12. Jun 2008 12:53

Re: if($name=="") {xxxx} funktioniert nicht ?
 
$name != $Name. Achte auf Groß- und Kleinschreibung.

mkinzler 12. Jun 2008 12:54

Re: if($name=="") {xxxx} funktioniert nicht ?
 
Php ist casesensitive $name ist eine andere Variable wie $Name

DP-Maintenance 12. Jun 2008 12:54

DP-Maintenance
 
Dieses Thema wurde von "Daniel" von "Datenbanken" nach "Programmieren allgemein" verschoben.
Mensch, DelphiTurbo - das solltest Du langsam mal wissen

Pfoto 12. Jun 2008 12:57

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

CK_CK 12. Jun 2008 13:03

Re: if($name=="") {xxxx} funktioniert nicht ?
 
Du könntest auch direkt mit
Code:
if isset($HTTP_POST_VARS['name']) { ... }
arbeiten...

Die Muhkuh 12. Jun 2008 13:07

Re: if($name=="") {xxxx} funktioniert nicht ?
 
Außerdem sollte man die HTTP-Arrays nicht mehr nutzen, sondern die superglobalen Arrays. $_GET, $_POST etc.

Delphiturbo 12. Jun 2008 13:17

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>

CK_CK 12. Jun 2008 13:20

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?

Die Muhkuh 12. Jun 2008 13:21

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)) {}

DeddyH 12. Jun 2008 13:23

Re: if($name=="") {xxxx} funktioniert nicht ?
 
Und wieso startest Du erst eine DB-Anfrage, bevor Du die Variable prüfst?

Die Muhkuh 12. Jun 2008 13:26

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

Delphiturbo 12. Jun 2008 13:56

Re: if($name=="") {xxxx} funktioniert nicht ?
 
Ich habe den Code geändert
Delphi-Quellcode:
//$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 bringt nichts
Es erscheint keine Fehlermeldung. Die Seite wird nicht gefunden.

Die Muhkuh 12. Jun 2008 13:59

Re: if($name=="") {xxxx} funktioniert nicht ?
 
Das Array heißt $_GET und nicht $_get...

DeddyH 12. Jun 2008 13:59

Re: if($name=="") {xxxx} funktioniert nicht ?
 
Wieso wird aus $HTTP_POST_VARS plötzlich $_GET? Außerdem muss $_GET groß geschrieben werden.

CK_CK 12. Jun 2008 14:04

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

Daniel 12. Jun 2008 14:05

Re: if($name=="") {xxxx} funktioniert nicht ?
 
Zitat:

Zitat von Delphiturbo
s bringt nichts
Es erscheint keine Fehlermeldung. Die Seite wird nicht gefunden.

Ja, weil Du wieder ohne Sinn & Verstand irgendwelche Code-Schnipsel zusammenkopierst.

Mache Dich schlau über die vordefinierten Variablen: http://de.php.net/manual/de/language...predefined.php.

$_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.

MSSSSM 12. Jun 2008 14:06

Re: if($name=="") {xxxx} funktioniert nicht ?
 
ich habe heute keine hausaufgaben auf! :zwinker:
Code:
<?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>
//kommentare sind in html

mfg

ein bisschen noch DENKEN und fertig.

Ich mach auch nicht immer meine hausaufgaben fertig.

Delphiturbo 12. Jun 2008 14:13

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 ?

Die Muhkuh 12. Jun 2008 14:14

Re: if($name=="") {xxxx} funktioniert nicht ?
 
- Abfragen, ob der Button geklickt wurde.
- Den Code erst ausführen, wenn !empty($name)

mkinzler 12. Jun 2008 14:14

Re: if($name=="") {xxxx} funktioniert nicht ?
 
Du übergibst mit POST und bekommst dies per GET?
Kann ich kaum glauben.

Die Muhkuh 12. Jun 2008 14:16

Re: if($name=="") {xxxx} funktioniert nicht ?
 
Das hat er ja verbessert.

Delphiturbo 12. Jun 2008 14:59

Re: if($name=="") {xxxx} funktioniert nicht ?
 
Zitat:

Zitat von CK_CK
@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

Delphi-Quellcode:
<?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>
Die Seite von google wird aufgerufen ohne zu Klicken auf Senden !

Die Muhkuh 12. Jun 2008 15:00

Re: if($name=="") {xxxx} funktioniert nicht ?
 
Verstehst Du, was Du schreibst?

Ich sag nur nochmal: POST != GET!

DeddyH 12. Jun 2008 15:05

Re: if($name=="") {xxxx} funktioniert nicht ?
 
Ich verweise nochmal auf #11.

mkinzler 12. Jun 2008 15:07

Re: if($name=="") {xxxx} funktioniert nicht ?
 
Zitat:

Zitat von DeddyH
Ich verweise nochmal auf #11.

Um diese Frage zu beantworten, fehlt ihm das Verständnis für die Funktion des Codes

Die Muhkuh 12. Jun 2008 15:09

Re: if($name=="") {xxxx} funktioniert nicht ?
 
Und das wissen wir ja alle :zwinker:

DeddyH 12. Jun 2008 15:10

Re: if($name=="") {xxxx} funktioniert nicht ?
 
Dann wird ihm das Verständnis hierfür wohl leider auch fehlen.

Delphiturbo 12. Jun 2008 15:42

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:

mkinzler 12. Jun 2008 15:44

Re: if($name=="") {xxxx} funktioniert nicht ?
 
Nein, dass du nicht auf die Tipps hier hörst.

rollstuhlfahrer 12. Jun 2008 15:49

Re: if($name=="") {xxxx} funktioniert nicht ?
 
HÄ,

warum führst du in deinem Code 2x exakt die selbe Abfrage aus?? :wiejetzt:
Code:
$sql="SELECT * FROM tabelle1 WHERE name = '$name'";
$result = mysql_query($sql);
if( mysql_num_rows( mysql_query( "select * from tabelle1 where name='$name'" ) ) <> 0 )
Du kannst hier result verwenden (wofür sonst führst du das denn sonst ein?)
Desweiteren ist jetzt der Teil mit Header in den HTML-Body verschwunden. Da hat er garnichts verloren.
Mir fällt noch was auf:
Code:
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());
}
Warum greifst du nicht gleich auf das erste Element zu? Und warum steht der Sortierparameter nicht im ersten SQL-Statement?
Die Struktur solltest du eventuell nochmal überarbeiten.

Zitat:

Zitat von CK_CK
@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

Das kann nie und nimmer der gesammte und vollständige sowie richtige Code sein.

rollstuhlfahrer

PS:
Zitat:

Zitat von Delphiturbo
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:

Diese Einstellung kannst du komplett vergessen. Man hat dir nach bestem Wissen und Gewissen versucht zu helfen.

Micha88 7. Jun 2010 12:33

AW: if($name=="") {xxxx} funktioniert nicht ?
 
Code:
$name = $HTTP_POST_VARS['name'];
Meiner Meinung nach ist $name für eine Variable und 'name' als Abfrage denkbar schlecht gewählt.

H4ndy 7. Jun 2010 13:57

AW: if($name=="") {xxxx} funktioniert nicht ?
 
Tipp: Wenn mein Name zufaellig dieser waehre:
Code:
Boeser Bub'; DROP TABLE tabelle1;
haettest du ein grosses Problem ;)

Du solltest alle Eingaben von Nutzern pruefen und escapen (mysql_escape oder mysql_real_escape).

Chemiker 7. Jun 2010 13:57

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

mkinzler 7. Jun 2010 14:07

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

Chemiker 7. Jun 2010 14:10

AW: if($name=="") {xxxx} funktioniert nicht ?
 
Hallo mkinzler,

einen Mod darf man nicht wiedersprechen.

Bis bald Chemiker

mkinzler 7. Jun 2010 14:12

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 06:28 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz