SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

TYPO3 Kochbuch

TYPO3 Kochbuch zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 22.10.2005, 22:07:48
mirk mirk ist offline
Anfänger
 
Registriert seit: Oct 2005
Beiträge: 5
LDAP Problem

Hallo,

Ich versuche jetzt schon 5 Stunden einen Eintrag mittels PHP in meinen LDAP hinzubekommen. Es funktioniert aber nicht. Der Code schaut folgendermaßen aus:
PHP-Code:
<?php
$ds
=ldap_connect("server");  // Annahme: der LDAP Server befindet
                                       // sich auf diesem Host
if ($ds) {
    
// bind mit passendem dn für aktulisierenden Zugriff
    
$r=ldap_bind($ds,'cn=ingAdmin, o=ing''pw');
    
    
$info = array();
        
// Daten vorbereiten
        
$info['givenname']='Hansids';
    
$info['objectclass'][0]='top';
    
$info['objectclass'][1]='inetOrgPerson';
    
$info['mail']='Mustermann@firma.de';
    
$info['cn']='Hansids Mustermann';
        
$info['ou']='Mitarbeiter';
        
$info['o']='ing';
    
$info['sn']='Mustermann';
    
    
$dn'cn=Hansids Mustermann,o=ing';
    
    
// hinzufügen der Daten zum Verzeichnis
    
$sr=ldap_add($ds$dn$info);
    
$e1=ldap_err2str($sr);
    
$e2=ldap_errno($sr);
    echo 
'Error1: $e1<br>';
    echo 
'Error2: $e2<br>';
    
    
ldap_close($ds);
} else {
    echo 
"Verbindung zum LDAP Server nicht möglich!";
}
?>
Leider führt es zu keinem Erfolg. Felhlermeldungen ($e1 und $e2):
Error1: Success
Error2:

Also der Fehler müsste irgendwo in dem Script liegen. Mit dem Script "phpLDAPadmin" kann ich eintragen was ich will.

System:
openldap 2.2.19-db-4.2.52-openssl-0.9.7e
OS WinXP
PHP 5.0.3

Weiß jemand an was das liegen könnte?

Gruß Daniel
Mit Zitat antworten
  #2  
Alt 22.10.2005, 23:11:35
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: LDAP Problem

In deinem Quellcode kann ich keinen Fehler finden. Außerdem erhälst du ja auch keiner Fehler- sondern eine Erfolgsmeldung (oder wie sollte Success sonst interpretiert werden?). Woran stellst du denn fest, dass das Hinzufügen nicht erfolgreich war?
Mit Zitat antworten
  #3  
Alt 22.10.2005, 23:22:09
mirk mirk ist offline
Anfänger
 
Registriert seit: Oct 2005
Beiträge: 5
AW: LDAP Problem

Da der Eintrag nicht im Ldap vorhanden ist. :) Überprüfen kann ich das mit dem Programm LDAPBrowser oder dem phpLDAPAdmin. Ich verstehe es auch nicht wieso ich ein Success bekomme.

Gruß Daniel
Mit Zitat antworten
  #4  
Alt 23.10.2005, 12:28:24
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: LDAP Problem

Dann kann ich dir da leider auch nicht weiterhelfen.
Mit Zitat antworten
  #5  
Alt 23.10.2005, 12:38:28
mirk mirk ist offline
Anfänger
 
Registriert seit: Oct 2005
Beiträge: 5
AW: LDAP Problem

Guten Morgen,

Schade :) aber trozdem danke. Naja muss ich wohl weiter probieren. Ich probiere nun die Funktion von dem script "phpLdapAdmin" dafür zu nutzen. Mal sehen ob ich des in meine bestehende eingabe einbauen kann.

Gruß Daniel
Mit Zitat antworten
  #6  
Alt 23.10.2005, 13:08:37
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: LDAP Problem

Kann es vielleicht auch sein, dass der Eintrag an einer anderen Position im Verzeichnisbaum erfolgt als du eigentlich erwartest?
Mit Zitat antworten
  #7  
Alt 23.10.2005, 13:23:30
mirk mirk ist offline
Anfänger
 
Registriert seit: Oct 2005
Beiträge: 5
AW: LDAP Problem

Eigentlich nicht. Wenn ich das LDAP-Verzeichiss durchsuche finde ich nur meinen einen Testeintrag. Aber es kann natürlich sein, dass ich da irgendwelche falschen angaben mache in dem Code oben. Kenne mich zwar etwas mit PHP aus aber die Funktionen von LDAP sind mir neu.

Ich habe ein zentrale Adressdatenbank (mySQL) und will nun beim Eintragen einer neuen Adresse auch gleich die E-Mailaddy und Namen an den LDAP übergeben. Ich könnte ja schon die Funktion von dem "phpLDAPadmin" nutzen, bloß da müsste ich ein Form ohne drücken des Buttons abschicken. Und da hängt es nun :) Vielleicht hast du ja dafür ne Lösung parat.
Hier mal das Formular:

HTML-Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Unbenanntes Dokument</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
window.setTimeout('abschicken()', 5);
function abschicken()
{
document.forms['test'].submit();
}
</script>
</head>
<body>

<form action="create.php" method="post" name="test">
<input type="hidden" name="server_id" value="1" />
<input type="hidden" name="new_dn" value="cn=Hansi Mustermann,ou=Mitarbeiter,o=ing" />
<input type="hidden" name="form[givenName]" value="Hansi" />
<input type="hidden" name="form[sn]" value="Mustermann" />
<input type="hidden" name="form[cn]" value="Hansi Mustermann" />
<input type="hidden" name="form[street]" value="" />
<input type="hidden" name="form[o]" value="" />
<input type="hidden" name="form[l]" value="" />
<input type="hidden" name="form[st]" value="" />
<input type="hidden" name="form[postalCode]" value="" />
<input type="hidden" name="form[telephoneNumber]" value="" />
<input type="hidden" name="form[mobile]" value="" />
<input type="hidden" name="form[facsimileTelephoneNumber]" value="" />
<input type="hidden" name="form[mail]" value="" />	
<input type="hidden" name="object_classes" value="a%3A1%3A%7Bi%3A0%3Bs%3A13%3A%22inetOrgPerson%22%3B%7D" />
<input type="hidden" name="container" value="ou=Mitarbeiter,o=ing" />
<input type="hidden" name="attrs[]" value="givenName" />
<input type="hidden" name="vals[]" value="Hansi" />
<input type="hidden" name="attrs[]" value="sn" />
<input type="hidden" name="vals[]" value="Mustermann" />
<input type="hidden" name="attrs[]" value="cn" />
<input type="hidden" name="vals[]" value="Hansi Mustermann" />
<input type="hidden" name="nextpage" value="0" />
<input type="hidden" name="page" value="3" />
<input type="hidden" name="template" value="inetOrgPerson" />
<input type="submit" name='submit' value="Erzeuge einen neuen Eintag" />
</form>
</body>
</html>

Gruß Daniel
Mit Zitat antworten
  #8  
Alt 23.10.2005, 13:29:18
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: LDAP Problem

Mit dem Formular an sich, kann man natürlich nicht so viel anfangen. Interessant wäre es jetzt zu sehen, wie die Daten in der Datei create.php verarbeitet werden.
Mit Zitat antworten
  #9  
Alt 23.10.2005, 13:38:30
mirk mirk ist offline
Anfänger
 
Registriert seit: Oct 2005
Beiträge: 5
AW: LDAP Problem

Ich kann gerne mal die create.php posten aber die alleine wird vielleicht nicht viel helfen,da darin noch weitere Seiten included werden.

PHP-Code:
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/create.php,v 1.43 2005/09/25 16:11:44 wurley Exp $

/**
 * Creates a new object.
 *
 * Variables that come in via common.php
 *  - server_id
 * Variables that come in as POST vars:
 *  - new_dn
 *  - attrs (an array of attributes)
 *  - vals (an array of values for the above attrs)
 *  - required_attrs (an array with indices being the attributes,
 *              and the values being their respective values)
 *  - object_classes (rawurlencoded, and serialized array of objectClasses)
 *
 * @package phpLDAPadmin
 */
/**
 * @todo: posixgroup with empty memberlist generates an error.
 */

require './common.php';

if (
$ldapserver->isReadOnly())
    
pla_error($lang['no_updates_in_read_only_mode']);
if (! 
$ldapserver->haveAuthInfo())
    
pla_error($lang['not_enough_login_info']);

$new_dn = isset( $_POST['new_dn'] ) ? $_POST['new_dn'] : null;
$required_attrs = isset( $_POST['required_attrs'] ) ? $_POST['required_attrs'] : false;
$object_classes unserializerawurldecode$_POST['object_classes'] ) );
$redirect = isset( $_POST['redirect'] ) ? $_POST['redirect'] : false;

$encoded_dn rawurlencode$new_dn );
$container get_container$new_dn );

// See if there are any presubmit values to work out.
if (isset($_POST['presubmit']) && count($_POST['presubmit']) && isset($_POST['template'])) {
    
$templates = new Templates($ldapserver->server_id);
    
$template $templates->GetTemplate($_POST['template']);

    foreach (
$_POST['presubmit'] as $attr) {
        
$_POST['attrs'][] = $attr;
        
$_POST['form'][$attr] = $templates->EvaluateDefault($ldapserver,$template['attribute'][$attr]['presubmit'],$_POST['container']);
        
$_POST['vals'][] = $_POST['form'][$attr];
    }

    
# @todo: This section needs to be cleaned up, and will be when the old templates are removed. In the mean time...
    # Rebuild the $_POST['attrs'] & $_POST['vals'], as they can be inconsistent.
    
unset($_POST['attrs']);
    unset(
$_POST['vals']);
    foreach (
$_POST['form'] as $attr => $val) {
        
$_POST['attrs'][] = $attr;
        
$_POST['vals'][] = $val;
    }
}

$vals = isset( $_POST['vals'] ) ? $_POST['vals'] : array();
$attrs = isset( $_POST['attrs'] ) ? $_POST['attrs'] : array();

// build the new entry
$new_entry = array();
if( isset( 
$required_attrs ) && is_array$required_attrs ) ) {
    foreach( 
$required_attrs as $attr => $val ) {
        if( 
$val == '' )
            
pla_errorsprintf$lang['create_required_attribute'], htmlspecialchars$attr ) ) );
        
$new_entry$attr ][] = $val;
    }
}

if( isset( 
$attrs ) && is_array$attrs ) ) {
    foreach( 
$attrs as $i => $attr ) {
        if( 
is_attr_binary$ldapserver$attr ) ) {
            if( isset( 
$_FILES['vals']['name'][$i] ) && $_FILES['vals']['name'][$i] != '' ) {

                
// read in the data from the file
                
$file $_FILES['vals']['tmp_name'][$i];
                
$f fopen$file'r' );
                
$binary_data fread$ffilesize$file ) );
                
fclose$f );

                
$val $binary_data;
                
$new_entry$attr ][] = $val;
            }

        } else {
            if (
is_array($vals[$i])) {

                
# If the array has blank entries, then ignore them.
                
foreach ($vals[$i] as $value) {
#                $new_entry[$attr] = $vals[$i];
                    
if (trim($value))
                        
$new_entry[$attr][] = $value;
                }
            } else {
                
$val = isset( $vals[$i] ) ? $vals[$i] : '';

                if( 
'' !== trim($val) )
                    
$new_entry$attr ][] = $val;
            }
        }
    }
}

$new_entry['objectClass'] = $object_classes;
if( ! 
in_array'top'$new_entry['objectClass'] ) )
    
$new_entry['objectClass'][] = 'top';

foreach( 
$new_entry as $attr => $vals ) {

    
// Check to see if this is a unique Attribute
    
if( $badattr checkUniqueAttr$ldapserver$new_dn$attr$vals ) ) {
        
$search_href sprintf('search.php?search=true&amp;form=advanced&amp;server_id=%s&amp;filter=%s=%s',
            
$ldapserver->server_id,$attr,$badattr);
        
pla_error(sprintf$lang['unique_attr_failed'],$attr,$badattr,$new_dn,$search_href ) );
    }

    if( ! 
is_attr_binary$ldapserver$attr ) )
        if( 
is_array$vals ) )
            foreach( 
$vals as $i => $v )
                
$new_entry$attr ][ $i ] = $v;

        else
            
$new_entry$attr ] = $vals;
}

//echo "<pre>"; var_dump( $new_dn );print_r( $new_entry ); echo "</pre>";

// Check the user-defined custom call back first
if( true === run_hook 'pre_entry_create', array ( 'server_id' => $ldapserver->server_id,'dn' => $new_dn,'attrs' => $new_entry ) ) )
    
$add_result = @ldap_add$ldapserver->connect(), $new_dn$new_entry );

else {
    
pla_error$lang['create_could_not_add'] );
    exit;
}

if( 
$add_result ) {
    
run_hook 'post_entry_create', array ( 'server_id' => $ldapserver->server_id'dn' => $new_dn'attrs' => $new_entry ) );

    if (
$redirect)
        
$redirect_url $redirect;

    else
        
$redirect_url sprintf('edit.php?server_id=%s&dn=%s',$ldapserver->server_id,rawurlencode($new_dn));

    if( 
array_key_exists'tree'$_SESSION ) ) {
        
$tree $_SESSION['tree'];
        
$tree_icons $_SESSION['tree_icons'];

        if( isset( 
$tree[$ldapserver->server_id][$container] ) ) {
            
$tree[$ldapserver->server_id][$container][] = $new_dn;
            
sort$tree[$ldapserver->server_id][$container] );
            
$tree_icons[$ldapserver->server_id][$new_dn] = get_icon$ldapserver$new_dn );
        }

        
$_SESSION['tree'] = $tree;
        
$_SESSION['tree_icons'] = $tree_icons;
        
session_write_close();
    }
    
?>

    <html>
    <head>

    <?php if (isset($tree[$ldapserver->server_id][$container]) || in_array($new_dn,$ldapserver->getBaseDN())) { ?>

    <!-- refresh the tree view (with the new DN renamed)
         and redirect to the edit_dn page -->
    <script language="javascript">
        parent.left_frame.location.reload();
        location.href='<?php echo $redirect_url?>';
    </script>

    <?php ?>

    <meta http-equiv="refresh" content="0; url=<?php echo $redirect_url?>" />
    </head>
    <body>

    <?php echo $lang['redirecting'?> <a href="<?php echo $redirect_url?>"><?php echo $lang['here']?></a>.

    </body>
    </html>

<?php } else {
    
pla_error$lang['create_could_not_add'], ldap_error$ldapserver->connect() ), ldap_errno$ldapserver->connect() ) );
}
?>

Aber einen Erfolg habe ich nun schon :) Mein Frormular wird nun automatisch abgeschickt und trägt nun alles in den LDAP ein.
(Mein Fehler oben war, das ich das Java-script am ende des Forms einfügen musste.) Dabei benutze ich nun halt die Funktionen von dem phpLDAPAdmin. Is zwar ein umweg aber es geht =)

Gruß Daniel
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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 aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem mit Lokalisierung eines SESSION - Problems Fabian85 PHP für Fortgeschrittene und Experten 5 03.10.2005 21:17:54
Problem mit switch DaDon4130 PHP Grundlagen 6 28.03.2005 19:22:56
count Problem Holstenjungs MySQLi/PDO/(MySQL) 24 21.09.2004 17:39:05
mysql und php problem schmidt PHP für Fortgeschrittene und Experten 9 31.10.2003 19:05:13
SSL Problem im Internet Explorer, need help! Gladder PHP für Fortgeschrittene und Experten 6 02.09.2002 23:21:19


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:33:58 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt