Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Allgemeines zu Drupal ›

[gelöst]erstellte node immer als eingelogged erkannt

Eingetragen von 1000 (764)
am 13.10.2010 - 18:21 Uhr in
  • Allgemeines zu Drupal
  • Drupal 6.x

hallo,

ich habe eine Node erstellt, welche immer die Hauptlinks in der Navigation anzeigt. Eigendlich dürften diese aber nur authentifizierte User sehen. Ich habe das Modul menu-per-role installiert. Dort habe ich ausdrücklich angehackt, dass nur angemeldete User die einzelnen Menuepunkte sehen dürfen.

Habe per echo die $user->uid ausgegeben. Kurios dabei ist:

Es erscheint eine uid=1 obwohl ich mich abgemeldet habe. Da scheint es einen Bug der node access zu geben oder im Modul menu-per-role

‹ Drupal optimiertes Hosting (GELÖST) Nach Umzug: Kein Einloggen mehr möglich ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

So geht das auch nicht

Eingetragen von Nicolai Schwarz (1071)
am 13.10.2010 - 22:02 Uhr

Da geht was durcheinander: Denn bei "Menu per Role" steht deutlich:

Zitat:

We wrote "menu items", not "nodes". This module does not prevent users from accessing the destination node. It only changes the visibility of the menu items.

Das Modul ist nur dafür da, um bestimmte Menüpunkte nur bestimmten Rollen anzuzeigen, ja. Aber das schützt nicht den Node selbst. Wer die Adresse kennt, darf darauf zugreifen. Wenn dort immer das Hauptmenü steht, sieht das auch jeder (kommt eben darauf an, wie du das anzeigen lässt). Einen Node musst du anders schützen.

Bei dem uid=1: Keine Ahnung. Wir müssten vielleicht den Code sehen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Vielleicht hilfen dir ja folgende Module

Eingetragen von stylestep (43)
am 13.10.2010 - 22:23 Uhr

Vielleicht helfen dir ja folgende Module:

  • node privacy byrole (http://drupal.org/project/node_privacy_byrole)oder
  • Organic Groups (http://www.drupalcenter.de/node/3812)

Viele Grüße

  • Anmelden oder Registrieren um Kommentare zu schreiben

In den menu per role

Eingetragen von 1000 (764)
am 13.10.2010 - 22:54 Uhr

In den menu per role moduleinstellungen habe ich aber eingestellt, dass menupunkte nicht für Gäste sichtbar sein dürfen. Das Problem ist, dass der Inhalt dieser Node einmal für Gäste(ohne Menu) und ein anderes mal für authentifizierte User (mit menu) sichtbar sein soll. Wenn ich im Code z.B. $user=''; setzte passiert keine Änderung. Ich glaube die module access per node erlauben nur ein generelles Verbot zum Betrachten einer Node. Das kuriose dabei ist, dass die Node node/109 ohne Menu angezeigt wird. Dort gibt es eine Form, die Variablen per Post an node/109/suchergebnisse sendet. Nur bei dieser Unterseite erscheint das Menü obwohl man nicht eingeloggt ist Der Code ist etwas zu lang um Ihn zu posten.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Konfus?

Eingetragen von Nicolai Schwarz (1071)
am 13.10.2010 - 23:51 Uhr

Für mich hört sich das recht konfus an. Die Ansicht der Menüs und des Nodes sind mit diesen Modulen erst einmal unabhängig voneinander. Und was soll

Zitat:

$user='';

bedeuten? Hat der Editor da Text verschluckt? Setz den Code mal in ein <code>-Element. Warum willst du Userdaten überschreiben?
Hast du vielleicht einen Link zum Projekt? Dann kann ich mir das vermutlich besser vorstellen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das Problem ist, dass nach

Eingetragen von 1000 (764)
am 14.10.2010 - 13:33 Uhr

Das Problem ist, dass nach Versenden eines Formulars per Post (als Gast) von node/109 zu node/109/suchergebnisse auf einmal aus mir unbegreiflichen Gründen

$user->uid=1

ist. Dies dürfte eigendlich nicht sein, da ich nicht angemeldet bin. Im Code ist auch keinerlei Anweisung zum Setzten dieses Objektes auf 1. Da handelt es sich wohl um einen Bug. Ich schätze die htaccess oder die access control hat Probleme mit dem Versenden von Formularen per Post.

<form name="input" action="https://www.xyz-seite-meine-noch-nicht-fertig.de/node/109/suchergebnisse" method="post">
<table  style="border-collapse:separate; ">
<tr>
<td width="25%"></td>
<td align="left" style="padding-left: 8px;"><b>Was</b>
<input type="text"  size="34" class="inputbox" alt="Profilsuche" maxlength="40" id="mod_search_searchword" name="qx"><font color="#555555" size=1><b>Suchbegriff oder Firmenname</b></font>

<input type="hidden" name="main" value="1"></td>
<td align="left">

<td align="left" style="padding-left: 8px;"><b>Wo</b>
<input type="text"  size="34" class="inputbox" alt="Profilsuche" maxlength="40" id="mod_search_searchword" name="l">
<font color="#555555" size=1><b>Ort oder Postleitzahl</b></font>
<input type="hidden" name="co" value="de">
<input type="hidden" name="test" value="1">

</td>


<td valign="bottom"  align="left" style="padding-bottom: 20px;">
<input type="hidden" name="publisher" value="85653115390389">
<input type='image' src='https://www.xyz*******xxxxhier ist-meine-seite.de/sites/all/themes/danland/images/buttonJob.jpg' width='120px' id="fj" name="submit" onclick="this.submit()">
</td><td width="25%"></td>
</tr></table></form>

Dann lasse ich per:

if ($path[0] == 'node' && $path[2] =='suchergebnisse' || $_REQUEST['co']=='de' || $co=='de')  {

global $user;
$uid=$user->uid;
echo"USERID $uid";
?>

zum einen Testweise die uid ausgeben, welche erstaunlicherweise auch im ausgeloggten Bereich 1 ergibt also user id des admin und zum Anderen werden dort Suchergebnisse ausgegeben.

mit

$user=''; habe ich versucht diesen Fehler zu beseitigen.

In der node/109 ist alles noch ok. Esrt nach dem Versenden der Formulardaten an node/109/suchergebnisse ist $user->uid=1

evt. ist hier ein Fehler drinne:

<?php
//set_time_limit(0);

if(isset($_REQUEST['as_and']) && trim($_REQUEST['as_and']) !="")
$qx = $_REQUEST['as_and'];
elseif(isset(
$_REQUEST['as_and']) && trim($_REQUEST['as_phr']) !="")
$qx = $_REQUEST['as_phr'];
elseif(isset(
$_REQUEST['as_and']) && trim($_REQUEST['as_any']) !="")
$qx = $_REQUEST['as_any'];
elseif(isset(
$_REQUEST['as_and']) && trim($_REQUEST['as_not']) !="")
$qx = $_REQUEST['as_not'];
elseif(isset(
$_REQUEST['as_and']) && trim($_REQUEST['as_ttl']) !="")
$qx = $_REQUEST['as_ttl'];
elseif(isset(
$_REQUEST['as_and']) && trim($_REQUEST['as_cmp']) !="")
$qx = $_REQUEST['as_cmp'];
else
$q1 = $_REQUEST['q1'];
$qx = $_REQUEST['qx'];
$qold=$qx;

if(
$_REQUEST['test']==1)
{
$qx="diplom+"."$qold".",Hochschulabschluss+"."$qold".",Master+"."$qold".",bachelor+"."$qold";
$test=0;
}

global
$user;
$userid=$user->uid;
if(
$userid!='' && $_REQUEST['test']!=1)
{

$x=2;
$sql = "SELECT * FROM {profile_values} WHERE uid = %d and fid=%d";
$result = db_query($sql, $userid, $x);
$row = db_fetch_object($result);

$qold = $row->value;
$qx="diplom+"."$qold".",Hochschulabschluss+"."$qold".",Master+"."$qold".",bachelor+"."$qold";
$test=0;
$publisher='85653115390389';
$co='de';
}

$l = trim($_REQUEST['l']);

if(isset(
$_REQUEST['jt']) && trim($_REQUEST['jt']) !="")
$jt = $_REQUEST['jt'];
else
$jt = "all";

if(isset(
$_REQUEST['st']) && trim($_REQUEST['st']) !="")
$st = $_REQUEST['st'];
else
$st = "";

if(isset(
$_REQUEST['page']) && trim($_REQUEST['page']) != 0)
$start = ($_REQUEST['page']-1) * $_REQUEST['limit'];
else{
if(isset(
$_REQUEST['start']))
$start = $_REQUEST['start'];
else
$start = 0;
}

if(isset(
$_REQUEST['fromage']) && trim($_REQUEST['fromage']) !="")
$fromage = $_REQUEST['fromage'];
else
$fromage = "any";

$userip = $_SERVER['REMOTE_ADDR'];

$useragent = $_SERVER['HTTP_USER_AGENT'];

if(isset(
$_REQUEST['sort']) && trim($_REQUEST['sort']) !="")
$sort = $_REQUEST['sort'];
else
$sort = "";

if(isset(
$_REQUEST['radius']) && trim($_REQUEST['radius']) !="")
$radius = $_REQUEST['radius'];
else
$radius = 50;

$limit = 8;
if(
$publisher==''){
$publisher = $_REQUEST['publisher'];


$co = $_REQUEST['co'];
}


$target_url = "http://api.nicht-meine-seite-xxx.url.com/ads/apisearch?publisher=$publisher&q=".str_replace(" ","+",$qx)."&l=$l&co=$co&sort=$sort&radius=$radius&st=$st&jt=$jt&start=$start&limit=$limit&fromage=$fromage";

$userAgent = 'Googlebot/2.1 (http://www.googlebot.com/bot.html)';

// make the cURL request to $target_url
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, $userAgent);
curl_setopt($ch, CURLOPT_URL,$target_url);
curl_setopt($ch, CURLOPT_FAILONERROR, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_TIMEOUT, 500);

$xmlstring= curl_exec($ch);

$xml = new ParseXml();
$xml->LoadString($xmlstring);
$dataArray = $xml->ToArray();

/*echo '<br>';
echo $dataArray['totalresults'];
echo '<br>';
echo $dataArray['start'];
echo '<br>';
echo $dataArray['end'];
echo '<br>';
*/
if(count($dataArray['results'])==0)
   
$finalArray[0] = $dataArray['result'];
else
   
$finalArray = $dataArray['results']['result'];
/*echo '<pre>';
print_r($finalArray);*/

$url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];

$string = $qx."#".$url."|";

$ftp = fopen("recentsearch.txt","a");
fwrite($ftp,$string);
fclose($ftp);
?>

  • Anmelden oder Registrieren um Kommentare zu schreiben

Es ist devinitiv ein Bug in

Eingetragen von 1000 (764)
am 14.10.2010 - 14:19 Uhr

Es ist devinitiv ein Bug in der Sessions Verwaltung:

session_destroy(); // purge the session record
  module_invoke_all('user', 'logout', NULL, $user);

damit bekomme ich die Session beented, die eigendlich nicht exitieren dürfte. Allerdings löst es mein Problem nicht, da auch angemeldete User die Suche nutzen sollten

Da läuft einiges Schief. Irgendein Modul verursacht Konflikte bei der Sessions Verwaltung. Ich habe menu per role im Verdacht. Außerdem wird die Session gecached. Das ist wirklich chaos pur. Kann ich irgendwie verhindern, dass die Sessions gecached werden???

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich habe das modul subdomains

Eingetragen von 1000 (764)
am 14.10.2010 - 16:27 Uhr

Der Fehler scheint verschwunden. Ich habe in der settings.php die $base_url korrekt angegeben. Dies scheint den Fehler zu beheben. Warum auch immer. Trotz dessen vielen Dank für eure Antworten.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 4 Tagen 11 Stunden
  • Hey danke
    vor 5 Tagen 6 Stunden
  • Update: jetzt gibt's ein
    vor 6 Tagen 22 Minuten
  • Hallo, im Prinzip habe ich
    vor 1 Woche 3 Tagen
  • Da scheint die Terminologie
    vor 1 Woche 3 Tagen
  • Kannst doch auch alles direkt
    vor 2 Wochen 19 Stunden
  • In der entsprechenden View
    vor 2 Wochen 19 Stunden
  • Dazu müsstest Du vermutlich
    vor 2 Wochen 19 Stunden
  • gelöst
    vor 4 Wochen 4 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 4 Wochen 5 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20449

Neue User:

  • Mroppoofpaync
  • 4aficiona2
  • AppBuilder

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 17 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association