php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 18-11-2009, 15:06
m-werk
 Registrierter Benutzer
Links : Onlinestatus : m-werk ist offline
Registriert seit: Jan 2006
Beiträge: 168
m-werk ist zur Zeit noch ein unbeschriebenes Blatt
Standard bei Klick auf Seitennavigation erscheint wieder Login Formular

Hallo,

ich habe eine admin.php datei, welche mit funktionen aufgebaut ist

PHP-Code:
function main()
{
    
// Aktion lesen
    
$action 0;
    if (isset(
$_REQUEST['action']))
        
$action $_REQUEST['action'];
        
    switch (
$action)
    {
        case 
0showLogin(); break; // Login Formular
        
case 1doLogin(); break;   // Wenn Login erfolgreich, Insert-Maske
        
case 2insertNews(); break;// Schreiben in die Datenbank (Insert)
        
case 3deleteNews(); break;// Newsletter Löschen
        
case 4showAdmin(); break;  // Newsletter Bearbeiten
        
case 5showCompany(); break; // Suchformular
        
default: showLogin(); break;
    }

Es wird also zuerst das Loginformular aufgerufen. Dahinter wird der Check gemacht "doLogin()"

Wenn das Login OK ist, wird "case 5: showCompany" aufgerufen.

Soweit funktioniert das alles. Nun habe ich in der funktion showCompany eine Seitennavigation dazugegeben.

Wenn ich in dieser Navigation auf eine andere Seitenzahl klicke, ist der Link zwar richtig, aber es wird wieder das Login Formular angezeigt.

PHP-Code:
...
$links[] = '<a href="admin.php?go='.$i.'">'.$i.'</a>';
... 
was mach ich da falsch?

LG, m-werk
Mit Zitat antworten
  #2 (permalink)  
Alt 18-11-2009, 15:10
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Hallo,

?go=irgendwas ist nicht dasselbe wie ?action=irgendwas, da du in der Navigation aber Links mit go generierst, tritt der default-Wert für action (0) in Kraft und sorgt für den Login.

Gruß,

Amica
Mit Zitat antworten
  #3 (permalink)  
Alt 18-11-2009, 15:12
m-werk
 Registrierter Benutzer
Links : Onlinestatus : m-werk ist offline
Registriert seit: Jan 2006
Beiträge: 168
m-werk ist zur Zeit noch ein unbeschriebenes Blatt
Standard

das leuchtet mir ein. leider habe ich den ursprünglichen code nicht selbst geschrieben, sondern ein ehemaliger mitarbeiter hat den erstellt, und nun wollte ich einfach eine navigation einbauen, da es in der datenbank schon sehr viele datensätze diesbezüglich gibt.

Wie bzw. was muss ich nun wie tun?
__________________
LG, m-werk
Mit Zitat antworten
  #4 (permalink)  
Alt 18-11-2009, 15:15
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von m-werk Beitrag anzeigen
Wie bzw. was muss ich nun wie tun?
Die Links so erzeugen, dass der action-Parameter durchgeschleift wird:

PHP-Code:
$links[] = '<a href="admin.php?action='.$action.'&go='.$i.'">'.$i.'</a>'
Allerdings scheint mir das ganze ziemlich anfällig. Für mich sieht es so aus, als ob man auch völlig ohne Anmeldung eine beliebige Seite aufrufen kann, wenn man die entsprechenden Parameter kennt.
Mit Zitat antworten
  #5 (permalink)  
Alt 18-11-2009, 15:16
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von AmicaNoctis Beitrag anzeigen
Die Links so erzeugen, dass der action-Parameter durchgeschleift wird
Oder du arbeitest mit Sessions und erweiterst die Bedingung entsprechend.

Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #6 (permalink)  
Alt 18-11-2009, 15:30
m-werk
 Registrierter Benutzer
Links : Onlinestatus : m-werk ist offline
Registriert seit: Jan 2006
Beiträge: 168
m-werk ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Da die Navigation und die dazugehörige Abfrage in einer Funktion verpackt sind, muss ich dann $action=5; schreiben, oder? Sonst weiss der link nicht, welche Aktion gemeint ist.

Das hab ich nun auch so gemacht. Funktioniert zwar, aber nun habe ich noch kein ergebniss.

Ich habe auch eine Combobox, die zuvor ausgefüllt weden muss, damit das Ergebniss erscheint.

Das funktioniert prima nach dem Login.

PHP-Code:
$ausCID 0;
$ausCName 'leer';
        
$str_sql 'SELECT * FROM company';
$result $db->select($str_sql,1);
$option_str '';
foreach (
$result as $row)
{
    
$selected '';
    if (
$CID == $row[0])
    {
        
$selected 'selected';
        
$ausCID $row[0];
        
$ausCName $row[1];
    }
    
$option_str .= '<option value="'.$row[0].'" '.$selected.'>'.$row[1].'</option>';
}
            
echo 
'<form name="search_news" action="admin.php" method="post">';
echo 
'<table id="tbl_insert">';
echo 
'  <tr>';
echo 
'  <td style>Unternehmen: <select style="width:200px" name="CID">'.$option_str.'></select></td>';
echo 
'</tr><tr>';
echo 
'  <td style="padding-left:97px"><input type="submit" class="button1" value="Suchen" /></td>';
echo 
'</tr></table>';
echo 
'<input type="hidden" name="action" value="5" />';
echo 
'</form>'
Dannach wird folgendes SQL aufgerufen:
PHP-Code:
$str_sql 'SELECT * FROM newsletter WHERE CID="'.$CID.'" ORDER BY NDate DESC LIMIT '.$start.','.$datensaetze_pro_seite;
$result $db->select($str_sql,1); 
So, aber auch für die Navigation habe ich ein SQL:
PHP-Code:
//Select-Abfrage für die Navigation
    
$str_sql 'SELECT * FROM newsletter WHERE CID="'.$CID.'" ORDER By NDATE DESC'
Wenn ich nun auf eine Navigationsseite klicke, kommt eine leere Seite und ich muss wieder ein Unternehmen aus der Combobox auswählen.

Dann sehe ich wieder nur die 1. Seite
__________________
LG, m-werk
Mit Zitat antworten
  #7 (permalink)  
Alt 18-11-2009, 15:47
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Trotz des vielen Codes ist das grad irgendwie nicht nachzuvollziehen. Ich habe eine Vermutung, aber die kann ich mit dem geposteten Code weder bestätigen noch widerlegen.

Definierst du bestimmte Variablen außerhalb von Funktionen und versuchst dann, innerhalb einer Funktion darauf zuzugreifen? Z. B. $action, $CID, ...

Wenn ja, das geht nicht, weil Funktionen ihren eigenen Scope haben. Man kann zwar innerhalb der Funktion eine Variable als global deklarieren und somit eine äußere Variable in den Funktionsscope importieren, aber das ist schlechter Stil. Besser wäre es, die benötigten Variablen mit an die Funktion zu übergeben und deren Signatur entsprechend zu ergänzen.

Edit: wenn du zu dem Ersteller noch einen guten Draht hast (bei ehemaligen Mitarbeitern weiß man das ja nicht so), kannst du den ja fragen, ob er das in Ordnung bringt. Noch besser wäre es allerdings, einen Profi zu bezahlen, damit der das nochmal neu und ordentlich baut. Aus deinem geposteten Code sind schon jetzt Sicherheitsmängel erkennbar (SQL Injection). Falls das im Intranet läuft, mag es noch gehen, aber im Internet könnte es in dieser Form gefährlich werden.

Geändert von AmicaNoctis (18-11-2009 um 15:53 Uhr)
Mit Zitat antworten
  #8 (permalink)  
Alt 18-11-2009, 16:12
m-werk
 Registrierter Benutzer
Links : Onlinestatus : m-werk ist offline
Registriert seit: Jan 2006
Beiträge: 168
m-werk ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Naja, hab schon noch kontakt zu ihm, aber er tut nichts mehr.

Aber egal, ich hab es trotzdem selbst geschaft. Hab auch im Link der Navigation einen weiteren Parameter übergeben müssen. Somit laufen alle Tests sehr gut und es funktioniert.

DANKE für die Hilfe
__________________
LG, m-werk
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Beim Klick auf Button - Formular nicht absenden! KarlKoks HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 3 15-07-2009 13:29
Formular leeren, bei Klick auf Zurück blaster16 PHP Developer Forum 12 27-02-2006 08:45
Login von mrhappiness mal wieder :-) kathrin-77 Tutorials 12 28-06-2004 19:30
mal wieder login jbo PHP Developer Forum 46 27-12-2003 18:32
Bei klick auf SUBMIT-Button im Formular email erzeugen... Metallica HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 9 05-02-2002 10:55

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

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