php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 07.11.2011, 14:50  
Neuer Benutzer
 
Registriert seit: 07.11.2011
Beiträge: 2
PHP-Kenntnisse:
Anfänger
Alphadog befindet sich auf einem aufstrebenden Ast
Standard script mit DB-Abfrage gibt falschen wert aus

Hi@all

Bin neu hier und hab n kleines Problemchen:

Habe ein "fertiges" CMS, das noch so einige Bugs enthält und wollte ein System zum laufen bekommen, dass den Benutzern Barcodes gibt.
Diesen Barcode gibt man in ein feld ein / scannt ihn ein und das script macht eine abfrage der Datenbank, und leitet einen auf das benutzerprofil.

Habe jetzt folgendes Problem:

ich gebe einen Barcode ein (egal welchen) und lande IMMER auf dem Userprofil mit der Nummer 1!

Hier ein par zeilen Code:

Hier wird das Formularfeld erzeugt:
PHP-Code:
function AddBarcodeForm($key$value$action$method ="POST"$errortext NULL,  $size NULL$optional NULL){
    if (
$size == ''$size '30';
    (
$errortext)? $errortext $this->errortext_prefix $errortext $this->errortext_suffix $errortext '';
    (
$optional)? $optional "_optional" $optional '';

    
$key '<label for="barcode">'.$key.'</label>';
    
$val'<form name="barcode" method="'.$method.'" action="'.$action.'">';
    
$val .= '<input onkeyup="checkfield(this)" type="text" name="barcodefield" class="form'.$optional.'" size="'.$size.'" value="'.$value.'" />';
    
$val .= $errortext;
    
$val .= '</form>';
    
$val .= '<script type="text/javascript">';
    
$val .= 'function selectfield(){';
    
$val .= 'document.forms["barcode"].elements["barcodefield"].focus();';
    
$val .= '}';
    
$val .= 'function checkfield(id){';
    
$val .= 'if(id.value.length == 12){';
    
$val .= 'document.barcode.submit();';
    
$val .= '}';
    
$val .= '}';
    
$val .= 'selectfield();';
    
$val .= '</script>';
    
$this->AddDoubleRow($key$val); 
Und hier wird es wieder ausgelesen:
PHP-Code:
// Benutzerdaten eingeben / Ã¤ndern
        
case 3:
      
$cfg['signon_autopw'] = 1;
      
$cfg['signon_captcha'] = 0;
            if (
$_POST['barcodefield']) $_GET['userid']= $db->qry('SELECT userid FROM %prefix%user WHERE barcode='.$_POST["barcodefield"].'');
                
//if (!$_GET['userid']) $_GET['userid'] = $_POST['userid'];
                
if (!$_POST['paid']) $_POST['paid'] = 2;

      if (
$_GET['quick_signon']) $_SESSION['quick_signon'] = $_GET['quick_signon'];
      if (
$_SESSION['quick_signon']) $quick_signon $_SESSION['quick_signon']; 
Kann mir bitte irgendwer weiterhelfen ?


ach ja das Formular sieht danach wie folgt aus:

PHP-Code:
<form name="barcode" method="POST" action="index.php?mod=usrmgr&amp;action=entrance&amp;step=3"><input onkeyup="checkfield(this)" name="barcodefield" class="form" size="30" value="" type="text"></form><script type="text/javascript">function selectfield(){document.forms["barcode"].elements["barcodefield"].focus();}function checkfield(id){if(id.value.length == 12){document.barcode.submit();}}selectfield();</script> 

Geändert von Alphadog (07.11.2011 um 15:01 Uhr). Grund: was vergessen
Alphadog ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 07.11.2011, 14:51  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Willkommen im Forum!

Damit Du hier nicht mit dem falschen Fuß einsteigst beherzige bitte diesen Thread.
Wichtige Punkte:
  • Wir helfen gern, wenn Du Initiative zeigst. Macht mal ist nicht.
  • Bitte benutze die Code-Box-Buttons und poste relevanten Code.
  • Bitte stelle verständliche Fragen in ordentlicher Sprache. Sei prägnant!
  • Bitte verwende für spätere Leser einen Threadtitel (Bitte aussagekräftige Threadtitel verwenden), der das Problem kurz beschreibt
  • Bitte drängle nicht.
  • Bitte markiere abgeschlossene Themen über den "Erledigt"-Link oben links.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 07.11.2011, 15:00  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Threadtitel kann ich im Nachhinein leider nicht ändern?
Doch das geht. Andere bekommen es auch hin. Foren-FAQ
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 07.11.2011, 16:07  
Teo
Benutzer
 
Registriert seit: 17.08.2010
Beiträge: 81
PHP-Kenntnisse:
Anfänger
Teo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von Alphadog Beitrag anzeigen
PHP-Code:
...
if (
$_POST['barcodefield']) $_GET['userid']= $db->qry('SELECT userid FROM %prefix%user WHERE barcode='.$_POST["barcodefield"].'');
... 
Ich würd mal nachschauen, was $db->qry zurück gibt... *GlaskugelEinschalt* in dem Fall wohl True...

Bevor du das Teil so auf die Menschheit los lässt, schau dir mal ein paar Kapitel zum Thema SQL-Injection an.
Teo ist offline   Mit Zitat antworten
Alt 07.11.2011, 16:41  
Neuer Benutzer
 
Registriert seit: 07.11.2011
Beiträge: 2
PHP-Kenntnisse:
Anfänger
Alphadog befindet sich auf einem aufstrebenden Ast
Standard

$db->qry sollte eigentlich den Inhalt der DB ( die userid des barcodes) zurückschmeissen.
Die SQL query stimmt zumindest wenn ich sie über den Client laufen lasse, bekomme ich nen wert zurück:

Code:
mysql> SELECT userid FROM lansuite_user WHERE barcode=768300089596;
+--------+
| userid |
+--------+
|      8 |
+--------+
1 row in set (0.00 sec)
also if ($_POST[...] usw. prüft doch erstmal ob barcodefield gesetzt ist, wenn ja wird $_GET['userid']=Tabelleninhalt ausgeführt richtig ?
Alphadog ist offline   Mit Zitat antworten
Alt 07.11.2011, 17:18  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von Alphadog Beitrag anzeigen
$db->qry sollte eigentlich den Inhalt der DB ( die userid des barcodes) zurückschmeissen.
Nicht vermuten, sondern überprüfen!
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 07.11.2011, 17:23  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Und in Zukunft bitte berücksichtigen: http://www.php.de/php-einsteiger/ann..._Multipostings

http://phpforum.de/forum/showthread....03#post1487003
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Antwort


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
Denkfehler bei SQL-Abfrage für Menü/Untermenü krabbat Datenbanken 1 06.09.2011 20:59
[Erledigt] Denkfehler bei Doppelpost-Verhinderung? tigerbrezel PHP Tipps 2010 11 09.08.2010 14:05
Wo ist mein denkfehler newbie88 PHP Tipps 2010 9 19.02.2010 18:11
denkfehler? martink Datenbanken 4 08.05.2009 13:35
[Erledigt] Denkfehler? kremser PHP Tipps 2008 7 05.12.2008 14:19
denkfehler? kontrollkästchen in datenbank sanz PHP Tipps 2008 16 08.05.2008 14:48
Inhalte von Array werden nicht ausgegeben ... Denkfehler? maeck PHP Tipps 2007 10 07.05.2007 16:04
PHP 5.0.4. - Variablen und Include - wo liegt der Denkfehler vampsoftchef PHP Tipps 2007 10 28.12.2006 19:40
Bildskalierung funktioniert nicht richtig, denkfehler? Peoples PHP Tipps 2006 2 07.08.2006 01:51
rekursive Abfrage -- wo ist mein Denkfehler Timo Trallala Datenbanken 1 27.03.2006 11:44
Denkfehler bei $_GET PHP Tipps 2005-2 25 28.10.2005 11:55
denkfehler bei mysql abfrage PHP Tipps 2005-2 5 07.07.2005 22:16
Array Denkfehler ... !? PHP Tipps 2005 9 16.03.2005 14:00
denkfehler mit input-felder PHP Tipps 2005 2 27.02.2005 11:32
if Abfrage - Denkfehler medico PHP Tipps 2004 4 05.08.2004 08:53

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
fertiges db abfrage script, mehrfachabfrage von key in php formular

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:19 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