php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 07.03.2005, 17:35  
Gast
 
Beiträge: n/a
Standard Acces Denied bei falscher Eingabe

Hallo zusammen,
Ich hab in Flash einen Login gebastelt der über PHP auf eine DB zugreift und bei Klick auf den Login-button ein Fenster (popup.php) aufpoppen lässt. Bei richtiger Eingabe kommt in diesem eine persönliche Begrüssung mit Namen aus der DB,Text und Button bzw links zum weiteren Navigieren. Bei falscher Eingabe sollte nur etwas wie Access Denied stehen.

Code:
$db=@MYSQL_CONNECT($db_server,$db_user,$dbpassword) or die ("Verbindung nicht möglich");
$db_check =@MYSQL_SELECT_DB($db_name);

if($db)
	echo "Verbindung zur Datenbank hergestellt";
	echo "

";


  $var1=$_GET['var1'];  //Aus Flash
  $var2=$_GET['var2'];
  
    
$abfrage = "SELECT * FROM Kunden WHERE name='$var1' AND kennwort='$var2'";
  
$ergebnis = mysql_query($abfrage); 

  while($row = mysql_fetch_object($ergebnis)) 
  { 
   echo $row->anrede; 
} 
echo " ";
$ergebnis = mysql_query($abfrage); 

  while($row = mysql_fetch_object($ergebnis)) 
  { 
   echo $row->name; 
} 
echo ",";
echo "
";
echo "willkommmen auf Ihrer persönlichen Seite....";


?>

</body>
</html>
Das ist der PHP-Code den ich bisher habe und der funktioniert.
Allerdings eben ohne Access-Denied bei falschem login.
Könnte mir jemand sagen wie der fehlende Code aussieht? Ich frage auch deshalb so direkt weil ich das alles im Rahmen eines Praktikums gemacht habe, welches übermorgen endet und irgendwie wärs super wenn ichs noch fertig bekomme. Vielen Dank im voraus, Grüsse

[/code]
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 07.03.2005, 17:42  
Erfahrener Benutzer
 
Registriert seit: 21.01.2005
Beiträge: 444
stf.stream
stf.stream eine Nachricht über ICQ schicken
Standard

Das heist, der Zugriff soll verweigert werden, wenn entweder name oder kennwort oder beides nicht in der DB gefunden wird,
sprich wenn die abfrage schief geht:

PHP-Code:
<?php
if( $ergebnis mysql_query($abfrage))
{

  while(
$row mysql_fetch_object($ergebnis))
  {
   echo 
$row->anrede;
  } 
else echo
"Access denied";
?>
wenns statement läuft -> okay, sonst ende.
(musst natürlich noch den rest mit einbaun...)
__________________
stf.
stf.stream ist offline  
Alt 07.03.2005, 17:46  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

wohl eher mit mysql_num_rows überprüfen, weil mysql_query liefert false zurück wenn das query nciht geklappt hat, nicht wenn es eine leere ergebnis-resource zurückliefert

mfg
robo47
robo47 ist offline  
Alt 07.03.2005, 17:49  
Erfahrener Benutzer
 
Registriert seit: 21.01.2005
Beiträge: 444
stf.stream
stf.stream eine Nachricht über ICQ schicken
Standard

stimmt...
__________________
stf.
stf.stream ist offline  
Alt 08.03.2005, 16:55  
Gast
 
Beiträge: n/a
Standard

Code:
if( $ergebnis = mysql_num_rows ($abfrage)) 
 
{
  while($row = mysql_fetch_object($ergebnis)) 
  { 
   echo $row->name; 
  } }                            //Klammer von mir noch eingefügt, hoffe stimmt
else echo"Access denied";
ich denke ihr meint das so, geht aber leider nicht =(
[/code]
?>[/php]
 
Alt 08.03.2005, 17:52  
Gast
 
Beiträge: n/a
Standard

ich poste nochmal den ganzen Code vieleicht ist es mit zusammenhang besser.
PHP-Code:
<?php
$db
=@MYSQL_CONNECT($db_server,$db_user,$dbpassword) or die ("Verbindung nicht möglich");
$db_check =@MYSQL_SELECT_DB($db_name);

if(
$db)
    echo 
"Verbindung zur Datenbank hergestellt";
    echo 
"

"
;


  
$var1=$_GET['var1'];
  
$var2=$_GET['var2'];


$abfrage "SELECT * FROM Kunden WHERE name='$var1' AND kennwort='$var2'";

if( 
$ergebnis =  mysql_num_rows  ($abfrage))  //mysql_query getauscht 
{

  while(
$row mysql_fetch_object($ergebnis))
  {
   echo 
$row->anrede;
  } }         
//klammer hinzugefügt, hoffe stimmt
else echo"Access denied";

echo 
" ";  //leerzeichen zwischen anrede und namen


if( $ergebnis mysql_num_rows ($abfrage))

{
  while(
$row mysql_fetch_object($ergebnis))
  {
   echo 
$row->name;

} }
else echo
"Access denied";

echo 
",";     //komma nach name vor zeilenumbruch




echo "
"
;  //zeilenumbruch
echo "willkommmen auf Ihrer persönlichen Seite....";



?>

also wie gesagt, bei richtiger name/kennwort eingabe sollte die anrede und der name ausgegeben werden, ansonsten einfach nur "access denied". Ist glaub ein standardproblem und ich suche schon überall nach was passendem, aberi ch hab noch einen tag zeit das problem zu lösen, deshalb wäre ich sehr dankbar für alle antworten. Leider wurde ich ins kalte wasser geschmissen was php angeht, hab noch nie vorher was gemacht und es war ganz schön mühsam alles soweit hinzubekommen. fehlt noch der letzte meter ins ziel =)
danke für alle antworten
?>[/php]
 
Alt 08.03.2005, 19:14  
Erfahrener Benutzer
 
Registriert seit: 21.01.2005
Beiträge: 444
stf.stream
stf.stream eine Nachricht über ICQ schicken
Standard

Versuch mal dieses:

PHP-Code:
<?php
$db
=@MYSQL_CONNECT($db_server,$db_user,$dbpassword) or die ("Verbindung nicht möglich");
$db_check =@MYSQL_SELECT_DB($db_name);

if(
$db)
   echo 
"Verbindung zur Datenbank hergestellt";
   
  
$var1=$_GET['var1'];
  
$var2=$_GET['var2'];


$abfrage "SELECT anrede, name FROM Kunden WHERE name='$var1' AND kennwort='$var2'";
$ergebnis mysql_query($abfrage);


// mysql_num_rows() zählt die anzahl der ergebnissätze.
// Sollte in diesem Falle also 
//            0 für name-kennwort-Kombination ungültig
//            1 für name-kennwort-Kombination gültig
// sein. Falls ein Wert > 1 rauskommt, solltest du den
// Sinngehalt deiner Benutzerverwaltung noch mal überprüfen ;)
if( mysql_num_rows($ergebnis) > )  
{
  while(
$row mysql_fetch_object($ergebnis))
  {
   echo 
$row->anrede."  ".$row->name.",
willkommmen auf Ihrer persönlichen Seite...."
;
  } 
}
else echo
"Access denied";
?>
mfg
__________________
stf.
stf.stream ist offline  
Alt 09.03.2005, 09:21  
Gast
 
Beiträge: n/a
Standard

1000 dank. es funktioniert astrein. Du hast mir wirklich sehr geholfen!
viele Grüsse
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Bei richtiger Eingabe Daten an nächste Seite versenden xx_heidi_xx PHP Tipps 2008 49 27.05.2008 14:56
Warning: ftp_put(): download.txt: Permission denied nicobischof PHP Tipps 2006 2 06.08.2006 15:16
preg_match zur eingabe Überprüfung pepepro PHP Tipps 2006 9 16.05.2006 19:28
script kann dateien nicht öffnen --> Permission denied Server, Hosting und Workstations 3 18.02.2006 03:45
CLI, Command line Eingabe während der Laufzeit DerDesian PHP Tipps 2007 6 30.11.2005 14:10
URL Eingabe in Formular-Eingabefeld PHP Tipps 2005-2 3 22.09.2005 11:02
2 fensterladen 1 dauerladen 1 davon nur nach eingabe laden PHP-Fortgeschrittene 9 08.06.2005 18:53
[Erledigt] Eingabe in Textfeld A, Ausgabe Textfeld B wie? HTML, Usability und Barrierefreiheit 2 01.06.2005 18:09
Eingabe "sofort antworten" Off-Topic Diskussionen 6 25.01.2005 16:17
Überprüfung ob Eingabe = Nummer, etc.. PHP Tipps 2004-2 2 21.11.2004 19:35
[Erledigt] Select Feld - Eingabe merken ?!? PHP-Fortgeschrittene 4 18.11.2004 12:30
[Erledigt] Formular auf richtige Eingabe prüfen PHP Tipps 2004-2 1 16.11.2004 13:56
datum eingabe mittels formular + 6wochen PHP Tipps 2004 6 17.10.2004 20:53
Acces denied? PHP Tipps 2004 4 17.10.2004 13:03


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:06 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.