php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 14.04.2008, 11:17  
Neuer Benutzer
 
Registriert seit: 14.04.2008
Beiträge: 3
OliL befindet sich auf einem aufstrebenden Ast
Standard Auf eine Variable einer anderen Datei zugreifen

Hallo,

also ich habe 3 Dateien: books.php, login.php und order.php.
Alle 3 Dateien beinhalten php und html code.

Auf der books.php wird eine Liste von Büchern ausgeben mit checkbox.
PHP-Code:
$sql="SELECT tblBook.BookID, tblAuthor.Name, tblBook.Price, tblBook.title, tblBook.ISBN FROM (tblAuthor INNER JOIN     tblBook ON tblAuthor.authorID = tblBook.authorID) ORDER BY tblAuthor.Name";
                 $RS_query=mysql_query($sql,$connect);      
                 $RS=mysql_fetch_row($RS_query);
                 while(!($RS==0))
                  {
             ?>
             <tr>
               <td style="width:1px;background-color:#695CDA;"></td>
               <td style="width:598px;background-color:#ffffff;padding:2px 5px 2px 5px"><table cellspacing="0" cellpadding="0" style="width:598px;"><tr><td><?php echo $RS[1];?>: <span style="font-weight:bold"><a href="#" onmouseover= "popup(<?php echo $RS[0];?>)"  onmouseout="popout()"><?php echo $RS[3];?></a></span><br />ISBN <?php echo $RS[4];?><br /></td><td style="font-weight:bold;width:135px">Price: AUD$<?php echo $RS[2];?></td><td style="width:35px;"><input type="checkbox" name="order[]" value="<?php echo $RS[0];?>" style="border-width:0;"></input></td></tr></table></td>
             </tr>
...
<td style="width:50px;"><input type="submit" name="select" value="Order Books" style="margin-left:5px">
Wenn ich auf "Order Books" drücke wird die login.php geöffnet wo der User sich anmelden muss.
PHP-Code:
<form action="order.php" method="post">
          <
tr>
             <
td style="width:700px;"><b><div class="header1">Kids«s Bookshelf Orders<img src="images.jpg"></div></b></td></tr>
             <
tr>
             <
td style="width:100px;"><b></b></td>
             <
td style="width:100px;"><b></b></td>
                <
td style="width:25px;"><b>Username</b></td>
                <
td style="height:15px;"><input name="username" type="text" size="20" style="margin-left:5px"></td>
             <
td style="width:50px;"><input type="submit" name="login" value="Login" style="margin-left:5px"></td></tr>
             <
tr>
                     <
td style="width:100px;"><b></b></td>
                     <
td style="width:100px;"><b></b></td>
                     <
td style="width:50px;"><b>Password</b></td>
                     <
td style="height:15px;"><input name="password" type="password" size="20" style="margin-left:5px"></td>
                     <
td></td>
                 </
tr></form
Nach dem Login wird alles nach order.php geschickt und dort wird überprüft oder der Login erfolgreich war. Wenn ja, sollen die Bücher die per checkbox ausgewählt wurden (in der books.asp) hier angezeigt werden. Dies geschieht aber nicht. Wie kann ich denn also in der order.php auf die Variable (checkboxen) der books.php zugreifen? Hatte an sowas wie $checkbox=$_POST["order"]; $numbercheckbox=count($_POST["order"]); gedacht aber kommt alles leer oder mit 0 raus??

Danke für jede Hilfe!

PHP-Code:
<?php 
        $sql
="SELECT user, password FROM login";
        
$RS_query=mysql_query(($sql),$connect);  
        
$RS=mysql_fetch_array($RS_query);
        
$error=0;
        if (
$_POST["username"]==$RS["user"] && $_POST["password"]==$RS["password"])
        {
        
?>
.....
$checkbox=$_POST["order"];
              $numbercheckbox=count($_POST["order"]);
              $checkboxCount = 0;
            foreach ($checkbox as $name) {
            $checkboxCount=$checkboxCount+1;
            if ($checkboxCount==1)
            {    
                $result=$result."tblBook.bookid=".$name;
            }
              else
            {
                $result=$result." OR tblBook.bookid=".$name;
            }     
              }

  $sql="SELECT tblBook.BookID, tblAuthor.Name, tblBook.Price, tblBook.title, tblBook.ISBN, tblBook.StockLevel FROM (tblAuthor INNER JOIN tblBook ON tblAuthor.authorID = tblBook.authorID) WHERE ".$result." ORDER BY tblBook.Title";
  $RS_query=mysql_query(($sql),$connect);  
  $RS=mysql_fetch_row($RS_query);
  ;while(!($RS==0))
  {
?>
              <tr>
               <td style="width:1px;background-color:#695CDA"><input type="hidden" name="order" value="<? echo $RS["isbn"];?>"></td>
               <td style="width:598px;background-color:#ffffff;padding:2px 5px 2px 5px">
               <table cellspacing="0" cellpadding="0" style="width:548px">
               <tr>
           <td style="width:300px"><? echo $RS[1];?>: <span style="font-weight:bold"><a href="#" onmouseover= "popup(<? echo $RS[0];?>)"  onmouseout="popout()"><? echo $RS[3];?></a></span><br />ISBN <? echo $RS[4];?><br /></td>
               <td style="font-weight:bold;width:100px">Price: AUD$<? echo $RS[2];?></td>
               <td style="width:50px;"><input type="text" name="quantity<? echo $RS[4];?>" style="width:25px;"></td>
          </tr>
               </table>
               </td>
             </tr>
            <tr>
               <td colspan="3" style="width:498px;height:1px;background-color:#695CDA"></td>
             </tr>
             <?php 
                 $RS
=mysql_fetch_row($RS_query);
                }
                 }                          
                
?>
OliL ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 14.04.2008, 11:41  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.034
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Es ist mit zu blöd, diesen furchtbar formatierten Code durchzusehen.
Nur soviel, die Inputfelder aus der ersten Datei werden an die zweite übergeben, die aus der zweiten an die dritte, etc. Wenn du die Daten über mehrere Seiten behalten willst, musst du sie entweder über alle Seiten immer wieder weitergeben, z.B. als «hidden fields» (was ich nicht empfehlen würde), oder dann speicherst du diese in Session-Variablen.
__________________
Gruss
L
lazydog ist offline  
Alt 15.04.2008, 01:10  
Neuer Benutzer
 
Registriert seit: 14.04.2008
Beiträge: 3
OliL befindet sich auf einem aufstrebenden Ast
Standard

@lazydog: Ja der Code wird sowieso am Ende - wenn alles läuft - strukturiert.

Also in der login.php kriege ich den order[] array (ausgewählte checkboxen von books.php) und kann somit auch die Anzahl herauskriegen mit count(). Diesen Wert brauche ich in der order.php um die Bücher, die selektiert wurden, auszugeben, da ich dann mit einer foreach Schleife arbeiten werde. Dieser Wert wird aber nicht übernommen... warum wird er in der login.php übernommen aber nicht order.php? Irgendwas mache ich falsche, aber was....

books.php ($RS[0] ist die BookId)
PHP-Code:
<input type="checkbox" name="order[]" value="<?php echo $RS[0];?>" style="border-width:0;">
login.php (hier gibt er mir den Array mit den ausgewählten Checkboxen und auch die Anzahl - als Beispiel 3)
PHP-Code:
<?php 
         $checkbox
=$_POST["order"];
              
$numbercheckbox=count($checkbox);
            
?>
order.php (hier will ich jetzt jeden Wert des Arrays herausholen -$name- und ausgeben, $checkbox und $numbercheckbox ist aber leer bzw. 0)
PHP-Code:
<?php 
            $checkbox
=$_POST["order"];
            
$numbercheckbox=count($checkbox);
            
$checkboxCount 0;
            foreach (
$checkbox as $name) {
            
$checkboxCount=$checkboxCount+1;
            echo 
$name;
              }
Wie kriege ich also den selben Wert der books.php, login.php auch in order.php raus? Soll ich sowas wie
PHP-Code:
<input type="hidden" name="order[]" value="<?php echo $RS[0];?>" style="border-width:0;">
einfügen? Sorry aber ich versteh es im Moment nicht... Thanks.
OliL ist offline  
Alt 15.04.2008, 06:58  
Erfahrener Benutzer
 
Registriert seit: 28.03.2008
Beiträge: 1.846
HPR1974 wird schon bald berühmt werden
Standard

also erstens mal ist Dein code echt super zu lesen:
"der Code wird sowieso am Ende - wenn alles läuft - strukturiert" ist der dümmste dummsinn den ich heute schon gelesen habe.

Du solltest Dir einen Warenkorb bauen, die Bücher dort ablegen und ggf wieder aufrufen und nach bestellung den cart löschen.

$RS=mysql_fetch_row($RS_query);
;while(!($RS==0))

Das ist ein besonders schönes konstrukt

Du vergurkst eine while schleife irgendwie als do{}while()
so sieht das normal aus:

while($RS=mysql_fetch_row($RS_query)){
}


$sql="SELECT user, password FROM login";
$RS_query=mysql_query(($sql),$connect
);
$RS=mysql_fetch_array($RS_query
);

gibt es nur einen user?

Warum verwendest Du mal short tags, mal nicht?

Du verwendest mysql_fetch_row($RS_query); und möchtest dann folgendes ausgeben: echo $RS["isbn"]; es wird kein $RS["isbn"] geben

etc.
HPR1974 ist offline  
Alt 15.04.2008, 07:56  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.034
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von OliL Beitrag anzeigen
Ja der Code wird sowieso am Ende - wenn alles läuft - strukturiert.
Damit behinderst du nicht nur diejenigen, die dir helfen wollen, sondern in erster Linie auch dich selber.

Zitat:
Zitat von OliL Beitrag anzeigen
Dieser Wert wird aber nicht übernommen... warum wird er in der login.php übernommen aber nicht order.php?
Das habe ich dir ja schon geschrieben: Inputfelder aus Formularen werden nur in das in action genannten Zielscript übergeben, und sonst nirgendwo hin! Leg die Daten in Session-Variablen ab.
__________________
Gruss
L
lazydog ist offline  
Alt 15.04.2008, 14:46  
Neuer Benutzer
 
Registriert seit: 14.04.2008
Beiträge: 3
OliL befindet sich auf einem aufstrebenden Ast
Standard

Ok, läuft mit der Session Variable thanks.
Wenn ich jetzt mit einem Logout die order.php verlasse und automatisch zu der login.php weitergeleitet werde, wenn ich mich dann wieder einlogge, dann ist die Session-Variable leer.

Ist dies der Fall weil eine neue Session_start() in der login kreiert wurde, und die eine neue Nummer hat? Wie soll ich vorgehen, um die Variable beizubehalten wenn in der Datei eine Aktion (sei es Logout) durchgeführt wurde?

Thanks.
OliL ist offline  
Alt 15.04.2008, 15:24  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.034
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Was heisst für dich ein Logout? Das Beenden des Browsers oder das Abschalten der Kiste?
In dem Falle bleibt dir wohl nicht anderes übrig, als die Daten entweder in einem Cookie zu speichern, oder aber benutzerabhängig in eine DB zu schreiben. Letzteres geht natürlich nur, wenn du die Benutzerdaten kennst, d.h. der Benutzer sich schon eingeloggt hat.
__________________
Gruss
L
lazydog ist offline  
 


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
Variable und komplette HTML Datei chrisonline PHP Tipps 2007 3 24.05.2007 15:30
Info aus Variable in andere Datei einfügen PHP Tipps 2006 6 20.02.2006 17:10
Befehl zum öffnen einer anderen php Datei PHP Tipps 2006 4 18.02.2006 16:28
[Erledigt] Variable in includeter datei nicht mehr verfügbar PHP-Fortgeschrittene 14 09.02.2006 18:33
Datei auf FTP-Server ändern ohne lokal abzuspeichern faux PHP-Fortgeschrittene 11 02.09.2005 11:54
Wert einer Variable in einer anderen Funtion übernehmen seven-12 PHP Tipps 2005-2 7 14.06.2005 00:36
Datei auf einen anderen Server laden Borlox PHP Tipps 2005 3 25.04.2005 20:12
Datei auf einem anderen Server ändern PHP Tipps 2005 2 01.04.2005 18:47
Datei von einem zum anderen Server kopieren... peter5000 PHP Tipps 2005 26 28.02.2005 20:17
Auslesen Tabelleneintrag über zugewiesene Variable in Datei PHP Tipps 2005 14 14.02.2005 19:04
Variablenwert in mit in einer anderen Datei verschicken maximus PHP Tipps 2005 6 03.02.2005 18:33
Variable aus anderer Datei benutzen php-newbie83 PHP Tipps 2004 2 05.10.2004 08:43
variable an andere php datei übergeben PHP Tipps 2004 18 19.09.2004 10:09
Zugriff von einer PHP Seite auf eine Variable der anderen. PHP Tipps 2004 4 02.08.2004 01:24
[Erledigt] Datei einlesen -&gt; in Variable schreiben PHP Tipps 2004 2 22.07.2004 11:33

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php auf funktion in anderer datei zugreifen, php variable in andere datei übernehmen, php auf variable aus anderer datei zugreifen, php auf funktion einer anderen datei zugreifen, auf andere cpp datei zugreifen, php variable aus anderer datei übernehmen, auf andere php datei zugreifen, php auf klasse in anderer datei zugreifen, variable in andere php datei übernehmen, php auf variablen in anderen php dokument zugreifen, php auf andere php zugreifen, php auf andere dateien zu greifen, javascript auf variablen aus anderer datei zugreifen, php zugriff auf variable in anderer datei, php auf andere php seite zugreifen, http://www.php.de/php-tipps-2008/894-auf-eine-variable-einer-anderen-datei-zugreifen.html, php auf funktion anderer datei zugreifen, javascript auf datei zugreifen, php auf variablen in anderen dateien zugreifen, php auf andere datei zugreifen

Alle Zeitangaben in WEZ +1. Es ist jetzt 18:12 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