Andreas Menzel: Fehler: Aber wo?

Ich wollte den Formmailer der Joomlakomponente Contacts ändern:
Zwei Ansichte; Logged in Absender=user Emailadresse vom User/ Logged out: Eingabe ermöglichen!

Der Output ist momentan nicht nach meinen Wünschen:
Wer hat da einen rat?

Gruß Andreas

[PHP]
<?php
/**
 * Writes Email form
 */
 function _writeEmailForm( &$contact, &$params, $sitename, &$menu_params ) {
  global $Itemid, $mosuser, $my;
               var $benutzer; var $eadresse; var $eingeloggt; var $inputform; var $readclass; var $inputform1; var $readclass1;

if ( $contact->email_to && !$params->get( 'popup' ) && $params->get( 'email_form' ) ) {
   // used for spoof hardening
   $validate = josSpoofValue();

?>
   <tr>
    <td colspan="2">
    <br />
    <?php echo $params->get( 'email_description' ) ?>
    <br /><br />
    <form action="<?php echo sefRelToAbs( 'index.php?option=com_contact&amp;Itemid='. $Itemid ); ?>" method="post" name="emailForm" target="_top" id="emailForm" >
    <div class="contact_email<?php echo $menu_params->get( 'pageclass_sfx' ); ?>">

<?php
                              $eingeloggt=false;
     $inputform="text";
     $inputform1="text";
      $readclass="inputbox";
     $readclass1="inputbox";

if ($my->$logged='1')
         {
      $eingeloggt=true;
      $benutzer=$my->name;
                                               $eadresse=$my->email;
      $inputform="hidden";
      $inputform1="hidden";
      $readclass="ftext";
      $readclass1="ftext";
                                  }

?>    <br />
      <label for="contact_name">
       <?php echo(_NAME_PROMPT);?>
      </label>
      <br />
       <input type=<?php echo $inputform;?> class=<?php echo $readclass;?> name="name" id="contact_name" size="30" value="<?php echo $benutzer; ?>" />
      <?php if ($inputform="hidden")
            {
       echo $benutzer;
       }
      ?>
                                    <br />
      <label for="contact_email">
       <?php echo(_EMAIL_PROMPT); ?>
      </label>
      <br />
                                          <input text=<?php echo $inputform1; ?> class=<?php echo $readclass1;?> name="email" id="contact_email" size="30" value="<?php echo $eadresse; ?>" />
                               <?php if ($inputform1="hidden")
       {
       echo $eadresse;
       }
      ?>
      <br />
                <label for="contact_subject">
     <?php echo(_SUBJECT_PROMPT)?>
     </label>
     <br />
     <input type="text" name="subject" id="contact_subject" size="30" class="inputbox" value=" <?php echo $contact->name;?>" readonly />
     <br />
     <br />
     <label for="contact_text">
      <?php echo(_MESSAGE_PROMPT); ?>
     </label>
     <br />
     <textarea cols="50" rows="10" name="text" id="contact_text" class="inputbox"></textarea>
     <?php

if ( $params->get( 'email_copy' ) ) {
      ?>
      <br />
       <input type="checkbox" name="email_copy" id="contact_email_copy" value="1"  />
       <label for="contact_email_copy">
        <?php echo(_EMAIL_A_COPY); ?>
       </label>
      <?php
           }
     ?>
     <br />

<br />
     <input type="button" name="send" value="<?php echo(_SEND_BUTTON); ?>" class="button" onclick="validate()" />
    </div>
    <input type="hidden" name="option" value="com_contact" />
    <input type="hidden" name="con_id" value="<?php echo $contact->id; ?>" />
    <input type="hidden" name="sitename" value="<?php echo $sitename; ?>" />
    <input type="hidden" name="op" value="sendmail" />
    <input type="hidden" name="<?php echo $validate; ?>" value="1" />
    </form>
    <br />
    </td>
   </tr>

}
 }
[/PHP]

  1. Hi Andreas,

    = != ==

    Du benutzt eine Zuweisung möchtest aber vermutlich einen Vergleich durchführen.

    Gruß

    lulu

    1. Hi Andreas,

      = != ==

      Du benutzt eine Zuweisung möchtest aber vermutlich einen Vergleich durchführen.

      Gruß

      lulu

      Richtig, stimmt,
      ich wollte nach schauen ob ein user eingeloggt ist,
      wenn ja user-name, und email adress dem Formmailer übertragen zgl.
      soll das Formular umgestellt werden von input type=text auf type=hidden
      dabei soll die felder für einträge nicht beschreibar werden.

      ich beschäftige mich erst seit ein paar tagen mit php scripten, und habe die operatoren und funktionen noch nicht gut drauf

      Danke

  2. Trotz Ändereung des Operators in der if kontrolle funktioniert es nicht!

    form reagiert unlogisch!

    Die Abfrage 'wenn user eingeloggt dann variabeln besetzen mit'

    $varname='hidden'; oder $varname='text';
    funktioniert wunderbar.

    nur möchte ich die variable in input übergeben:

    eintrag:

    <input type="<?php echo $varname;?>"  oder $$; mit oder ohne ""
    ...>
    führt dazu wenn der user nicht eingeloggt hidden sonst text

    ich betone nochmal das die variabeln richtig gesetzt sind und die abfrage für sich korrekt ergebnisse liefert.

    nur die integration in die form scheint nicht richtig zu funktionieren.

    1. Huhu Andreas,

      Trotz Änderung des Operators in der if kontrolle funktioniert es nicht!

      Dir ist auch nicht entgangen das nämlicher Fehler dreifach (mindestens) vorlag?

      [...]
      if ($my->$logged='1')
      [...]
      if ($inputform="hidden")
      [...]
      if ($inputform1="hidden")
      [...]

      Ansonsten lass Dir das resultierende HTML anzeigen und versuche mit Dumpausgaben (z.B. per var_dump() ) der Variablen das Problem einzugrenzen.

      Viele Grüße

      lulu

      --
      bythewaythewebsuxgoofflineandenjoytheday