Zum Inhalt wechseln

Als Gast hast du nur eingeschränkten Zugriff!


Anmelden 

Benutzerkonto erstellen

Du bist nicht angemeldet und hast somit nur einen sehr eingeschränkten Zugriff auf die Features unserer Community.
Um vollen Zugriff zu erlangen musst du dir einen Account erstellen. Der Vorgang sollte nicht länger als 1 Minute dauern.

  • Antworte auf Themen oder erstelle deine eigenen.
  • Schalte dir alle Downloads mit Highspeed & ohne Wartezeit frei.
  • Erhalte Zugriff auf alle Bereiche und entdecke interessante Inhalte.
  • Tausche dich mich anderen Usern in der Shoutbox oder via PN aus.
 

   

Foto

[PHP] Error in Variable speichern und ausgeben

- - - - -

  • Bitte melde dich an um zu Antworten
15 Antworten in diesem Thema

#1
Imperial

Imperial

    Favoured Management

  • Premium Member
  • Likes
    544
  • 421 Beiträge
  • 605 Bedankt
  • 340868
  • verifiziert
  • iPhone
  • Windows, Mac OS
Moin zusammen,
ich hab gerade ein kleines Problem mit PHP.

Ich habe eine Art Template und includiere darin meine Seiten.
Wenn nun z.B. auf der Loginseite in Fehler auftritt (Name oder Passwort falsch), dann möchte ich eine Fehlermeldung in der Variable "$error" speichern und diese dann ausgeben.

Das Konstrukt sieht wie folgt aus:
<?php if(isset($error)) { ?>
    <div class="box" style="color: red; font-weight: bold;"><?php echo $error; ?></div>
<?php } ?>

<?php
    include('login.php');
?>


Und die login.php:
<?php
    if($username != $login_username) {
	  $error = "Username ist falsch";
?>


Das Problem ist, dass das DIV nicht angezeigt wird.
Es liegt wahrscheinlich daran, dass die Variable erst danach deklariert wird.
Doch wie könnte ich das Problem jetzt lösen?

There Is No Business Like Coding Business

 


#2
PaulaAbdul

PaulaAbdul

    Favoured Management

  • Administration
  • Likes
    3716
  • 2157 Beiträge
  • 3704 Bedankt
  • 1337-699
  • verifiziert
  • Android [root]
  • Windows, Linux
versuchs mal so:

<?php
if(isset($error)) {
echo "<div class='box' style='color: red; font-weight: bold;'>".$error."</div>"
};
?>


mfg

401a3d5869.jpg

 

,,Der blaue Baum" von Prohex (2020)


#3
pdr0

pdr0

    Pentester

  • Premium Member
  • Likes
    86
  • 148 Beiträge
  • 87 Bedankt

<?php
if($username != $login_username) {
	 $error = "Username ist falsch";
?>


Ist die fehlende Klammer nach "$error = "Username ist falsch";" absicht?

Bearbeitet von pdr0, 30 June 2014 - 18:26 Uhr.


#4
corkscrew

corkscrew

    News Poster

  • Premium Member
  • Likes
    130
  • 281 Beiträge
  • 83 Bedankt
  • 657605982
  • Windows, Linux
Allgemein, auch wenns die Frage nicht beantwortet, gibst du normalerweise nicht aus, ob Username oder Passwort falsch sind... Sondern sagt, dass eines von beiden nicht stimmt. Das macht es nämlich ein bisschen schwerer einen Account auf der Seite zu finden. (Wenn man nicht weiß, ob es einen Account namens "Admin" oder "root" gibt, kann man das so schnell herausfinden und bruten)

#5
PaulaAbdul

PaulaAbdul

    Favoured Management

  • Administration
  • Likes
    3716
  • 2157 Beiträge
  • 3704 Bedankt
  • 1337-699
  • verifiziert
  • Android [root]
  • Windows, Linux

Ist die fehlende Klammer nach "$error = "Username ist falsch";" absicht?


Die hat er darunter in einem neuen tag eingebunden

<?php } ?>

401a3d5869.jpg

 

,,Der blaue Baum" von Prohex (2020)


#6
Imperial

Imperial

    Favoured Management

  • Premium Member
  • Likes
    544
  • 421 Beiträge
  • 605 Bedankt
  • 340868
  • verifiziert
  • iPhone
  • Windows, Mac OS
@pdr0
Der komplette Code ist nur eine Abstraktion.
Das Problem kommt also nicht von fehlenden Klammern.

@corkscrew
Ist mir bekannt ;)
Siehe 6 Zeilen vorher.

@PaulaAbdul
Ne, löst das Problem leider nicht.

There Is No Business Like Coding Business

 


#7
PaulaAbdul

PaulaAbdul

    Favoured Management

  • Administration
  • Likes
    3716
  • 2157 Beiträge
  • 3704 Bedankt
  • 1337-699
  • verifiziert
  • Android [root]
  • Windows, Linux
jetzt ist mir selbst ein fehler unterlaufen :)

<?php
if(isset($error)) {
echo "<div class='box' style='color: red; font-weight: bold;'>".$error."</div>";
}
?>

so sollte es richtig sein

401a3d5869.jpg

 

,,Der blaue Baum" von Prohex (2020)


#8
Imperial

Imperial

    Favoured Management

  • Premium Member
  • Likes
    544
  • 421 Beiträge
  • 605 Bedankt
  • 340868
  • verifiziert
  • iPhone
  • Windows, Mac OS
Nope, leider immernoch nicht.
Kann es evtl auch ein Problem der php.ini sein?

There Is No Business Like Coding Business

 


#9
corkscrew

corkscrew

    News Poster

  • Premium Member
  • Likes
    130
  • 281 Beiträge
  • 83 Bedankt
  • 657605982
  • Windows, Linux
<?php if(isset($error)) { ?>
<div class="box" style="color: red; font-weight: bold;"><?php echo $error; ?></div>
<?php } ?>

<?php
include('login.php');
?>

Die Teile müssten doch einfach getauscht werden, damit $error überhaupt existiert.. Wenn die Aufrufreihenfolge diese ist...
Sonst kommt $error im isset ja das erste mal vor und kann nicht belegt sein

#10
pdr0

pdr0

    Pentester

  • Premium Member
  • Likes
    86
  • 148 Beiträge
  • 87 Bedankt
Läuft bei mir:
cat main.php
<?
  $username = 'a';
  $login_username = 'b';
  if($username != $login_username)
  {
		  $error = "Username ist falsch";
  }
  include('login.php');
?>
$ cat login.php
<?
if(isset($error)) {
   echo '<div class="box" style="color: red; font-weight: bold;">'.$error.'</div>';
}
?>

Bearbeitet von pdr0, 30 June 2014 - 18:46 Uhr.


#11
Imperial

Imperial

    Favoured Management

  • Premium Member
  • Likes
    544
  • 421 Beiträge
  • 605 Bedankt
  • 340868
  • verifiziert
  • iPhone
  • Windows, Mac OS
Ich würde die Meldung aber gerne darüber haben :)

There Is No Business Like Coding Business

 


#12
hikhack7

hikhack7

    Hacktivist

  • Members
  • PIPPIPPIPPIPPIP
  • Likes
    58
  • 63 Beiträge
  • 77 Bedankt
Hallo

Ich weiss nicht genau wie du das meinst. Kannst du vllt mal alle benötigten PHP-Dateien hochladen genau so wie du es testest?

Normalerweise musst du die Variable $error zuerst erstellen um überhaupt zu überprüfen ob diese gesetzt ist.
Ansonsten kannst du auch mit

Please Login HERE or Register HERE to see this link!

prüfen.

Welche PHP Version benutzt du?

Edit/
Du musst die login.php natürlich zuerst includen damit die Variable auch existiert.

<?php
include('login.php');
if(isset($error)) { ?>
   <div class="box" style="color: red; font-weight: bold;"><?php echo $error; ?></div>
<?php } ?>

Bearbeitet von hikhack7, 30 June 2014 - 20:42 Uhr.

Wissen ist Macht.


#13
Imperial

Imperial

    Favoured Management

  • Premium Member
  • Likes
    544
  • 421 Beiträge
  • 605 Bedankt
  • 340868
  • verifiziert
  • iPhone
  • Windows, Mac OS
Wie gesagt, mir ist bewusst, dass die Variable vorher gesetzt sein muss.
Doch es geht auch anders.
Das sehe ich ja auf diversen anderen Seiten.

Ich weiß nur nicht wie.
Hab mir mal Ajax angesehen, aber das erscheint mir ein wenig aufwändig.

There Is No Business Like Coding Business

 


#14
juPP

juPP

    Hacker

  • Premium Member
  • Likes
    49
  • 174 Beiträge
  • 61 Bedankt
  • 000000
  • Blackberry
  • Windows, Linux
Hi Imperial ich verstehe das problem nicht? Was genau ist denn das Problem - wird mit bei der Problembeschreibung nicht ganz klar....

wenn du einfach dein error über der Loginbox sehen willst mach es doch so:

<?php
$error = '';

if(isset($_POST['submit']))
{
   if($_POST['user'] == $user AND $_POST['password'] == $pwd)
   {
	  ///////// login war ok
   }else
   {
	  $error = "Irgendwas stimmt halt nicht";
   }
}
?>

<div>
<?php echo $error; ?>
<form method="post">
<input type="text" name="user">
<input type="text" name="password">
<input type="submit" name="submit" value="login">
</form>
</div>

... hier könnte Ihre Werbung stehen ;)

#15
jack4flash

jack4flash

    Pentester

  • Premium Member
  • Likes
    30
  • 109 Beiträge
  • 4 Bedankt
  • 668026344
  • Android
  • Windows, Linux
AJAX ist doch nicht aufwendig. Gerade in Verwendung mit jQuery sehr simpel. Einfache Request sieht z.B. so aus:

$.ajax({
type: "POST",
url: "login.php",
data: { username: "test", pwd: "123456" }
})


#16
mr3ee

mr3ee

    Script Kiddie

  • Members
  • PIPPIPPIPPIP
  • Likes
    12
  • 26 Beiträge
  • 7 Bedankt
  • Android, Android [root], Windows Phone
  • Linux

Wie gesagt, mir ist bewusst, dass die Variable vorher gesetzt sein muss.
Doch es geht auch anders.
Das sehe ich ja auf diversen anderen Seiten.


Die Variable muss zuerst gesetzt sein. Wo du was ausgibst ist danach deine Sache.
Damit wollte hikhack7 nur sagen das dieser Block:
<?php
	    if($username != $login_username) {
		  $error = "Username ist falsch";
?>

vor diesen Block stehen muss
<?php if(isset($error)) { ?>
	    <div class="box" style="color: red; font-weight: bold;"><?php echo $error; ?></div>
<?php } ?>

Im ersten Block bestimmst du was die Variable $error ist.
Im zweiten Block fragst du ob die Variable gesetzt ist.
Die Reihenfolge ist wichtig da sonst der zweite block nie etwas über die Existenz von $error wissen würde.



  Thema Forum Themenstarter Statistik Letzter Beitrag

Besucher die dieses Thema lesen:

Mitglieder: , Gäste: , unsichtbare Mitglieder:


This topic has been visited by 37 user(s)


    0x000F, B1nary, Born2Hack, codec4, corkscrew, Cube, Drew, easysurfer, FalkE, Givenchy, gutzuu, hikhack7, ice, Imperial, Iron, Izon, jack4flash, juPP, Juri, kiwitone, Klimbo, Kryptonit, lolorollo, mr.blue, mr3ee, mymain, nong_dan, PaulaAbdul, pdr0, ProHex, R3s1stanc3, Smn, SOCOM, Unkiii, vôl, w1p3, Xenio
Die besten Hacking Tools zum downloaden : Released, Leaked, Cracked. Größte deutschsprachige Hacker Sammlung.